Index: openacs-4/packages/acs-core-docs/www/acs-admin.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 5 Jul 2004 14:24:59 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 16 Feb 2005 00:21:02 -0000 1.36 @@ -1 +1 @@ -
Table of Contents
Table of Contents
Tutorials and reference material for creating new OpenACS packages. -
Table of Contents
Tutorials and reference material for creating new OpenACS packages. +
Table of Contents
Table of Contents
Prev | Home | Next |
Appendix�D.�Using CVS with an OpenACS Site | Up | Chapter�15.�Kernel Documentation |
Table of Contents
Prev | Home | Next |
Appendix�D.�Using CVS with an OpenACS Site | Up | Chapter�17.�Kernel Documentation |
Download the Analog source tarball in -/tmp. Unpack, compile, and install analog.
[root aolserver]# cd /usr/local/src -[root src]# tar xzf /tmp/analog-5.32.tar.gz +Install Analog web file analyzer Download the Analog source tarball in +/var/tmp. Unpack, compile, and install analog.
[root aolserver]# cd /usr/local/src +[root src]# tar xzf /var/tmp/analog-5.32.tar.gz [root src]# cd analog-5.32 [root analog-5.32]# make cd src && make @@ -13,7 +13,7 @@ [root src]# mv analog-5.32 /usr/share/ [root src]# cd /usr/local/src -tar xzf /tmp/analog-5.32.tar.gz +tar xzf /var/tmp/analog-5.32.tar.gz cd analog-5.32 make cd .. Index: openacs-4/packages/acs-core-docs/www/analog-setup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/analog-setup.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/analog-setup.html 22 Jun 2004 12:53:33 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/analog-setup.html 16 Feb 2005 00:21:02 -0000 1.7 @@ -1,32 +1,31 @@ -
Set up Log Analysis Reports Analog is a program with processes webserver access logs, +
Set up Log Analysis Reports Analog is a program with processes webserver access logs, performs DNS lookup, and outputs HTML reports. Analog should already be installed. A modified configuration file is included in the OpenACS tarball.
[root src]# su - $OPENACS_SERVICE_NAME [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ mkdir www/log -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cp -r /usr/share/analog-5.31/images www/log/ +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cp -r /usr/share/analog-5.32/images www/log/ [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver/$OPENACS_SERVICE_NAME cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg mkdir www/log -cp -r /usr/share/analog-5.31/images www/log/
Edit +cp -r /usr/share/analog-5.32/images www/log/
Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg and change the variable in HOSTNAME "[my organisation]" to reflect your website title. If you don't want the traffic log to be publicly visible, change OUTFILE /var/lib/aolserver/$OPENACS_SERVICE_NAME/www/log/traffic.html to use a private -directory.
Run it.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/share/analog-5.31/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg -/usr/share/analog-5.31/analog: analog version 5.31/Unix -/usr/share/analog-5.31/analog: Warning F: Failed to open DNS input file +directory. You'll also need to edit all instances of service0 to your $OPENACS_SERVICE_NAME.Run it.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/share/analog-5.32/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg +/usr/share/analog-5.32/analog: analog version 5.32/Unix +/usr/share/analog-5.32/analog: Warning F: Failed to open DNS input file /home/$OPENACS_SERVICE_NAME/dnscache: ignoring it (For help on all errors and warnings, see docs/errors.html) -/usr/share/analog-5.31/analog: Warning R: Turning off empty Search Word Report +/usr/share/analog-5.32/analog: Warning R: Turning off empty Search Word Report [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$Verify that it works by browing to http://yourserver.test:8000/log/traffic.html
Automate this by creating a file in /etc/cron.daily.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit logout [root root]# emacs /etc/cron.daily/analogPut this into the file:
#!/bin/sh -/usr/share/analog-5.31/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg
[root root]# chmod 755 /etc/cron.daily/analogTest it by running the script.
[root root]# sh /etc/cron.daily/analogBrowse to http://yourserver.test/log/traffic.html
Prev Home Next Installing SSL Support for an OpenACS service Up External uptime validation
docs@openacs.orgView comments on this page at openacs.org +/usr/share/analog-5.32/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg[root root]# chmod 755 /etc/cron.daily/analogTest it by running the script.
[root root]# sh /etc/cron.daily/analogBrowse to http://yourserver.test/log/traffic.html
Prev Home Next Installing SSL Support for an OpenACS service Up External uptime validation
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v diff -u -r1.42 -r1.43 --- openacs-4/packages/acs-core-docs/www/aolserver.html 5 Jul 2004 14:24:59 -0000 1.42 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 16 Feb 2005 00:21:02 -0000 1.43 @@ -1,4 +1,4 @@ -Install AOLserver 3.3oacs1 by Vinod Kurup
+Install AOLserver 3.3oacs1 by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.We recommend the use of AOLserver 4.0.1 or later. These instructions are retained as a resource.
@@ -82,17 +82,17 @@ communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan to use both databases, install both.
Oracle
[root aolserver]# cd /usr/local/aolserver/bin -[root bin]# cp /tmp//packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +[root bin]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle [root bin]# chmod 750 nsd-oracle [root bin]# cd /usr/local/aolserver/bin -cp /tmp//packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle chmod 750 nsd-oracle
PostgreSQL
[root aolserver]# cd /usr/local/aolserver/bin -[root bin]# cp /tmp//packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +[root bin]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres [root bin]# chmod 755 nsd-postgres [root bin]# cd /usr/local/aolserver/bin -cp /tmp//packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres
Install tDOM.�Download the tDOM tarball, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.
[root root]# cd /usr/local/src @@ -169,7 +169,9 @@ cd /usr/local/aolserver chown -R root.web log servers chmod -R g+w log servers -ls -lNow, we'll run a quick test to ensure AOLserver is running +ls -l
Note: AOLserver4.x does not include a default start page, so we create one for this test. Type + echo "Welcome to AOLserver" > /usr/local/aolserver40r8/servers/server1/pages/index.html +
Now, we'll run a quick test to ensure AOLserver is running correctly. We'll use the sample config file provided with AOLserver. This file will attempt to guess your IP address and hostname. It will then start up the server at port 8000 of that @@ -238,4 +240,4 @@ set hostname [ns_info hostname] #set address [ns_info address] set address 0.0.0.0
Install - Analog web file analyzer. (OPTIONAL)
($Id$)
Prev Home Next Install Squirrelmail for use as a webmail system for OpenACS Up Appendix�C.�Credits
docs@openacs.orgView comments on this page at openacs.org + Analog web file analyzer. (OPTIONAL)($Id$)
Prev | Home | Next |
Install LDAP for use as external authentication | Up | Appendix�C.�Credits |
Retrieve TCL 8.4 (or higher).�Download and install TCL 8.4
If you have not installed TCL already, download the latest TCL version from Sourceforge
Remember that you have to be root if you want to follow these instructions. On Mac OS X type sudo su - to become root.
Alternatively use curl -L -O instead of wget (especially on Mac OS X.
[root root]# cd /usr/local/src -[root src]# wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.4.6-src.tar.gz -[root src]# tar xfz tcl8.4.6-src.tar.gz -[root src]# cd tcl8.4.6/unix +
Check suitability of previously installed TCL.�Start tcl (type tclsh or find it using which tclsh). +
[root root]% info exists tcl_platform(threaded)
+1
+[root root]% info patchlevel
+8.4.7
+[root root]%
+tclsh
+info exists tcl_platform(threaded)
+info patchlevel
+
If the first command returns anything other than 1, + then tcl is not threaded. If tcl is threaded and the version is 8.4 or higher, then installing + tcl from source is optional. +
Retrieve TCL 8.4 (or higher).�Download and install TCL 8.4 from source
Note for Debian users: you can apt-get install + tcl8.4-dev if you have the right version (stable users will need + to add tcl8.4 to their sources.list file as described on the + Install Postgres page). You'll + have to use /usr/lib/tcl8.4/ instead of /usr/local/lib when you + try to find the tcl libraries, however.
If you have not installed TCL already, download the latest TCL version from Sourceforge
Debian: + apt-get install + tcl8.4 tcl8.4-dev and proceed to + the next step. In that step, replace + --with-tcl=/usr/local/lib/ with + --with-tcl=/usr/lib/tcl8.4.
Remember that you have to be root if you want to follow these instructions. On Mac OS X type sudo su - to become root.
Alternatively use curl -L -O instead of wget (especially on Mac OS X).
[root root]# cd /usr/local/src
+[root src]# wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.4.9-src.tar.gz
+[root src]# tar xfz tcl8.4.9-src.tar.gz
+[root src]# cd tcl8.4.9/unix
[root unix]# ./configure --enable-threads
[root unix]# make install
[root root]#
cd /usr/local/src
-wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.4.6-src.tar.gz
-tar xfz tcl8.4.6-src.tar.gz
-cd tcl8.4.6/unix
+wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.4.9-src.tar.gz
+tar xfz tcl8.4.9-src.tar.gz
+cd tcl8.4.9/unix
./configure --enable-threads
make install
Retrieve AOLserver.�Download the aolserver from CVS.
[root root]# cd /usr/local/src
-[root src]# mkdir aolserver40r5
-[root src]# cd aolserver40r5
+[root src]# mkdir aolserver40r10
+[root src]# cd aolserver40r10
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login
-[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r5 aolserver
+[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r10 aolserver
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nscache
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nspostgres
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nssha1
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r v2_7 nsoracle
-[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsxml
[root aolserver]# wget http://www.tdom.org/tDOM-0.7.8.tar.gz
[root aolserver]# tar xvfz tDOM-0.7.8.tar.gz
[root root]#
cd /usr/local/src
-mkdir aolserver40r5
-cd aolserver40r5
-cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r5 aolserver
+mkdir aolserver40r10
+cd aolserver40r10
+cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r10 aolserver
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nscache
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nspostgres
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nssha1
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r v2_7 nsoracle
-cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsxml
-wget http://www.tdom.org/tDOM-0.7.8.tar.gz
-tar xvfz tDOM-0.7.8.tar.gz
Configure, compile and install AOLserver.�Many people need to run more than one version of AOLserver in parallel. This section accomodates future upgrades by installing AOLserver 4 in /usr/local/aolserver40r5.
[root aolserver]# cd /usr/local/src/aolserver40r5/aolserver -[root aolserver]# ./configure --prefix=/usr/local/aolserver40r5 --with-tcl=/usr/local/lib/ +wget http://www.tdom.org/files/tDOM-0.8.0.tar.gz +tar xvfz tDOM-0.8.0.tar.gz
Configure, compile and install AOLserver.�Many people need to run more than one version of AOLserver in parallel. This section accomodates future upgrades by installing AOLserver 4 in /usr/local/aolserver40r9.
[root aolserver]# cd /usr/local/src/aolserver40r10/aolserver
+[root aolserver]# ./configure --prefix=/usr/local/aolserver40r10 --with-tcl=/usr/local/lib/
[root aolserver]# make install
-cd /usr/local/src/aolserver40r5/aolserver
-./configure --prefix=/usr/local/aolserver40r5 --with-tcl=/usr/local/lib/
+cd /usr/local/src/aolserver40r10/aolserver
+./configure --prefix=/usr/local/aolserver40r10 --with-tcl=/usr/local/lib/
make install
-ln -s /usr/local/aolserver40r5 /usr/local/aolserver
If this is the only version of AOLserver in use, or is the default version, create a symlink. If not, then be sure to use /usr/local/aolserver40r5 instead of /usr/local/aolserver in future steps.
[root aolserver]# ln -s /usr/local/aolserver40r5 /usr/local/aolserver
Configure, compile and install the modules.� -
[root aolserver]# cd /usr/local/src/aolserver40r5/nscache -[root nscache]# make install
Install nsoracle (if you want to use Oracle)
[root nscache]# cd ../nsoracle -[root nsoracle]# make install
Install nspostgres (if you want to use Postgres)
[root nsrewrite]# cd ../nspostgres -[root nspostgres]# make install POSTGRES=LSB ACS=1 INST=/usr/local/aolserver40r5
If you get errors like:
nspostgres.c: In function `Ns_PgTableList': +
If this is the only version of AOLserver in use, or is the default version, create a symlink. If not, then be sure to use /usr/local/aolserver40r10 instead of /usr/local/aolserver in future steps and check any scripts and makefiles you run to ensure they use the correct path.
[root aolserver]# ln -s /usr/local/aolserver40r10 /usr/local/aolserver
Configure, compile and install the modules.� +
OpenACS looks for the Oracle driver at + /usr/local/aolserver/bin/ora8.so, but some versions of + nsoracle may create nsoracle.so instead. In that case, you + can symlink (ln -s nsoracle.so ora8.so) to fix it.
[root aolserver]# cd /usr/local/src/aolserver40r10/nscache +[root nscache]# make install AOLSERVER=/usr/local/aolserver40r10
Install nsoracle (if you want to use Oracle)
[root nscache]# cd ../nsoracle +[root nsoracle]# make install AOLSERVER=/usr/local/aolserver40r10
Install nspostgres (if you want to use Postgres)
[root nscache]# cd ../nspostgres +[root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib[root nspostgres]# make install POSTGRES=LSB ACS=1 INST=/usr/local/aolserver40r10 AOLSERVER=/usr/local/aolserver40r10 +
If you get errors like:
nspostgres.c: In function `Ns_PgTableList': nspostgres.c:679: warning: passing arg 3 of `Tcl_DStringAppend' as signed due to prototype
then PostGreSQL is probably not in the standard location. The location of PostGreSQL is very dependent on which method was used to install it. To correct the problem, replace LSB with the path to the path to your PostGreSQL installation. Often this is /usr/local/pgsql.
Another possibility is that you may need to set the LD_LIBRARY_PATH environmental variable. You may still get warnings, but sometimes this will fix things enough to work.
[root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
You can use the ldd command to verify that all libraries are linked in: - ldd nspostgres.so -
If you run into problems with libpq.a do the following (and repeat the step above)
[root nspostgres]# ranlib /usr/local/pgsql/lib/libpq.a
If you run into problems with the linker, edit the Makefile. Add -lnsdb to the MODLIBS var.
MODLIBS = -L$(PGLIB) -lpq -lnsdb
[root nsrewrite]# cd ../nssha1 -[root nssha1]# make
If the make fails you will have to edit nssha1.c. Comment out the following 2 lines (lines 139-140):
// typedef unsigned int u_int32_t; -// typedef unsigned char u_int8_t;
Now install nssha1:
[root nssha1]# make install
[root nssha1]# cd ../tDOM-0.7.8/unix
Edit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to look like this:
../configure --enable-threads --disable-tdomalloc - --prefix=/usr/local/aolserver40r5 --with-tcl=/usr/local/lib
Now you can compile and configure tDOM
[root unix]# sh CONFIG + ldd /usr/local/src/aolserver40r8/nspostgres/nspostgres.so +If you run into problems with libpq.a do the following (and repeat the step above)
[root nspostgres]# ranlib /usr/local/pgsql/lib/libpq.aIf you run into problems with the linker, edit the Makefile. Add -lnsdb to the MODLIBS var.
MODLIBS = -L$(PGLIB) -lpq -lnsdb
[root nspostgres]# cd ../nssha1
Now install nssha1:
[root nssha1]# make install AOLSERVER=/usr/local/aolserver40r10
If the make fails you will have to edit nssha1.c. Comment out the following 2 lines (lines 139-140):
// typedef unsigned int u_int32_t; +// typedef unsigned char u_int8_t;
[root nssha1]# cd ../tDOM-0.7.8/unix
Edit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to look like this:
../configure --enable-threads --disable-tdomalloc + --prefix=/usr/local/aolserver40r10 --with-tcl=/usr/local/lib
Now you can compile and configure tDOM
[root unix]# sh CONFIG [root unix]# make install
Add a database-specific wrapper script.�This script sets database environment variables before starting AOLserver; this allows the AOLserver instance can communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan - to use both databases, install both.
Oracle
[root aolserver]# cd /usr/local/aolserver40r5/bin + to use both databases, install both. + Note that this section requires you to have the OpenACS, which + you can get through CVS, through a tarball, or by other + means. You can come back to this section after you acquire the + OpenACS code, but don't forget to come back. (Note to + maintainers: this should be moved to the next page and + integrated into the text there) +
Oracle
[root aolserver]# cd /usr/local/aolserver40r8/bin [root bin]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle [root bin]# chmod 750 nsd-oracle [root bin]# -cd /usr/local/aolserver40r5/bin -cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle -chmod 750 nsd-oracle
PostgreSQL
[root aolserver]# cd /usr/local/aolserver40r5/bin -[root bin]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cd /usr/local/aolserver40r10/bin +cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +chmod 750 nsd-oracle
PostgreSQL
[root aolserver]# cd /usr/local/aolserver40r10/bin +[root bin]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres [root bin]# chmod 755 nsd-postgres [root bin]# -cd /usr/local/aolserver40r5/bin -cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cd /usr/local/aolserver40r10/bin +cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres
You may need to edit these scripts if you are not using /usr/local/aolserver as the directory of Aolserver4.
Change startup script (optional).�If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the /var/lib/aolserver/service0/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)
By Bryan Quinn
+By Bryan Quinn
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Tcl API
OpenACS Services: the aforementioned building blocks. Examples of services include the OpenACS Content Repository, the OpenACS Templating -System, and the OpenACS Kernel, which includes +System, and the OpenACS Kernel, which includes APM.
An installation of the OpenACS includes the OpenACS Kernel, some services that extend the kernel's functionality, and some applications intended for end-users. Packages function as individual pieces of subsites. A subsite can contain multiple Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 22 Jun 2004 12:53:36 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 16 Feb 2005 00:21:02 -0000 1.26 @@ -1,4 +1,4 @@ -
By Bryan Quinn and Todd Nightingale
+By Bryan Quinn and Todd Nightingale
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.The following is a requirements document for the OpenACS Package Manager Index: openacs-4/packages/acs-core-docs/www/automated-backup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-backup.html,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/automated-backup.html 22 Jun 2004 12:53:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/automated-backup.html 16 Feb 2005 00:21:02 -0000 1.6 @@ -1,3 +1,3 @@ -
The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup and then backs up all of /var/lib/aolserver/$OPENACS_SERVICE_NAME to a single zip file, and then copies that zip file to another computer.
Make sure that the manual backup process described above works.
Customize the default backup script. Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh with your specific parameters.
+
The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup and then backs up all of /var/lib/aolserver/$OPENACS_SERVICE_NAME to a single zip file, and then copies that zip file to another computer.
Make sure that the manual backup process described above works.
Customize the default backup script. Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh with your specific parameters.
Make sure the file is executable:
chmod +x backup.sh
- Set this file to run automatically by adding a line to root's crontab. (Typically, with export EDITOR=emacs; crontab -e.) This example runs the backup script at 1:30 am every day.
30 1 * * * * sh /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh
30 1 * * * sh /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh
By Jeff Davis
+By Jeff Davis
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Best practices in writing OpenACS automated tests
Special characters in Tcl.� @@ -24,4 +26,6 @@ Make sure that if a duplicate name is entered that there is a reasonable error rather than a server error. Check for insert, move, copy, and rename. -
Table of Contents
By Don Baccus with additions +
Table of Contents
By Don Baccus with additions by Joel Aufrecht
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -7,4 +7,4 @@ probably need to create your own backup strategies (in particular full dumps from oracle, while easy to set up, are far from the best solution).There are three basic things which need to be backed up, the database data, the server - source tree, and the acs-content-repository (which is in the server source tree).
CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't +
CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't need to do anything to back up your files. Just make sure that your current work is checked into the system. You can then roll back based on date - note the Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 29 Jun 2004 15:50:14 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 16 Feb 2005 00:21:02 -0000 1.40 @@ -1,4 +1,4 @@ -
By Jon Salz
+By Jon Salz
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl
This document describes the startup (bootstrapping) process for an AOLserver Index: openacs-4/packages/acs-core-docs/www/complete-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/complete-install.html,v diff -u -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/complete-install.html 22 Jun 2004 12:53:38 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 16 Feb 2005 00:21:02 -0000 1.16 @@ -1 +1 @@ -
Prev | Home | Next |
Prerequisite Software | Up | Install a Unix-like system and supporting software |
Prev | Home | Next |
Prerequisite Software | Up | Install a Unix-like system and supporting software |
by Jade Rubick
+ OpenACS docs are written by the named authors, and may be edited + by OpenACS documentation staff. +After you've installed and mounted your package, you can + configure each instance to act as you would like.
This is done from the Applications page. Log in, go to the + Admin or Control Panel, click on the subsite the application is + in, and click on Applications. If you click on the 'Parameters' + link, you will see a list of parameters that you can change for + this application.
Prev | Home | Next |
Mounting OpenACS packages | Up | Setting Permissions on an OpenACS package |
by Jade Rubick
+ OpenACS docs are written by the named authors, and may be edited + by OpenACS documentation staff. +After you've installed and mounted your package, you can + configure each instance to act as you would like.
This is done from the Applications page. Log in, go to the + Admin or Control Panel, click on the subsite the application is + in, and click on Applications. If you click on the 'Permissions' + link, you will see and be able to set the permissions for that + application.
Each application may have different behavior for what Read + Create Write and Admin permissions mean, but generally the + permissions are straightforward. If you find the behavior is not + what you expect after setting permissions, you can post a bug in + the OpenACS bugtracker.
'The Public' refers to users to the website who are not + logged in. 'Registered Users' are people who have registered for + the site.
by Jade Rubick
+ OpenACS docs are written by the named authors, and may be edited + by OpenACS documentation staff. +An OpenACS package extends your website and lets it do + things it wasn't able to do before. You can have a weblog, a + forums, a calendar, or even do sophisticated project-management + via your website.
After you've installed OpenACS, you can congratulate + yourself for a job well done. Then, you'll probably want to + install a couple of packages.
To install packages, you have to be an administrator on + the OpenACS webserver. Log in, and you'll see a link to Admin or + the Control Panel. Click on that, then click on 'Install + software'. Packages are sometimes also referred to as + applications or software.
At this point, you'll need to determine whether or not + you're able to install from the repository, or whether you + should install from local files.
Basically, if you have a local CVS repository, or have + custom code, you need to install from 'Local Files'. Otherwise, + you can install from the OpenACS repository
If you want to install new packages, click on 'Install + from Repository' or 'Install from Local'. Select the package, + and click 'Install checked applications'. The system will check + to make sure you have all necessary packages that the package + you want depends on. If you're installing from Local Files, and + you are missing any packages, you may have to add the packages + your desired package depends on: + the section called “Upgrading the OpenACS files” +
If you run into any errors at all, check your + /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log file, and + post your error on the OpenACS forums
Once the package has been installed, then you will need to + 'mount' the package. The next section handles that.
Prev | Home | Next |
Chapter�4.�Configuring a new OpenACS Site | Up | Mounting OpenACS packages |
by Jade Rubick
+ OpenACS docs are written by the named authors, and may be edited + by OpenACS documentation staff. +After you've installed your packages, you have to 'mount' + them in order to make them appear on your website.
Make sure you are logged in, and then click on the + 'Admin' or 'Control Panel' link to get to the Site-Wide + Administration page (at /acs-admin). Click on the subsite you'd + like the application to be available at.
Subsites are a way of dividing your website into logical + chunks. Often they represent different groups of users, or parts + of an organization.
Now click on 'Applications' (applications are the same + thing as packages). You'll see a list of Applications and the + URLs that each is located at. To mount a new application, you + click on 'Add application', enter the Application, title + (application name), and URL (URL folder name), and you're + done.
Test it out now. The URL is based on a combination of the + subsite URL and the application URL. So if you installed a + package in the Main Subsite at the URL calendar, it will be + available at http://www.yoursite.com/calendar. If you installed + it at a subsite that has a URL intranet, then it would be + located at http://www.yoursite.com/intranet/calendar.
Table of Contents
Table of Contents
In this chapter, Configuring refers to making changes to a new OpenACS site through the web interface. In crude terms, these changes happen in the database, and are upgrade-safe. Customizing refers to changes that touch the file system, and require some planning if easy upgradability is to be maintained.
In this chapter, Configuring refers to making changes to a new OpenACS site through the web interface. In crude terms, these changes happen in the database, and are upgrade-safe. Customizing refers to changes that touch the file system, and require some planning if easy upgradability is to be maintained.
Prev | Home | Next |
OpenACS Installation Guide for Mac OS X | Up | Installing OpenACS packages |
Table of Contents
By Vinod Kurup
+Table of Contents
By Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Vinod Kurup put Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/cvs-guidelines.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/cvs-resources.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 5 Jul 2004 14:24:59 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 16 Feb 2005 00:21:02 -0000 1.26 @@ -1,7 +1,7 @@ -
Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add +
Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add it to a CVS repository.
Create and set permissions on a subdirectory in the local cvs repository.
[root root]# mkdir /cvsroot/$OPENACS_SERVICE_NAME [root root]# chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /cvsroot/$OPENACS_SERVICE_NAME Index: openacs-4/packages/acs-core-docs/www/database-management.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/database-management.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/database-management.html 22 Jun 2004 12:53:38 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/database-management.html 16 Feb 2005 00:21:02 -0000 1.23 @@ -1,4 +1,4 @@ -Chapter�7.�Database Management Table of Contents
+Chapter�7.�Database Management Table of Contents
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Prev Home Next Diagnosing Performance Problems Up Running a PostgreSQL database on another server
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/db-api-detailed.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api-detailed.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 29 Jun 2004 15:50:15 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 16 Feb 2005 00:21:02 -0000 1.40 @@ -1,4 +1,4 @@ -Database Access API By Jon Salz. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002.
+Database Access API By Jon Salz. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002.
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Tcl procedures: /packages/acs-kernel/10-database-procs.tcl
Tcl initialization: /packages/acs-kernel/database-init.tcl
Index: openacs-4/packages/acs-core-docs/www/db-api.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.html,v diff -u -r1.40 -r1.41 --- openacs-4/packages/acs-core-docs/www/db-api.html 5 Jul 2004 14:24:59 -0000 1.40 +++ openacs-4/packages/acs-core-docs/www/db-api.html 16 Feb 2005 00:21:02 -0000 1.41 @@ -1,4 +1,4 @@ -
The OpenACS Database Access API +
The OpenACS Database Access API By Pete Su and Jon Salz. Modified by Roberto Mello.
One of OpenACS's great strengths is that code written for it is @@ -359,7 +359,25 @@ } { set user_url [acs_community_member_url -user_id $user_id] } -
- +
+ You can also iterate over a multirow after it has been + created - check the documentation for + template::multirow
+ For example, +
+db_multirow assets assets { + select asset_id, + from ... +} + +.. + +set asset_id_l [list] +multirow foreach assets { + lappend asset_id_l $asset_id +} +Technically it's equivalent to using a code block on + the end of your db_multirow.
- db_null Index: openacs-4/packages/acs-core-docs/www/dev-guide.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/dev-guide.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/dev-guide.html 22 Jun 2004 12:53:39 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/dev-guide.html 16 Feb 2005 00:21:02 -0000 1.27 @@ -1 +1 @@ -
Chapter�11.�Development Reference Table of Contents
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
View comments on this page at openacs.org +Chapter�11.�Development Reference Table of Contents
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/doc-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/doc-standards.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/doc-standards.html 22 Jun 2004 12:53:39 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/doc-standards.html 16 Feb 2005 00:21:02 -0000 1.9 @@ -1 +1 @@ -Chapter�13.�Documentation Standards View comments on this page at openacs.org +Chapter�15.�Documentation Standards View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v diff -u -r1.42 -r1.43 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 5 Jul 2004 14:24:59 -0000 1.42 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 16 Feb 2005 00:21:02 -0000 1.43 @@ -1,94 +1,675 @@ -OpenACS Documentation Guide +
OpenACS Documentation Guide By Claus Rasmussen, with additions by Roberto Mello and the OpenACS Community
- ArsDigita created a good documentation ground for us to build - upon. Some sections of the documentation, however, lack details - and examples; others are simply nonexistant. Our goal is to give - OpenACS a superb documentation, so that users, developers and - administrators of OpenACS installations can enjoy the system. + OpenACS is a powerful system with + incredible possibilities and applications, but + this power comes with some complexity and a steep learning curve + that is only attenuated by good documentation. Our goal is to write + superb documentation, so that users, developers and administrators + of OpenACS installations can enjoy the system.
- OpenACS is a powerful system, with - incredible possibilities and applications, but with this power - comes some complexity and a learning curve that will only be - atenuated by good documentation. This is what we are after. + The history of OpenACS documentation: ..began by + building on a good documentation base from ArsDigita's ACS in the + late 1990's. Some sections of the documentation, however, lacked + details and examples; others simply did not exist. The OpenACS + community began meeting the challenge by identifying needs and + writing documentation on an as needed basis.
- The documentation for OpenACS is - written using DocBook XML. The reasons why we are using - DocBook are explained in more details in the - next section. A few more reasons why - we are using Docbook XML instead of Docbook SGML: + By having documentation dependent on volunteers and code + developers, documentation updates lagged behind the evolving + system software. As significant development changes were made + to the system, existing documentation became dated, and its + value significantly reduced. The valiant efforts that were made + to keep the documentation current proved too difficult as + changes to the system sometimes had far-reaching affects to + pages throughout the documentation. System integration and + optimization quickly rendered documentation obsolete for + developers. The code became the substitute and source for + documentation. +
+ With thousands of lines of code and few developers tracking + changes, features and advances to the OpenACS system went + unnoticed or were not well understood except by the code + authors. Work was duplicated as a consequence of developers + not realizing the significant work completed by others. New + developers had to learn the system through experience with + working with it and discussion in the forums. Informal sharing + of experiential and tacit knowledge has become the OpenACS + community's main method of sharing knowledge. +
+ This document attempts to shape ongoing documentation efforts by + using principles of continual improvement to re-engineer + documentation production. +
+ Documentation production shares many of the challenges of + software development, such as managing contributions, revisions + and the (editorial) release cycle. This is yet another + experiment in improving documentation --this time by using + principles of continual improvement to focus the on-going + efforts. These processes are outlined as project management + phases: +
+ Requirements phase is about setting goals and + specifications, and includes exploration of scenarios, use cases + etc. As an example, see the + OpenACS Documentation Requirements Template which focuses on + systems requirements for developers. +
+ Strategy phase is about creating an approach + to doing work. It sets behavioral guidelines and boundaries + that help keep perspective on how efforts are directed. + OpenACS developers discuss strategy when coordinating + efforts such as code revisioning and new features. +
+ Planning phase is about explicitly stating + the way to implement the strategy as a set of methods. + OpenACS system design requires planning. For example, see + OpenACS + documentation template planning relating to package + design. +
+ Implementation phase is about performing the + work according to the plan, where decisions on how to handle + unforseen circumstances are guided by the strategy and + requirements. +
+ Verification phase measures how well the plan + was implemented. Success is measured by A) verifying if the + project has met the established goals, and B) reviewing for + ongoing problem areas etc. OpenACS follows verification + through different means on different projects, but in all + cases, the OpenACS community verifies the project as a + success through feedback including bug reports, user and + administrator comments, and code changes. +
+ OpenACS forum discussions on documentation requirements and strategies are + summarized in the following sections. Production + phases are mainly organized and fulfilled by Joel Aufrecht. + Hopefully the following sections will help spur greater + direct participation by the OpenACS community. +
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003. +
+ OpenACS documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here.
- Consistency. We started with a collection - of DcoBook XML files that ArsDigita wrote. Trying to re-write them to - conform to the SGML DTD would be unnecessary work (I tried). -
- It does not require extra - effort. Writing in XML is almost identical to - SGML, with a couple extra rules. More details in the - LDP - Author Guide. -
- The tool chain has matured. xsltproc and other XML - based tools have improved to the point where they are about as good as - the SGML tools and generation of both html and pdf output is straighforward. -
- In order to separate content and presentation, all OpenACS documentation will be marked up to conform to the - DocBook XML DTD - - - This enables us to publish in a variety - of formats and relieves each contributor of the burden of presentation, freeing him to focus - on content and sharing knowledge. + clarity in presentation. Life with + qmail is a recommended example of "rated high" online + documentation. +
+ Avoid requirements that significantly increase the labor + required to maintain documentation. +
+ Use best practices learned from the print world, web, and + other media, about use of gamma, space, writing style etc. +
+ Consistency in publishing -Establishing and adhering to publishing standards +
+ Use standardized language -Use international English + (without slang or colloquial terms) for ESL (English as + a second language) readers (and making translation + easier for those interested in translating the + documentation for internationalization efforts). +
+ All jargon used in documentation needs to be defined. + Use standardized terms when available, avoiding implicit + understanding of specific OpenACS terms. +
+ Document titles (for example on html pages) should + include whole document title (as in book title): + (chapter title) : (section), so that bookmarks etc. + indicate location in a manner similar to pages in books + (in print publishing world). +
+ Organize document according to the needs of the reader + (which may be different than the wishes of the writers). +
+ Do not make informal exclamations about difficulty/ease + for users to complete tasks or understand... for + example, "Simply...". Readers come from many different + backgrounds --remember that the greater audience is + likely as varied as the readers on the internet--- If + important, state pre-conditions or knowledge + requirements etc. if different than the rest of the + context of the document. For example, "requires basic + competency with a text-based editor such as vi or emacs + via telnet" +
+ Show where to find current information instead of writing + about current info that becomes obsolete. If the information + is not found elsewhere, then create one place for it, where + others can refer to it. This structure of information will + significantly reduce obsolescence in writing and labor burden + to maintain up-to-date documentation. In other words, state + facts in appropriately focused, designated areas only, then + refer to them by reference (with links). +
+ Note: Sometimes facts should be stated multiple ways, to + accommodate different reading style preferences. The should + still be in 1 area, using a common layout of perhaps + summary, introduction and discussion requiring increasing + expertise, complexity or specificity. +
+ Consistency in link descriptions -When link urls refer to + whole documents, make the link (anchor wrapped title) that + points to a document with the same title and/or heading of + the document. +
+ Consider OpenACS documentation as a set of books (an + encyclopedic set organized like an atlas) that contains + volumes (books). Each book contains chapters and sections + much like how DocBook examples are shown, where each chapter + is a web page. This designation could help create an OpenACs + book in print, and help new readers visualize how the + documentation is organized. +
+ The use licenses between OpenACS and Arsdigita's ACS are not + compatible, thereby creating strict limits on how much + OpenACS developers should have access to Arsdigita code and + resources. The OpenACS documentation has a new legal + requirement: to eliminate any dependency on learning about + the system from Arsdigita ACS examples to minimize any + inference of license noncompliance, while recognizing the + important work accomplished by Philip Greenspun, Arsdigita, + and the early ACS adopters. +
+ Use a consistent general outline for each book. +
+ Introduction (includes purpose/goal), Glossary of terms, + Credits, License, Copyright, Revision History +
+ Table of Contents (TOC)s for each book: the end-users, content and site + administrators, marketing, developer tutorial, and + developers. +
+ Priorities of order and content vary based on each of + the different readers mentioned. The developers guide + should be organized to be most useful to the priorities + of developers, while being consistent with the general + documentation requirements including publishing strategy, + style etc. +
+ Use generic DocBook syntax to maximize reader familiarity with the documents. +
+ <book><title><part label="Part 1"><etc...> ++
+
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003.
- Theoretically any strict DTD would have been sufficient - we could even write our own. But DocBook has been around - for a while (since the early 90's), - it's well-tested, it's complete, it's designed for technical documentation - and best of all, it's open-source. A growing community surrounds DocBook (has + OpenACS end-user documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here. +
+ End-users should not have to read docs to use the system. +
+ Include how to get help. How and where to find answers, + contact others, what to do if one gets an AOLserver or other + error when using the system. Include types of available + support (open-source, private commercial etc.) including + references. +
+ Explain/foster understanding of the overall structure of the + system. This would be an overview of the system components, + how it works, and how to find out more or dig deeper... To + promote the system by presenting the history of the system, + and writing about some tacit knowledge re: OpenACS.org and + the opensource culture. +
+ Introduce and inspire readers about the uses, benefits, and + the possibilities this system brings (think customer + solution, customer cost, convenience, value). A + comprehensive community communications system; How this + system is valuable to users; Reasons others use OpenACS + (with quotes in their own words) "...the most important + thing that the ACS does is manage users, i.e. provide a way + to group, view and manipulate members of the web community. + -- Talli Somekh, September 19, 2001" using it to + communicate, cooperate, collaborate... OpenACS offers + directed content functionality with the OpenACS templating + system. ... OpenACS is more than a data collection and + presentation tool. OpenACS has management facilities that + are absent in other portals. ...The beauty of OpenACS is + the simplicity (and scalability) of the platform on which it + is built and the library of tried and tested community + building tools that are waiting to be added. It seems that + most portals just add another layer of complexity to the + cake. See Slides on OACS + features...a set of slides on OACS features that can + be used for beginners who want to know OACS is about and + what they can do with it. Screen captures that highlight + features. Example shows BBoard, calendar, news, file + storage, wimpy point, ticket tracking. An OpenACS tour; an + abbreviated, interactive set of demo pages. +
+ From a marketing perspective, +
+ differentiate "product" by highlighting features, + performance quality, conformance to standards, + durability (handling of technological obsolescence), + reliability, repairability, style of use, design + (strategy in design, specifications, integrated, + well-matched systems etc). +
+ differentiate "service" by highlighting software + availability (licensing and completeness from mature to early + adopters or development versions), community incident + support, project collaborative opportunities, and + contractor support availability +
+ differentiate price (economic considerations of + opensource and features) +
+ Discussion and details should rely on meeting criteria + of design, completeness of implementation, and related + system strengths and weaknesses. Marketing should not + rely on comparing to other technologies. Competitive + analysis involves mapping out strengths, weaknesses, + opportunities and threats when compared to other systems + for a specific purpose, and thus is inappropriate (and + becomes stale quickly) for general documentation. +
+ When identifying subsystems, such as tcl, include links + to their marketing material if available. +
+ create an example/template comparison table that shows + versions of OpenACS and other systems (commonly + competing against OpenACS) versus a summary feature list + and how well each meets the feature criteria. Each + system should be marked with a date to indicate time + information was gathered, since information is likely + volatile. +
+
+ To build awareness about OpenACS, consider product + differentiation: form, features, performance quality, + conformance quality (to standards and requirements), + durability, reliability, repairability, style, design: the + deliberate planning of these product attributes. +
+ Include jargon definitions, glossary, FAQs, site map/index, + including where to find Instructions for using the packages. + FAQ should refer like answers to the same place for + consistency, brevity and maintainability. +
+ Explain/tutorial on how the UI works (links do more than go + to places, they are active), Page flow, descriptions of form + elements; browser/interface strengths and limitations (cookies, other) +
+ Discuss criteria used to decide which features are + important, and the quality of the implementation from a + users perspective. Each project implementation places a + different emphasis on the various criteria, which is why + providing a framework to help decide is probably more useful + than an actual comparison. +
+ Package documentation requirements have additional requirements. +
+ A list of all packages, their names, their purposes, what + they can and cannot do (strengths, limitations), what + differentiates them from similar packages, minimal + description, current version, implementation status, + author/maintainers, link(s) to more info. Current version + available at the repository. +
+ Include dependencies/requirements, known conflicts, and + comments from the real world edited into a longer + description to quickly learn if a package is appropriate for + specific projects. +
+ Create a long bulleted list of features. Feature list should + go deeper than high-level feature lists and look at the + quality of the implementations (from the user's perspective, + not the programmer's). Example issues an end-user may have + questions about: Ticket Tracker and Ticket Tracker Lite, why + would I want one of them vs the other? And, before I specify + to download and install it, what credit card gateways are + supported by the current e-commerce module? There are some + packages where the name is clear enough, but what are the + limitations of the standard package? +
+ End-user docs should not be duplicative. The package + description information and almost everything about a + package for administrators and developers is already + described in the package itself through two basic + development document templates: a + Requirements Template and Detailed + Design Document. +
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003. +
+ OpenACS administrators' documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here. +
+ For each requirement below, include links to developer tutorials + and other documentation for more detail. +
+ Describe a structural overview of a working system and how + the components work together. "The Layered Cake view" a + general network view of system; a table showing system + levels versus roles to help with understanding how the + subsystems are interconnected. +
+ Provide a comprehensive description of typical + administrative processes for operating an OpenACS system + responsibly, including reading logs and command line views that + describe status of various active processes. +
+ Create a list of administrative tools that are useful to + administrating OpenACS, including developer support, + schema-browser and api browser. Link to AOLserver's config + file documentation. +
+ Resources on high level subjects such as web services, + security guidelines +
+ Describe typical skill sets (and perhaps mapped to + standardized job titles) for administrating an OpenACS + system (human-resources style). For a subsite + admin/moderator attributes might include trustworthy, + sociable, familiarity with the applications and + subsystems, work/group communication skills et cetera +
+ Describe how to set up typical site moderation and + administration including parameters, permissions, "Hello + World" page +
+ Show directory structure of a typical package, explanation + of the various file types in a package (tcl,adp,xql) and how + those relate to the previously described subsystems, when + they get refreshed etc. +
+ Ways to build a "Hello World" page +
+ Show examples of how the OpenACS templating system is used, + including portal sections of pages. For example, create a + customised auto-refreshing startpage using lars-blogger, a + photo gallery, and latest posts from a forum. This should + rely heavily on documentation existing elsewhere to keep + current. This would essentially be a heavily annotated list + of links. +
+ Show ways of modifying the look and feel across pages of an + OpenACS website. Refer to the skins package tutorial. +
+ Describe a methodology for diagnosing problems, finding + error statements and interpreting them --for OpenACS and the + underlying processes. +
+ FAQs: Administration tasks commonly discussed on boards: + admin page flow, how to change the looks of a subsite with a + new master.adp, options on "user pages" , a quick + introduction to the functions and processes. info about the + user variables, file locations +
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003. +
+ OpenACS installation documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here. +
+ state installation prerequisites. For example: "You should + read through the installation process to familiarize + yourself with the installation process, before beginning an + installation." +
+ list critical decisions (perhaps as questions) that need to + be made before starting: which OS, which DB, which aolserver + version, system name, dependencies et cetera. Maybe summarize + options as tables or decision-trees. For example, "As you + proceed throughout the installation, you will be acting on + decisions that have an impact on how the remaining part of + the system is installed. Here is a list of questions you + should answer before beginning." +
+ list pre-installation assumptions +
+ Show chronological overview of the process of installing a + system to full working status: Install operating + system with supporting software, configure with preparations + for OpenACS, RDBMS(s) install and configure, Webserver + install and configure, OpenACS install and configure, + post-install work +
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003. +
+ OpenACS developer tutorial documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here. +
+ list learning prerequisites to customize, fix, and improve + OACS modules, and create new ones. You are expected to have + read and understand the information [minimum requirements + similar to adept at Using OpenACS Administrating Guide] + before reading this guide. +
+ Refer to development documentation instead of duplicating here +
+ List suggestions for installing and setting up a development + environment; these can be annotated links to the + installation documentation +
+ Provide working examples that highlight the various + subsystems, tcl environment, OpenACS protocols, aolserver + template and ns_* commands, OpenACS templating, sql queries, + db triggers, scheduling protocols, how to use the page contract, + how to get the accessing user_id etc +
+ Show how to construct basic SQL queries using the db API, +
+ The life of an http request to a dynamic, templated page +
+ General rules to follow for stability, scalability +
+ Show the step by step customizing of an existing package + that meets current recommended coding styles of OpenACS + package development, by referring to developer resources. +
+ Use the ArsDigita problem sets and "what Lars produced for ACS Java" as inspiration for a + PostgreSQL equivalent tutorial about developing a new + OpenACS package including discussion of the significance of + the package documentation templates +
+ Include a summary of important links used by developers +
+ Note any deprecated tools and methods by linking to prior + versions instead of describing them in current docs +
+ By the OpenACS Community. This section is a collection of + documentation requirements that have been expressed in the + OpenACS forums to 4th July 2003. +
+ OpenACS developer documentation should meet the following requirements. No + significance has been given to the order presented, topic breadth or depth here. +
+ list documentation assumptions, such as familiarity with + modifying OpenACS packages. All kernel docs are here etc. +
+ This documentation should be written for ongoing use by + developers, not as a tutorial. +
+ List of practical development and diagnostics tools and + methodologies. +
+ List of OpenACS development resources, api-doc, + schema-browser, developer-support package etc. +
+ Identify each OpenACS subsystem, explain why it is used + (instead of other choices). In the case of subsystems that + are developed outside of OpenACS such as tcl, include + external references to development and reference areas. +
+ Show current engineering standards and indicate where + changes to the standards are in the works. +
+ Sections should be dedicated to DotLRN standards as well, if + they are not available elsewhere. +
+ Add overview diagrams showing the core parts of the + datamodel including an updated summary of Greenspun's + Chapter 4: Data Models and the Object System +
+ package design guidelines and development process templates + including planning, core functions, testing, usability, and + creating case studies +
+ Standard package conventions, where to see "model" code, and + guidelines (or where to find them) for: +
+ programming tcl/sql +
+ using the acs-api +
+ ad_form +
+ coding permissions +
+ OpenACS objects +
+ scheduled protocols +
+ call backs +
+ directory structure +
+ user interface +
+ widgets +
+ package_name and type_extension_table +
+ adding optional services, including search, general + comments, attachments, notifications, workflow, CR and + the new CR Tcl API +
+
+ Document kernel coding requirements, strategy and guidelines + to help code changers make decisions that meet kernel + designers' criteria +
+ OpenACS documentation development is subject to the + constraints of the software project development and release + methods and cycles (the section called “Using CVS with OpenACS”). + Essentially, all phases of work may be active to accommodate + the asynchronous nature of multiple subprojects evolving by + the efforts of a global base of participants with culturally + diverse time references and scheduling idiosyncrasies. +
+ The documentation strategy is to use project methods to + involve others by collaborating or obtaining guidance or + feedback (peer review) to distribute the workload and increase + the overall value of output for the OpenACS project. +
+ All OpenACS documentation will be marked up to conform to the + DocBook XML + DTD. Theoretically, any strict DTD would have been + sufficient. We could even write our own, or just use the + OpenACS templating system via the Edit-This-Page package. + However, + + is a publishing standard based on XML with + similar goals to the OpenACS Documentation project. Some specific reasons why we are using DocBook: +
+ It is open-source. +
+ A growing community surrounds DocBook (has mailing lists) - and a number of free and commercial +
+ A number of free and commercial tools are available - for editing and publishing DocBook documents. + for editing and publishing DocBook documents. +
+ It enables us to publish in a variety of formats. +
+ XML separates content from presentation: It relieves each + contributor of the burden of presentation, freeing each writer + to focus on content and sharing knowledge. +
+ It is well tested technology. It has been in development + since the early 1990's). +
+ Reasons why we are using Docbook XML instead of Docbook SGML: +
+ Consistency and history. We started with a collection + of DocBook XML files that ArsDigita wrote. Trying to re-write them to + conform to the SGML DTD would be unnecessary work. +
+ XML does not require extra + effort. Writing in XML is almost identical to + SGML, with a couple extra rules. More details in the + LDP Author Guide. +
+ The tool chain has matured. xsltproc and other XML + based tools have improved to the point where they are about as good as + the SGML tools. Both can output html and pdf formats. +
+ Albeit, the road to using DocBook has had some trials. + In 2002, Docbook still was not fully capable of representing + online books as practiced by book publishers and expected from + readers with regards to usability on the web. That meant + DocBook did not entirely meet OpenACS publishing requirements + at that time.
- This primer walks you through the basics, and should cover the + In 2004, Docbook released version 4.2, which complies with all + the OpenACS publishing requirements. + Producing a web friendly book hierarchy arguably remains DocBooks' + weakest point. For example, a dynamically built document + should be able to extract details of a specific reference from + a bibliographic (table) and present a footnote at the + point where referenced. DocBook 4.2 allows for this with + bibliocoverage, + bibliorelation, and + bibliosource. DocBook: + The Definitive Guide is a good start for learning how + to represent paper-based books online. +
+ The following DocBook primer walks you through the basics, and should cover the needs for 95 percent of the documentation we produce. However, you're always welcome to check out DocBook's - list of elements and use more exotic features in your + list of elements and use more exotic features in your documents. The list is made up of SGML-elements but basically the same elements are valid in the XML DTD as long as you remember to: - +
- Always close your tags with corresponding end-tags and to - not use other tag minimization -
- Write all elements and attributes in lowercase -
- Quote all attributes -
You are going to need the following to work with the OpenACS Docbook XML documentation:
- Docbook XML - DTD - The document type definition for XML. You can - find an RPM or DEB package or you can download a zip file from - the site linked from here. -
- XSL - Stylesheets (docbook-xsl) - The stylesheets to convert - to HTML. We have been using a stylesheet based upon - NWalsh's chunk.xsl. -
- xsltproc - The processor that - will take an XML document and, given a xsl stylesheet, convert - it to HTML. It needs libxml2 and libxslt (available in RPM and - DEB formats or from xmlsoft.org. -
- Some editing tool. A popular one is Emacs with the psgml - mode. We have a intro to the PSGML - Mode in Emacs as part of our documentation. You can - read about other editing tools in the LDP Author Guide. -
+ Docbook XML + DTD - The document type definition for XML. You can + find an RPM or DEB package or you can download a zip file from + the site linked from here. +
+ XSL + Stylesheets (docbook-xsl) - The stylesheets to convert + to HTML. We have been using a stylesheet based upon + NWalsh's chunk.xsl. +
+ xsltproc - The processor that + will take an XML document and, given a xsl stylesheet, convert + it to HTML. It needs libxml2 and libxslt (available in RPM and + DEB formats or from xmlsoft.org. +
+ Some editing tool. A popular one is Emacs with the psgml + mode. We have a intro to the PSGML + Mode in Emacs as part of our documentation. You can + read about other editing tools in the LDP Author Guide. +
After you have the tools mentioned above, you need to define a title for your document. Then start thinking about the possible sections and subsections you will have in your document. Make @@ -106,7 +687,7 @@ The documentation for each package will make up a little "book" that is structured like this - examples are emphasized: - +
book : Docs for one package - templating @@ -130,20 +711,20 @@ sources of these DocBook documents to get an idea of how they are tied together.- + Given that your job starts at the sect1-level, all your documents should open with a <sect1>-tag and end with the corresponding </sect1>.
- + You need to feed every <sect1> two attributes. The first attribute, id, is standard and can be used with all elements. It comes in very handy when interlinking between documents (more about this when talking about links in the section called “Links”). The value of id has to be unique throughout the book you're making since the id's in your sect1's will turn into filenames when the book is parsed into HTML.
- + The other attribute is xreflabel. The value of this is the text that will appear as the link when referring to this sect1.
@@ -158,7 +739,7 @@ </sect1>
- + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -167,7 +748,7 @@ When it comes to naming your sect2's and below, prefix them with some abbreviation of the id in the sect1 such as requirements-overview.
- + For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we will use the tag <computeroutput>. @@ -177,57 +758,57 @@ <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically.
- + Linking falls into two different categories: inside the book you're making and outside:
- 1. Inside linking, cross-referencing other parts of your book
- By having unique id's you can cross-reference any part of your book - with a simple tag, regardless of where that part is. -
Check out how I link to a subsection of the Developer's Guide:
Put this in your XML:
+ By having unique id's you can cross-reference any part of your book + with a simple tag, regardless of where that part is. +Check out how I link to a subsection of the Developer's Guide:
Put this in your XML:
- Find information about creating a package in <xref linkend="packages-making-a-package"></xref>.And the output is:
- Find information about creating a package in Making a Package.- Note that even though this is an empty tag, you have to either: -
- Provide the end-tag, </xref>, or -
- Put a slash before the ending-bracket: <xref linkend="blahblah"/> -
If the section you link to hasn't a specified xreflabel-attribute, - the link is going to look like this:
Put this in your XML:
+ Note that even though this is an empty tag, you have to either: +
+ Provide the end-tag, </xref>, or +
+ Put a slash before the ending-bracket: <xref linkend="blahblah"/> +
If the section you link to hasn't a specified xreflabel-attribute, + the link is going to look like this:
Put this in your XML:
-Find information about what a package looks like in <xref linkend="packages-looks"></xref>.And the output is:
- Find information about what a package looks like in the section called “What a Package Looks Like”.- Note that since I haven't provided an xreflabel for the subsection, - packages-looks, the - parser will try its best to explain where the link takes you. -
- 2. Linking outside the documentation
- - If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just - a little different + Note that since I haven't provided an xreflabel for the subsection, + packages-looks, the + parser will try its best to explain where the link takes you. +
- 2. Linking outside the documentation
+ + If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just + a little different - (<ulink>): + (<ulink>): -
<ulink url="http://www.oracle.com/">Oracle Corporation</ulink>+
<ulink url="http://www.oracle.com/">Oracle Corporation</ulink>- ....will create a hyper-link to Oracle in the HTML-version of the documentation. -
NOTE: Do NOT use ampersands in your hyper links. These are reserved for referencing - entities, which is exactly how you'll make an ampersand: & + ....will create a hyper-link to Oracle in the HTML-version of the documentation. +
NOTE: Do NOT use ampersands in your hyper links. These are reserved for referencing + entities, which is exactly how you'll make an ampersand: & -
NOTE: Currently this section currently only takes HTML-output into consideration - - not a printed version + not a printed version
- Another Note: Also, it's still not a 100 percent sure that this is how we are going to - do it, so if you want to start converting your documents right away, start out with the ones without graphics ;) + Another Note: Also, it's still not a 100 percent sure that this is how we are going to + do it, so if you want to start converting your documents right away, start out with the ones without graphics ;)
- + To insert a graphic we use the elements <mediaobject>, <imageobject>, @@ -253,37 +834,37 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths.
- + Here's how you make the DocBook equivalent of the three usual HTML-lists:
- 1. How to make an <ul>
- Making an unordered list is pretty much like doing the same thing in HTML - if you close your <li>, that is. The only differences are that each list item has to be wrapped in something more, such as - <para>, and that the tags are called - <itemizedlist> - and - <listitem>: -
+ Making an unordered list is pretty much like doing the same thing in HTML - if you close your <li>, that is. The only differences are that each list item has to be wrapped in something more, such as + <para>, and that the tags are called + <itemizedlist> + and + <listitem>: +<itemizedlist> <listitem><para>Stuff goes here</para></listitem> <listitem><para>More stuff goes here</para></listitem> </itemizedlist>- 2. How to make an <ol>
- The ordered list is like the preceding, except that you use - <orderedlist> instead:
+ The ordered list is like the preceding, except that you use + <orderedlist> instead:<orderedlist> <listitem><para>Stuff goes here</para></listitem> <listitem><para>More stuff goes here</para></listitem> </orderedlist>- 3. How to make a <dl>
- This kind of list is called a variablelist and these are the tags you'll need to - make it happen: - <variablelist>, - <varlistentry>, - <term> and - <listitem>:
+ This kind of list is called a variablelist and these are the tags you'll need to + make it happen: + <variablelist>, + <varlistentry>, + <term> and + <listitem>:<variablelist> <varlistentry> @@ -298,7 +879,7 @@ </variablelist>- + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -335,7 +916,7 @@ <table> for an example.
- + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.
@@ -377,40 +958,40 @@
bash$ xsltproc /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl filename.xml- You could also look at the acs-core-docs Makefile - for examples of how these documents are generated. + You could also look at the acs-core-docs Makefile + for examples of how these documents are generated.
- The LDP Author - Guide has a lot of good information, a table of - docbook elements and their "look" in HTML and lots of good links - for tools. -
- David Lutterkort - wrote an intro to the PSGML Mode in Emacs -
- For checking if your document is well-formed, James Clark's free Java parser, - XP, is recommended. (note that - it is not a validating parser, but as long as you follow the guidelines set forth in this - document, your XML will validate)
- DocBook Tool for Linux: - Let's you convert your docbook documents to a number of formats. Sometimes it's nice to see - how you stuff looks. NOTE: I only got these to - work with Docbook SGML, NOT with Docbook XML. If you are - able to make it work with our XML, please let us know. -
- AptConvert from PIXware is a Java editor that will produce - DocBook documents and let you transform them into HTML and PDF for a local preview before you submit. -
- In the process of transforming your HTML into XML, - HTML tidy - can be a a handy tool to make your HTML "regexp'able". - Brandoch Calef has made a - Perl script - that gets you most of the way. + The LDP Author + Guide has a lot of good information, a table of + docbook elements and their "look" in HTML and lots of good links + for tools. +
+ David Lutterkort + wrote an intro to the PSGML Mode in Emacs +
+ For checking if your document is well-formed, James Clark's free Java parser, + XP, is recommended. (note that + it is not a validating parser, but as long as you follow the guidelines set forth in this + document, your XML will validate)
+ DocBook Tool for Linux: + Let's you convert your docbook documents to a number of formats. Sometimes it's nice to see + how you stuff looks. NOTE: I only got these to + work with Docbook SGML, NOT with Docbook XML. If you are + able to make it work with our XML, please let us know. +
+ AptConvert from PIXware is a Java editor that will produce + DocBook documents and let you transform them into HTML and PDF for a local preview before you submit. +
+ In the process of transforming your HTML into XML, + HTML tidy + can be a handy tool to make your HTML "regexp'able". + Brandoch Calef has made a + Perl script + that gets you most of the way. -
Document Revision # Action Taken, Notes When? By Whom? 0.4 - Fixed some typos. - 8/3/2002 Vinod Kurup 0.3 - Added OpenACS information, updated tools, added - extra links and added info to the Publishing section. - 12/24/2001 Roberto Mello 0.2 Changed recommendation from <phrase> to <emphasis role="strong"> 01/19/2000 Claus Rasmussen 0.1 Creation 12/2000 Claus Rasmussen View comments on this page at openacs.org +
Document Revision # Action Taken, Notes When? By Whom? 0.4 + Fixed some typos. + 8/3/2002 Vinod Kurup 0.3 + Added OpenACS information, updated tools, added + extra links and added info to the Publishing section. + 12/24/2001 Roberto Mello 0.2 Changed recommendation from <phrase> to <emphasis role="strong"> 01/19/2000 Claus Rasmussen 0.1 Creation 12/2000 Claus Rasmussen View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html,v diff -u -r1.38 -r1.39 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 29 Jun 2004 15:50:15 -0000 1.38 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 16 Feb 2005 00:21:02 -0000 1.39 @@ -1,4 +1,4 @@ -Constraint naming standard By Michael Bryzek
+Constraint naming standard By Michael Bryzek
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v diff -u -r1.38 -r1.39 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 29 Jun 2004 15:50:15 -0000 1.38 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 16 Feb 2005 00:21:02 -0000 1.39 @@ -1,4 +1,4 @@ -
ACS File Naming and Formatting Standards By Michael Yoon and Aurelius Prochazka
+ACS File Naming and Formatting Standards By Michael Yoon and Aurelius Prochazka
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 29 Jun 2004 15:50:15 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 16 Feb 2005 00:21:02 -0000 1.40 @@ -1,4 +1,4 @@ -
PL/SQL Standards +
PL/SQL Standards By Richard Li and Yon Feldman
OpenACS docs are written by the named authors, and may be edited Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v diff -u -r1.41 -r1.42 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 5 Jul 2004 14:24:59 -0000 1.41 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 16 Feb 2005 00:21:02 -0000 1.42 @@ -1,4 +1,4 @@ -Release Version Numbering By Ron Henderson
Revised by Joel Aufrecht
+Release Version Numbering By Ron Henderson
Revised by Joel Aufrecht
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.@@ -59,8 +59,32 @@
So what distinguishes an alpha release from a beta release? Or from a production release? We follow a specific set of rules for how OpenACS makes the transition from one state of maturity to -the next. These rules are fine-tuned with each release; an example is 5.0.0 Milestones and Milestone Criteria
Database upgrade scripts must be named very precisely in order for the Package Manager to run the correct script at the correct time.
Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql
If the version you are working on is a later version than the current released version, OLDVERSION should be the current version. The current version is package version in the APM and in /packages/myfirstpackage/myfirstpackage.info. So if forums is at 2.0.1, OLDVERSION should be 2.0.1d1. Note that this means that new version development that includes an upgrade must start at d2, not d1. +the next. These rules are fine-tuned with each release; an example is 5.0.0 Milestones and Milestone Criteria
+ Each package has a maturity level. Maturity level is recorded in the .info file for each major-minor release of OpenACS, + and is set to the appropriate value for that release of the package. +
+ <version ...> + <provides .../> + <requires .../> + <maturity>1</maturity> + <callbacks> + ... +
+ Level -1: Incompatible. This package is not supported for this platform and should not be expected to work. +
+ Level 0: New Submission. This is the default for packages that do not have maturity explicitly set, + and for new contributions. The only criterion for level 0 is that at least one person asserts that it works on a given platform. +
+ Level 1: Immature. Has no open priority 1 or priority 2 bugs. Has been installed by at least + 10? different people, including 1 core developer. Has been available in a stable release for at least 1 month. Has API documentation. +
+ Level 2: Mature. Same as Level 1, plus has install guide and user documentation; + no serious deviations from general coding practices; no namespace conflicts with existing level 2 packages. +
+ Level 3: Mature and Standard. Same as level 2, plus meets published coding standards; + is fully internationalized; available on both supported databases. +
Database upgrade scripts must be named very precisely in order for the Package Manager to run the correct script at the correct time.
Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql
If the version you are working on is a later version than the current released version, OLDVERSION should be the current version. The current version is package version in the APM and in /packages/myfirstpackage/myfirstpackage.info. So if forums is at 2.0.1, OLDVERSION should be 2.0.1d1. Note that this means that new version development that includes an upgrade must start at d2, not d1.
If you are working on a pre-release version of a package, use the current package version as OLDVERSION. Increment the package version as appropriate (see above) and use the new version as NEWVERSION. For example, if you are working on 2.0.1d3, make it 2.0.1d4 and use upgrade-2.0.1d3-2.0.1d4.sql.
Database upgrades should be confined to development releases, not alpha or beta releases.
Never use a final release number as a NEWVERSION. If you do, then it is impossible to add any more database upgrades without incrementing the overall package version.
Use only the d, a, and b letters in OLDVERSION and NEWVERSION. rc is not supported by OpenACS APM.
The distance from OLDVERSION to NEWVERSION should never span a release. For example if we had a bug fix in acs-kernel on 5.1.0 you wouldn't want a file upgrade-5.0.4-5.1.0d1.sql since if you subsequently need to provide a 5.0.4-5.0.5 upgrade you will have to rename the 5.0.4-5.1.0 upgrade since you can't have upgrades which overlap like that. Instead, use upgrade-5.1.0d1-5.1.0d2.sql -
($Id$)View comments on this page at openacs.org +($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/eng-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/eng-standards.html 22 Jun 2004 12:53:44 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/eng-standards.html 16 Feb 2005 00:21:02 -0000 1.23 @@ -1 +1 @@ -Chapter�12.�Engineering Standards View comments on this page at openacs.org +Chapter�12.�Engineering Standards View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 5 Jul 2004 14:24:59 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 16 Feb 2005 00:21:02 -0000 1.31 @@ -1,4 +1,4 @@ -External Authentication Requirements People have plenty of usernames and passwords already, we +
External Authentication Requirements People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.
Besides, administrators have better things to do than create @@ -44,7 +44,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.
Authentication Driver API: The service contract which authentication drivers implement.
Authentication:
-
Account Management (NO PICTURE YET)
Batch Synchronization (NO PICTURE YET)
Feature Status Description EXT-AUTH-01 A Extend Authentication/Acct Status API EXT-AUTH-03 A Account Creation API EXT-AUTH-05 A Password Management API EXT-AUTH-30 A Authority Management API
Feature Status Description EXT-AUTH-04 A Rewrite login, register, and admin pages to use APIs EXT-AUTH-38 A ad_form complain feature EXT-AUTH-19 A Rewrite password recovery to use API EXT-AUTH-21 A Rewrite email verification with API EXT-AUTH-28 A Username is email switch Users will log in using a username, a authority, and a +
Account Management (NO PICTURE YET)
Batch Synchronization (NO PICTURE YET)
Feature Status Description EXT-AUTH-01 A Extend Authentication/Acct Status API EXT-AUTH-03 A Account Creation API EXT-AUTH-05 A Password Management API EXT-AUTH-30 A Authority Management API
Feature Status Description EXT-AUTH-04 A Rewrite login, register, and admin pages to use APIs EXT-AUTH-38 A ad_form complain feature EXT-AUTH-19 A Rewrite password recovery to use API EXT-AUTH-21 A Rewrite email verification with API EXT-AUTH-28 A Username is email switch Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.
Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the @@ -376,4 +376,4 @@ PAM specification
Draft Proposal by Andrew Grumet.
Yale CAS, a centrl authentication service a' la - Passport.
View comments on this page at openacs.org + Passport.View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/filename.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/filename.html 29 Jun 2004 15:50:15 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/filename.html 16 Feb 2005 00:21:02 -0000 1.40 @@ -1,4 +1,4 @@ -Detailed Design Documentation Template By You
+
Detailed Design Documentation Template By You
NOTE: Some of the sections of this template may not apply to your package, e.g. there may be no user-visible UI elements for a component of the OpenACS Core. Furthermore, it may be easier in some circumstances Index: openacs-4/packages/acs-core-docs/www/for-everyone.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/for-everyone.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/for-everyone.html 22 Jun 2004 12:53:46 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/for-everyone.html 16 Feb 2005 00:21:02 -0000 1.20 @@ -1 +1 @@ -
Part�I.�OpenACS For Everyone
Prev Home Next OpenACS Core Documentation Up Chapter�1.�High level information: What is OpenACS?
docs@openacs.orgView comments on this page at openacs.org +Part�I.�OpenACS For Everyone
Prev Home Next OpenACS Core Documentation Up Chapter�1.�High level information: What is OpenACS?
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/form-builder.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/form-builder.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/form-builder.html 5 Jul 2004 14:24:59 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 16 Feb 2005 00:21:02 -0000 1.21 @@ -1,4 +1,4 @@ -Using HTML Forms Some elements have more than one choice, or can submit more than one value.
Creating the form element.�Populate a list of lists with values for the option list.
set foo_options [db_list_of_lists foo_option_list " +Using HTML Forms Some elements have more than one choice, or can submit more than one value.
Creating the form element.�Populate a list of lists with values for the option list.
set foo_options [db_list_of_lists foo_option_list " select foo, foo_id from foos @@ -42,6 +42,6 @@ ns_log notice the following form was submitted on my page ns_set print $mypage } -Here are some common errors and what to do when you - encounter them:
Here are some common errors and what to do when you + encounter them:
($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/general-documents.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/general-documents.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/general-documents.html 22 Jun 2004 12:53:46 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/general-documents.html 16 Feb 2005 00:21:02 -0000 1.20 @@ -1 +1 @@ -Chapter�1.�High level information: What is OpenACS? Table of Contents
View comments on this page at openacs.org +Chapter�1.�High level information: What is OpenACS? Table of Contents
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/groups-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/groups-design.html 22 Jun 2004 12:53:46 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 16 Feb 2005 00:21:02 -0000 1.25 @@ -1,4 +1,4 @@ -Groups Design By Rafael H. Schloming and Mark Thomas
+Groups Design By Rafael H. Schloming and Mark Thomas
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
User directory
Sitewide administrator directory
Subsite administrator directory
TCL script directory
Data model
PL/SQL file
Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 22 Jun 2004 12:53:46 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 16 Feb 2005 00:21:02 -0000 1.25 @@ -1,4 +1,4 @@ -
Groups Requirements By Rafael H. Schloming, Mark Thomas
+Groups Requirements By Rafael H. Schloming, Mark Thomas
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Almost all database-backed websites have users, and need to model the Index: openacs-4/packages/acs-core-docs/www/high-avail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/high-avail.html 5 Jul 2004 14:24:59 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 16 Feb 2005 00:21:02 -0000 1.15 @@ -1 +1 @@ -
High Availability/High Performance Configurations
Prev Home Next Running multiple services on one machine Up Staged Deployment for Production Networks
docs@openacs.orgView comments on this page at openacs.org +High Availability/High Performance Configurations
Prev Home Next Running multiple services on one machine Up Staged Deployment for Production Networks
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 5 Jul 2004 14:24:59 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 16 Feb 2005 00:21:02 -0000 1.18 @@ -1,6 +1,6 @@ -How Do I? The easiest way is to install the Edit-This-Page package.
Log in to the web site as an administrator.
Click on Admin > Install Software > Install from OpenACS Repository / Install new application
Choose Edit This Page and install
Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).
Go to /admin/permissions and grant Create to Registered Users
Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.
On the front page, click the Admin button.
On the administration page, click Parameters link.
Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.
Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:
cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/wwwEdit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.
Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:
+
How Do I? The easiest way is to install the Edit-This-Page package.
Log in to the web site as an administrator.
Click on Admin > Install Software > Install from OpenACS Repository / Install new application
Choose Edit This Page and install
Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).
Go to /admin/permissions and grant Create to Registered Users
Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.
On the front page, click the Admin button.
On the administration page, click Parameters link.
Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.
Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:
cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/wwwEdit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.
Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:
A templated page uses an ADP/TCL pair. The first line in the ADP file is usually:
<master>If it appears exactly like this, without any arguments, the template processer uses default-master for that subsite. For pages in /var/lib/aolserver/$OPENACS_SERVICE_NAME/www, this is /var/lib/aolserver/$OPENACS_SERVICE_NAME/www/default-master.adp and the associated .tcl file. -
The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/site-master.adp and .tcl)
The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).
Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.
Steps to Reproduce.�The events package does not allow users to register for new events.
Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.
Select an available event
A link such as Registration: Deadline is 03/15/2004 10:00am. +
The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/site-master.adp and .tcl)
The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).
Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.
Steps to Reproduce.�The events package does not allow users to register for new events.
Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.
Select an available event
A link such as Registration: Deadline is 03/15/2004 10:00am. � Login or sign up to register for this event. is visible. Click on "Login or sign up" -
Complete a new registration. Afterwards, you should be redirected back to the same page.
Actual Results: The page says "You do not have permission to register for this event."
Expected results: A link or form to sign up for the event is shown.
Finding the problem.�We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. It contains this line:
set can_register_p [events::security::can_register_for_event_p -event_id $event_id]We need to know what that procedure does, so go to /api-doc, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply
return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.
Setting Permissions.�A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
Click "Grant Permission"
Grant the write permission to Registered Users.
OpenACS 5.0 offers a prettier version at /admin/applications.
View comments on this page at openacs.org +Complete a new registration. Afterwards, you should be redirected back to the same page.
Actual Results: The page says "You do not have permission to register for this event."
Expected results: A link or form to sign up for the event is shown.
Finding the problem.�We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. It contains this line:
set can_register_p [events::security::can_register_for_event_p -event_id $event_id]We need to know what that procedure does, so go to /api-doc, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply
return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.
Setting Permissions.�A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
Click "Grant Permission"
Grant the write permission to Registered Users.
OpenACS 5.0 offers a prettier version at /admin/applications.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-convert.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 5 Jul 2004 14:24:59 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 16 Feb 2005 00:21:02 -0000 1.17 @@ -1,4 +1,4 @@ -How to Internationalize a Package Tip
+
How to Internationalize a Package Tip
For multilingual websites we recommend using the UTF8 charset. In order for AOLserver to use utf8 you need to set the config parameters OutputCharset and @@ -71,7 +71,7 @@ test. If you don't provide the package_key argument then all packages with catalog files will be checked. The script will run its checks primarily on en_US xml catalog files. -
Replace complicated keys with longer, simpler keys.�When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.
The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:
<p class="form-help-text"><b>Invitations</b> are sent, +
Replace complicated keys with longer, simpler keys.�When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.
The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:
<p class="form-help-text"><b>Invitations</b> are sent, when this wizard is completed and casting begins.</p>has a bold tag which confuses the converter into thinking there are two message keys for the text beginning "Invitations ..." where there should be one:
Instead, we cancel those keys, edit the file manually, and put in a single temporary message tag:
<p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, when this wizard is completed and casting begins.#> </p>Complex if statements may produce convoluted message keys that are very hard to localize. Rewrite these if statements. For example:
Select which case <if @simulation.casting_type@ eq "open">and Index: openacs-4/packages/acs-core-docs/www/i18n-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-design.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/i18n-design.html 22 Jun 2004 12:53:47 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/i18n-design.html 16 Feb 2005 00:21:02 -0000 1.7 @@ -1,2 +1,2 @@ -Design Notes User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:
Use user preference for this package (stored in ad_locale_user_prefs)
Use system preference for the package (stored in apm_packages)
Use user's general preference (stored in user_preferences)
Use Browser header (Accept-Language HTTP header)
Use system locale (an APM parameter for acs_lang)
default to en_US
For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is +
Design Notes User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:
Use user preference for this package (stored in ad_locale_user_prefs)
Use system preference for the package (stored in apm_packages)
Use user's general preference (stored in user_preferences)
Use Browser header (Accept-Language HTTP header)
Use system locale (an APM parameter for acs_lang)
default to en_US
For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is found, then that locale is offered instead.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 22 Jun 2004 12:53:47 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 16 Feb 2005 00:21:02 -0000 1.9 @@ -1,4 +1,4 @@ -How Internationalization/Localization works in OpenACS +
How Internationalization/Localization works in OpenACS This document describes how to develop internationalized OpenACS packages, including writing new packages with internationalization and converting old packages. Text that Index: openacs-4/packages/acs-core-docs/www/i18n-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-overview.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/i18n-overview.html 22 Jun 2004 12:53:47 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.html 16 Feb 2005 00:21:02 -0000 1.7 @@ -1 +1 @@ -
Internationalization and Localization Overview Table�14.1.�Internationalization and Localization Overview
Stage Task Who Internationalization Package Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information) Package Developer Release Management The newly internationalized package is released. Package Developer The translation server is updated with the new package. Translation server maintainers Localization Translators work in their respective locales to write text for each message key. (More information) Translators Release Management The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server. Translation server maintainers The catalog files are committed to the OpenACS code base. Translation server maintainers A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository. Release Manager Upgrading Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten. Site Administrators
Prev Home Next Chapter�14.�Internationalization Up How Internationalization/Localization works in OpenACS
docs@openacs.orgView comments on this page at openacs.org +Internationalization and Localization Overview Table�16.1.�Internationalization and Localization Overview
Stage Task Who Internationalization Package Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information) Package Developer Release Management The newly internationalized package is released. Package Developer The translation server is updated with the new package. Translation server maintainers Localization Translators work in their respective locales to write text for each message key. (More information) Translators Release Management The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server. Translation server maintainers The catalog files are committed to the OpenACS code base. Translation server maintainers A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository. Release Manager Upgrading Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten. Site Administrators
Prev Home Next Chapter�16.�Internationalization Up How Internationalization/Localization works in OpenACS
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 22 Jun 2004 12:53:47 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 16 Feb 2005 00:21:02 -0000 1.17 @@ -1,4 +1,4 @@ -OpenACS Internationalization Requirements by Henry Minsky, +
OpenACS Internationalization Requirements by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, @@ -93,7 +93,7 @@ Analysis
Other application servers: ATG Dyanmo, Broadvision, Vignette, ... ? Anyone know how they deal with i18n ?
System/Package "coversheet" - where all -documentation for this software is linked off of
User's guide
Other-cool-system-related-to-this-one +documentation for this software is linked off of
User's guide
Other-cool-system-related-to-this-one document
LI18NUX 2000 Globalization Specification: http://www.li18nux.net/
Mozilla Index: openacs-4/packages/acs-core-docs/www/i18n-translators.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-translators.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/i18n-translators.html 22 Jun 2004 12:53:47 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.html 16 Feb 2005 00:21:02 -0000 1.7 @@ -1 +1 @@ -
Translator's Guide Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.
The basic steps for translators:
Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.
Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.
While in Translator mode, a list of all message keys appears at the bottom of each page.
Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.
When creating a new locale based on an existing one, such as creating the Guatamalan version of Spanish, you can copy the existing locale's catalog files using the script /packages/acs-core-docs/www/files/create-new-catalog.sh.
View comments on this page at openacs.org +Translator's Guide Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.
The basic steps for translators:
Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.
Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.
While in Translator mode, a list of all message keys appears at the bottom of each page.
Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.
When creating a new locale based on an existing one, such as creating the Guatamalan version of Spanish, you can copy the existing locale's catalog files using the script /packages/acs-core-docs/www/files/create-new-catalog.sh.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/i18n.html 22 Jun 2004 12:53:47 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/i18n.html 16 Feb 2005 00:21:02 -0000 1.25 @@ -1,4 +1,4 @@ -Chapter�14.�Internationalization Table of Contents
+
Chapter�16.�Internationalization Table of Contents
By Peter Marklund and Lars Pind
Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.43 -r1.44 --- openacs-4/packages/acs-core-docs/www/index.html 5 Jul 2004 14:24:59 -0000 1.43 +++ openacs-4/packages/acs-core-docs/www/index.html 16 Feb 2005 00:21:02 -0000 1.44 @@ -1 +1,3 @@ -OpenACS Core Documentation Table of Contents
- I. OpenACS For Everyone
- II. Administrator's Guide
- 2. Installation Overview
- 3. Complete Installation
- 4. Configuring a new OpenACS Site
- 5. Upgrading
- 6. Production Environments
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
- 7. Database Management
- 8. Backup and Recovery
- A. Install Red Hat 8/9
- B. Install additional supporting software
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
- A. Credits
- III. For OpenACS Package Developers
- 1. Development Tutorial
- 2. Advanced Topics
- Write the Requirements and Design Specs
- Add the new package to CVS
- Adding Comments
- Admin Pages
- Categories
- Profile your code
- Prepare the package for distribution.
- Notifications
- Hierarchical data
- Using .vuh files for pretty urls
- Laying out a page with CSS instead of tables
- Sending HTML email from your application
- Basic Caching
- Scheduled Procedures
- Future Topics
- 3. Development Reference
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
- 4. Engineering Standards
- 5. Documentation Standards
- 6. Internationalization
- B. Using CVS with an OpenACS Site
- IV. For OpenACS Platform Developers
- 7. Kernel Documentation
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
- 8. Releasing OpenACS
- Index
List of Figures
- 4.1. Site Templates
- 4.2. Granting Permissions
- 4.3. Granting Permissions in 5.0
- 5.1. Upgrading with the APM
- 5.2. Upgrading a local CVS repository
- 6.1. Multiple-server configuration
- 6.2. Simple A/B Deployment - Step 1
- 6.3. Simple A/B Deployment - Step 2
- 6.4. Simple A/B Deployment - Step 3
- 6.5. Complex A/B Deployment - Step 1
- 6.6. Complex A/B Deployment - Step 2
- 6.7. Complex A/B Deployment - Step 3
- 6.8. Query Analysis example
- 8.1. Backup and Recovery Strategy
- 1.1. Assumptions in this section
- 1.2. Tutorial Data Model
- 1.3. The Database Creation Script
- 1.4. Database Deletion Script
- 1.5. Page Map
- 2.1. Upgrading a local CVS repository
- 3.1. Server file layout diagram
- 3.2. Package file layout diagram
List of Tables
List of Examples
View comments on this page at openacs.org +OpenACS Core Documentation Table of Contents
- I. OpenACS For Everyone
- II. Administrator's Guide
- 2. Installation Overview
- 3. Complete Installation
- 4. Configuring a new OpenACS Site
- 5. Upgrading
- 6. Production Environments
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
- 7. Database Management
- 8. Backup and Recovery
- A. Install Red Hat 8/9
- B. Install additional supporting software
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install PAM Radius for use as external authentication
- Install LDAP for use as external authentication
- Install AOLserver 3.3oacs1
- C. Credits
- III. For OpenACS Package Developers
- 9. Development Tutorial
- 10. Advanced Topics
- Write the Requirements and Design Specs
- Add the new package to CVS
- OpenACS Edit This Page Templates
- Adding Comments
- Admin Pages
- Categories
- Profile your code
- Prepare the package for distribution.
- Distributing upgrades of your package
- Notifications
- Hierarchical data
- Using .vuh files for pretty urls
- Laying out a page with CSS instead of tables
- Sending HTML email from your application
- Basic Caching
- Scheduled Procedures
- Enabling WYSIWYG
- Adding in parameters for your package
- Writing upgrade scripts
- Connect to a second database
- Future Topics
- 11. Development Reference
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
- 12. Engineering Standards
- 14. + CVS Guidelines +
- 15. Documentation Standards
- 16. Internationalization
- D. Using CVS with an OpenACS Site
- IV. For OpenACS Platform Developers
- 17. Kernel Documentation
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
- 18. Releasing OpenACS
- Index
List of Figures
- 4.1. Site Templates
- 4.2. Granting Permissions
- 4.3. Granting Permissions in 5.0
- 5.1. Upgrading with the APM
- 5.2. Upgrading a local CVS repository
- 6.1. Multiple-server configuration
- 6.2. Simple A/B Deployment - Step 1
- 6.3. Simple A/B Deployment - Step 2
- 6.4. Simple A/B Deployment - Step 3
- 6.5. Complex A/B Deployment - Step 1
- 6.6. Complex A/B Deployment - Step 2
- 6.7. Complex A/B Deployment - Step 3
- 6.8. Query Analysis example
- 8.1. Backup and Recovery Strategy
- 9.1. Assumptions in this section
- 9.2. Tutorial Data Model
- 9.3. The Database Creation Script
- 9.4. Database Deletion Script
- 9.5. Page Map
- 10.1. Upgrading a local CVS repository
- 11.1. Server file layout diagram
- 11.2. Package file layout diagram
List of Tables
List of Examples
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/individual-programs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/individual-programs.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 22 Jun 2004 12:53:50 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 16 Feb 2005 00:21:02 -0000 1.24 @@ -1,122 +1,128 @@ -Prerequisite Software +Prerequisite Software OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.- OpenACS requires, at a minimum, an operating system, database, - and webserver. Many additional programs, such as a Mail - Transport Agent and source control system, are also needed for - a fully effective instance. -
Table�2.2.�Version Compatibility Matrix
OpenACS Version 3.2.5 4.5 4.6 4.6.1 4.6.2 4.6.3 5.0 5.1 AOLserver 3 Yes No 3.3+ad13 Maybe Yes 3.3oacs1 Maybe Yes 3.4.2 No 3.4.2oacs1 Maybe Yes Maybe 3.5.5 Maybe Yes No 4.0 Maybe Yes PostgreSQL 7.0 Yes No 7.2 � Yes No 7.3.2 - 7.3.x No Yes 7.4 No Maybe Oracle 8.1.6 Maybe Yes 8.1.7 Maybe Yes 9i No Yes
OpenACS 5.2.0d1.�The OpenACS tarball comprises the core packages and - many useful additional packages. This includes a full set - of documentation. The tarball works with both PostgreSQL - and Oracle.
Operating System.�OpenACS is designed for a Unix-like system. It is + OpenACS requires, at a minimum, an operating system, database, + and webserver to work. Many additional programs, such as a build environment, Mail + Transport Agent, and source control system, are also needed for + a fully effective installation. +
Table�2.2.�Version Compatibility Matrix
OpenACS Version 3.2.5 4.5 4.6 4.6.1 4.6.2 4.6.3 5.0 5.1 5.2 AOLserver 3 Yes No 3.3+ad13 Maybe Yes No 3.3oacs1 Maybe Yes No 3.4.2 No 3.4.2oacs1 Maybe Yes No 3.5.5 Maybe Yes No 4.0 Maybe Yes PostgreSQL 7.0 Yes No 7.2 Maybe Yes No 7.3.2 - 7.3.x No Yes 7.4 No Yes 8.0 No Maybe Yes Oracle 8.1.6 Maybe Yes 8.1.7 Maybe Yes 9i No Yes The OpenACS installation instructions assume the operating system and build environment are installed. + The instructions explain installation of TCL, tDOM, tclwebtest, a Web Server, a Database, a Process Controller, and + Source Control software. The following external links are for reference only. +
OpenACS 5.2.0d1.�The OpenACS tarball comprises the core packages and + many useful additional packages. This includes a full set + of documentation. The tarball works with both PostgreSQL + and Oracle. Some scripts require bash shell.
Operating System.�OpenACS is designed for a Unix-like system. It is developed primarily in Linux. It can be run on Mac OS X, - and in Windows within VMWare.
Linux.�The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer.
FreeBSD.�FreeBSD - guide. The Reference Platform uses bash, which is the + and in Windows within VMWare.
GNU/Linux.�The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer.
FreeBSD.�FreeBSD guide. The OpenACS Reference Platform uses shell scripts written for bash, which is the standard Linux shell. If you are using a different shell, you will need to substitute your shell's conventions for setting environment variables when - appropriate.
Mac OS X.�the section called “OpenACS Installation Guide for Mac OS X”
Windows/VMWare.�the section called “OpenACS Installation Guide for Windows2000” The only + appropriate, and install bash to work with the scripts. Substitute fetch when the instructions suggest you use + wget to download software.
Mac OS X.�the section called “OpenACS Installation Guide for Mac OS X”
Windows/VMWare.�the section called “OpenACS Installation Guide for Windows2000” The only way to run OpenACS on Windows is through the VMWare emulator. (Please let me know if you have OpenACS running directly in Windows.)
Build Environment.�The Reference Platform installation compiles most programs from - source code.
glibc 2.1 or newer, REQUIRED.�You need recent versions of these libraries for - Oracle to work properly. If you want Unicode support, - you'll need glibc 2.2. This should be included in your - operating system distribution.
GNU Make 3.76.1 or newer, REQUIRED.�PostgreSQL and AOLserver require gmake to - compile. Note that on most linux - distributions, GNU Make is simply named - make and - there is no - gmake, - whereas on BSD distributions, - make and - gmake are - different.
TCL 8.3.�
TCL 8.3, REQUIRED.�OpenACS is written in TCL, an interpreted - language. The TCL interpreter must be installed for - OpenACS to function. TCL is included in most standard - distributions.
TCL 8.3 development headers and libraries, OPTIONAL.� The site-wide-search service, OpenFTS, requires these to - compile. (Debian users: apt-get install - tcl8.3-dev). You need this - to install OpenFTS.
tDOM, REQUIRED.�OpenACS 5.2.0d1 stores + source code.
glibc 2.2 or newer, REQUIRED.�You need recent versions of these libraries for + Oracle to work properly. For Unicode support, + you need glibc 2.2 or newer. This should be included in your + operating system distribution.
GNU Make 3.76.1 or newer, REQUIRED.�PostgreSQL and AOLserver require gmake to + compile. Note that on most linux + distributions, GNU Make is simply named + make and + there is no + gmake, + whereas on BSD distributions, + make and + gmake are + different --use gmake.
TCL 8.4.x.�
TCL 8.4.x, REQUIRED.�OpenACS is written in TCL, an interpreted + language. A threaded version of the TCL interpreter must be installed for + OpenACS to work. The TCL interpreter that is included in most standard + distributions may not be thread safe.
TCL 8.4.x development headers and libraries, OPTIONAL.� The site-wide-search service, OpenFTS, requires these to + compile. (Debian users: apt-get install + tcl8.4-dev). You need this + to install OpenFTS.
tDOM, REQUIRED.�OpenACS 5.2.0d1 stores queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which - was used prior to 4.6.4.) tDOM is available from http://www.tdom.org).
tclwebtest, OPTIONAL.�tclwebtest 0.3 is a tool for testing web interfaces - via tcl scripts. http://sourceforge.net/project/showfiles.php?group_id=31075.
Web Server.�The web server handles incoming HTTP requests, provides - a runtime environment for OpenACS's tcl code, connects to the - database, sends out HTTP responses, and logs requests and - errors. OpenACS uses AOLserver; some people have had success - running Apache with mod_nsd - see this - post.
AOLserver 3.3oacs1, REQUIRED.�Mat Kovach's source distribution of AOLserver, including all of the patches listed below.
- Mat Kovach is graciously maintaining an AOLserver distribution that - includes all the patches and modules needed to run OpenACS 5.2.0d1. These - instructions will describe how to install using his source - distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and - perhaps more to come), currently located at uptime.openacs.org. -
- It's also possible to download all the pieces and patches yourself: -
- AOLserver is available at aolserver.com -
- The OpenACS PostgreSQL driver (nspostgres.so) is available from - SourceForge. If - you do decide to use nspostgres.so, you have to remember to - change the AOLserver config file to point to nspostgres.so - instead of postgres.so. This guide uses Mat Kovach's distro - (i.e. postgres.so) + was used prior to 4.6.4.)
tclwebtest, OPTIONAL.�tclwebtest is a tool for testing web interfaces via tcl scripts.
Web Server.�The web server handles incoming HTTP requests, provides + a runtime environment for OpenACS's tcl code, connects to the + database, sends out HTTP responses, and logs requests and + errors. OpenACS uses AOLserver; + some people have had success running Apache with mod_nsd.
AOLserver 4.x, REQUIRED.�Provides the base HTTP server
+ Mat Kovach is graciously maintaining an AOLserver distribution that + includes all the patches and modules needed to run OpenACS 5.2.0d1. These + instructions will describe how to install using his source + distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and + perhaps more to come), currently located at uptime.openacs.org. +
+ It's also possible to download all the pieces and patches yourself: +
+ AOLserver is available at aolserver.com +
+ The OpenACS PostgreSQL driver (nspostgres.so) is available from + SourceForge. If + you do decide to use nspostgres.so, you have to remember to + change the AOLserver config file to point to nspostgres.so + instead of postgres.so. This guide uses Mat Kovach's distro + (i.e. postgres.so) -
- The patch that makes exec work - on BSD is available at sourceforge.net -
- The patch that makes ns_uuencode - work for binary files is available at sourceforge.net -
- The patch that makes AOLserver respect the - -g flag is available at - sourceforge.net -
nsopenssl 2.1a, OPTIONAL.�Provides SSL capabilities for AOLserver. It requires - OpenSSL. You need this if you want users to make - secure (https) connections to your webserver. (home - page)
ns_pam - 0.1, OPTIONAL.�Provides PAM capabilities for AOLserver. You - need this if you want OpenACS users to authenticate - through a PAM module (such as RADIUS). (home - page)
pam_radius 1.3.16, OPTIONAL.�Provides RADIUS capabilities for PAM. You need - this if you want to use RADIUS authentication via PAM in OpenACS.
ns_ldap 0.r8 - , OPTIONAL.�Provides LDAP capabilities for AOLserver. You need - this if you want to use LDAP authentication in OpenACS.
OpenFTS TCL 0.3.2, OPTIONAL.�Adds full-text-search to PostgreSQL and includes a - driver for AOLserver. You need this if you want users - to be able to search for any text on your site.
Analog 5.32, OPTIONAL.�This program examines web server request logs, looks up - DNS values, and produces a report. You need this if you - want to see how much traffic your site is getting.
Balance 3.11, OPTIONAL.�"Balance is a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this or something equivalent if you are running a high-availability production site and do not have an external load balancing system.
Database.�The data on your site (for example, user names and passwords, - calender entries, and notes) is stored in the database. - OpenACS seperates the database with an abstraction layer, - which means that several different databases all function - identically. While you can run the core OpenACS on any - supported database, not all contributed packages support all - databases.
Oracle 8.1.7 (Either this or PostgreSQL is REQUIRED).�You can register and download Oracle from Oracle - TechNet. You need this if you want to use an - Oracle database.
PostgreSQL 7.3.4 (Either this or Oracle is REQUIRED).�You need this if you want to use a PostgreSQL database.
Process Controller.�This is software that initiates other software, and +
+ The patch that makes exec work + on BSD is available at sourceforge.net +
+ The patch for aolserver 3.x that makes ns_uuencode + work for binary files is available at sourceforge.net +
+ The patch that makes AOLserver 3.x respect the + -g flag is available at + sourceforge.net +
nsopenssl, OPTIONAL.�Provides SSL capabilities for AOLserver. It requires + OpenSSL. You need this if you want users to make + secure (https) connections to your webserver. + aolserver3.x requires nsopenssl 2.1a. aolserver4.x requires nsopenssl3; see + aolserver.com for latest release. (home page) +
ns_pam 0.1 or newer, OPTIONAL.�Provides PAM capabilities for AOLserver. You + need this if you want OpenACS users to authenticate + through a PAM module (such as RADIUS).
pam_radius 1.3.16, OPTIONAL.�Provides RADIUS capabilities for PAM. You need + this if you want to use RADIUS authentication via PAM in OpenACS.
ns_ldap 0.r8, OPTIONAL.�Provides LDAP capabilities for AOLserver. You need + this if you want to use LDAP authentication in OpenACS.
OpenFTS + TCL 0.3.2, OPTIONAL.�Adds + full-text-search to PostgreSQL and includes a driver for + AOLserver. You need this if you want users to be able to + search for any text on your site. For postgres 7.4.x and + higher, full text search is also available via tsearch2. +
Analog 5.32 or newer, OPTIONAL.�This program examines web server request logs, looks up + DNS values, and produces a report. You need this if you + want to see how much traffic your site is getting.
Balance 3.11 or newer, OPTIONAL.�"Balance is a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this or something equivalent if you are running a high-availability production site and do not have an external load balancing system.
Database.�The data on your site (for example, user names and passwords, + calender entries, and notes) is stored in the database. + OpenACS separates the database with an abstraction layer, + which means that several different databases all function + identically. While you can run the core OpenACS on any + supported database, not all contributed packages support all + databases.
Oracle 8.1.7 (Either this or PostgreSQL is REQUIRED).�You can register and download Oracle from Oracle + TechNet. You need this if you want to use an + Oracle database.
PostgreSQL 7.4.x (Either this or Oracle is REQUIRED).�You need this if you want to use a PostgreSQL database.
Process Controller.�This is software that initiates other software, and restarts that software if it fails. On Linux, we recommend - using Daemontools to control AOLserver and qmail.
Daemontools 0.76, OPTIONAL.�You need this if you want AOLserver and qmail to run - "supervised," meaning that they are monitored and - automatically restarted if they fail.
Mail Transport Agent.�A Mail Transport Agent is a program that handles all + using Daemontools to control AOLserver and qmail.
Daemontools + 0.76, OPTIONAL.�You need this if + you want AOLserver and qmail to run "supervised," + meaning that they are monitored and automatically + restarted if they fail. An alternative would be to + run the services from inittab.
Mail Transport Agent.�A Mail Transport Agent is a program that handles all incoming and outgoing mail. The Reference Platform uses Qmail; any MTA that provides a sendmail wrapper (that is, that can be invoked by calling the sendmail program with the - same variables that sendmail expects) can be used.
Netqmail 1.04, OPTIONAL.�You need this (or a different Mail Transport + same variables that sendmail expects) can be used.
Netqmail 1.04, OPTIONAL.�You need this (or a different Mail Transport Agent) if you want your webserver to send and receive email.
ucspi-tcp 0.88, OPTIONAL.�This program listens for incoming TCP connections and hands them to a program. We use it instead of inetd, - which is insecure. You need this if you are running qmail.
DocBook, OPTIONAL.�(docbook-xml v4.2, docbook-xsl v1.56, libxslt 1.0.21, - xsltproc 1.0.21). You need this to write or edit documentation. -
Source Control.�A Source Control system keeps track of all of the old + which is insecure. You need this if you are running qmail.
DocBook, OPTIONAL.�(docbook-xml v4.2, docbook-xsl v1.56, libxslt 1.0.21, + xsltproc 1.0.21). You need this to write or edit documentation. +
Source Control.�A Source Control system keeps track of all of the old versions of your files. It lets you recover old files, compare versions of file, and identify specific versions of files. You can use any source control system; the Reference Platform and the OpenACS.org repository (where you can - get patched and development code in between releases) use cvs.
cvs 1.11.2, OPTIONAL.�cvs is included in most unix distributions. You + get patched and development code in between releases) use cvs.
cvs 1.11.18, OPTIONAL.�cvs is included in most unix distributions. You need this if you want to track old versions of your files, do controlled deployment of code from development - to production, or get or contribute development code from openacs.org.
($Id: software.xml,v 1.8 2003/10/29 - 09:01:09 joela Exp $)View comments on this page at openacs.org + to production, or get or contribute development code from openacs.org.($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 5 Jul 2004 14:24:59 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 16 Feb 2005 00:21:02 -0000 1.31 @@ -1,4 +1,4 @@ -Initialize CVS (OPTIONAL) CVS is a source control system. Create and initialize a +
Initialize CVS (OPTIONAL) CVS is a source control system. Create and initialize a directory for a local cvs repository.
[root tmp]# mkdir /cvsroot [root tmp]# cvs -d /cvsroot init [root tmp]# Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 5 Jul 2004 14:24:59 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 16 Feb 2005 00:21:02 -0000 1.32 @@ -1,12 +1,12 @@ -Install Daemontools (OPTIONAL) Daemontools is a collection of programs for controlling +
Install Daemontools (OPTIONAL) Daemontools is a collection of programs for controlling other processes. We use daemontools to run and monitor AOLserver. It is installed in /package. These commands install daemontools and svgroup. svgroup is a script for granting permissions, to allow users other than root to use daemontools for specific - services.
Install Daemontools
download daemontools and install it.
Red Hat 8
[root root]# mkdir -p /package + services.
Install Daemontools
download daemontools and install it.
Red Hat 8
[root root]# mkdir -p /package [root root]# chmod 1755 /package/ [root root]# cd /package/ -[root package]# tar xzf /tmp/daemontools-0.76.tar.gz +[root package]# tar xzf /var/tmp/daemontools-0.76.tar.gz [root package]# cd admin/daemontools-0.76/ [root daemontools-0.76]# package/install Linking ./src/* into ./compile... @@ -18,14 +18,14 @@ mkdir -p /package chmod 1755 /package cd /package -tar xzf /tmp/daemontools-0.76.tar.gz +tar xzf /var/tmp/daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/install
Red Hat 9
Make sure you have the source tarball in - /tmp, or download it. + /var/tmp, or download it.
[root root]# mkdir -p /package [root root]# chmod 1755 /package/ [root root]# cd /package/ -[root package]# tar xzf /tmp/daemontools-0.76.tar.gz +[root package]# tar xzf /var/tmp/daemontools-0.76.tar.gz [root package]# cd admin [root admin]# wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch --14:19:24-- http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch @@ -50,18 +50,36 @@ mkdir -p /package chmod 1755 /package cd /package -tar xzf /tmp/daemontools-0.76.tar.gz +tar xzf /var/tmp/daemontools-0.76.tar.gz cd admin wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch cd daemontools-0.76 patch -p1 < ../daemontools-0.76.errno.patch +package/install
FreeBSD (follow standard install)
Make sure you have the source tarball in + /tmp, or download it. +
[root root]# mkdir -p /package +[root root]# chmod 1755 /package/ +[root root]# cd /package/ +[root package]# tar xzf /tmp/daemontools-0.76.tar.gz +[root package]# cd admin/daemontools-0.76 +[root daemontools-0.76]# package/install +Linking ./src/* into ./compile...(many lines omitted) +Creating /service... +Adding svscanboot to inittab... +init should start svscan now. +[root root]# +mkdir -p /package +chmod 1755 /package +cd /package +tar xzf /tmp/daemontools-0.76.tar.gz +cd admin/daemontools-0.76 package/installDebian
[root ~]# apt-get install daemontools-installer [root ~]# build-daemontoolsVerify that svscan is running. If it is, you should see these two processes running:
[root root]# ps -auxw | grep service root 13294 0.0 0.1 1352 272 ? S 09:51 0:00 svscan /service root 13295 0.0 0.0 1304 208 ? S 09:51 0:00 readproctitle service errors: ....................................... [root root]#Install a script to grant non-root users permission to - control daemontools services.
[root root]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup + control daemontools services.[root root]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup [root root]# chmod 755 /usr/local/bin/svgroup -cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup +cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup chmod 755 /usr/local/bin/svgroup
Prev Home Next Add PSGML commands to emacs init file (OPTIONAL) Up Install qmail (OPTIONAL)
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html 5 Jul 2004 14:24:59 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html 16 Feb 2005 00:21:02 -0000 1.30 @@ -1,9 +1,9 @@ -Install Full Text Search By Joel Aufrecht and Malte Sussdorff
+Install Full Text Search By Joel Aufrecht and Malte Sussdorff
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and +
If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the openfts - tarball in /tmp.
Install Tsearch. This is a PostgreSQL module that + tarball in /var/tmp.
Install Tsearch. This is a PostgreSQL module that OpenFTS requires.
[root root]# su - postgres [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4/contrib/tsearch/ [postgres tsearch]$ make @@ -26,7 +26,7 @@ make install exitUnpack the OpenFTS tarball and compile and install the driver.
[root root]# cd /usr/local/src -[root src]# tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz +[root src]# tar xzf /var/tmp/Search-OpenFTS-tcl-0.3.2.tar.gz [root src]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/ [root Search-OpenFTS-tcl-0.3.2]# ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/ checking prefix... /usr/local @@ -48,7 +48,7 @@ [root aolserver]# cp nsfts.so /usr/local/aolserver/bin/ [root aolserver]# cd /usr/local/src -tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz +tar xzf /var/tmp/Search-OpenFTS-tcl-0.3.2.tar.gz cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/ ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/ make @@ -76,7 +76,7 @@ make su postgres make install -exit
If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also install the PostgreSQL OpenFTS module and prerequisites.)
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/install-ldap-radius.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/install-more-software.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/install-more-software.html 22 Jun 2004 12:53:52 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/install-more-software.html 16 Feb 2005 00:21:02 -0000 1.14 @@ -1,8 +1,8 @@ -Appendix�B.�Install additional supporting software Table of Contents
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
+Appendix�B.�Install additional supporting software Table of Contents
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install PAM Radius for use as external authentication
- Install LDAP for use as external authentication
- Install AOLserver 3.3oacs1
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.This section assumes that the source tarballs for supporting - software are in /tmp. It assumes + software are in /var/tmp. It assumes that you begin each continuous block of commands as root, and you should end each block as root. It doesn't care which directory you start in. Text instructions always precede the commands they Index: openacs-4/packages/acs-core-docs/www/install-next-add-server.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-add-server.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.html 5 Jul 2004 14:24:59 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.html 16 Feb 2005 00:21:02 -0000 1.8 @@ -1,4 +1,4 @@ -
Running multiple services on one machine Services on different ports.�To run a different service on another port but the same +
Running multiple services on one machine Services on different ports.�To run a different service on another port but the same ip, simply repeat Install OpenACS 5.2.0d1 replacing $OPENACS_SERVICE_NAME, and change the
set httpport 8000 Index: openacs-4/packages/acs-core-docs/www/install-next-backups.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-backups.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-next-backups.html 22 Jun 2004 12:53:52 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-next-backups.html 16 Feb 2005 00:21:02 -0000 1.5 @@ -1,4 +1,4 @@ -Backup Strategy +
Backup Strategy The purpose of backup is to enable recovery. Backup and recovery are always risky; here are some steps that minimize the chance recovery is necessary: Index: openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 29 Jun 2004 15:50:15 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 16 Feb 2005 00:21:02 -0000 1.14 @@ -1,4 +1,4 @@ -
Vacuum Postgres nightly +
Vacuum Postgres nightly The "vacuum" command must be run periodically to reclaim space in versions of PostgreSQL before 7.4. The "vacuum analyze" form additionally collects statistics on the Index: openacs-4/packages/acs-core-docs/www/install-nsopenssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nsopenssl.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 22 Jun 2004 12:53:52 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 16 Feb 2005 00:21:02 -0000 1.18 @@ -1,54 +1,27 @@ -
Install nsopenssl By Joel Aufrecht and Malte Sussdorff
+Install nsopenssl By Joel Aufrecht and Malte Sussdorff
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.This AOLserver module is required if you want people to connect to your site via https. These commands compile nsopenssl and install it, along with a tcl helper script to handle https connections. You will also need ssl certificates. Because those should be different for each server service, you won't need those instructions until - later.
You will need the unpacked Aolserver tarball in - /usr/local/src/aolserver and - the nsopenssl tarball in - /tmp.
Red Hat 9 note: see this - thread for details on compiling nsopenssl.)
[root bin]# cd /usr/local/src/aolserver -[root aolserver]# wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz -[root aolserver]# tar xzf nsopenssl-2.1.tar.gz -[root aolserver]# cd nsopenssl-2.1 -[root nsopenssl-2.1]# make OPENSSL=/usr/local/ssl -gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1 -c -o nsopenssl.o nsopenssl.c -(many lines omitted) -gcc -shared -nostartfiles -o nsopenssl.so nsopenssl.o config.o init.o ssl.o thread.o tclcmds.o -L/usr/local/ssl/lib -lssl -lcrypto -[root nsopenssl-2.1]# cp nsopenssl.so /usr/local/aolserver/bin -[root nsopenssl-2.1]# cp https.tcl /usr/local/aolserver/modules/tcl/ -[root nsopenssl-2.1]# -cd /usr/local/src/aolserver -wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz -tar xzf nsopenssl-2.1.tar.gz -cd nsopenssl-2.1 -make OPENSSL=/usr/local/ssl -cp nsopenssl.so /usr/local/aolserver/bin -cp https.tcl /usr/local/aolserver/modules/tcl/For Debian (more - information):
apt-get install libssl-dev -cd /usr/local/src/aolserver -tar xzf /tmp/nsopenssl-2.1.tar.gz -cd nsopenssl-2.1 -make OPENSSL=/usr/lib/ssl -cp nsopenssl.so /usr/local/aolserver/bin -cp https.tcl /usr/local/aolserver/modules/tcl/
You will need the AOLserver4 source in /usr/local/src/aolserver/aolserver and OpenSSL installed in /usr/local/ssl (or at least symlinked there).
[root bin]# cd /usr/local/src/aolserver + later.You will need the AOLserver4 source in /usr/local/src/aolserver/aolserver and OpenSSL installed in /usr/local/ssl (or at least symlinked there).
FreeBSD note: build openssl with gmake install OPENSSL=/usr/local/openssl INST=/usr/local/aolserver +
[root bin]# cd /usr/local/src/aolserver [root aolserver]# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login [root aolserver]# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsopenssl [root aolserver]# cd nsopenssl [root nsopenssl]# make OPENSSL=/usr/local/ssl gcc -I/usr/local/ssl/include (many items omitted) -c -o sslcontext.o sslcontext.c (many lines omitted) -[root nsopenssl-2.1]# make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver +[root nsopenssl-2.1]# make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver40r9 [root nsopenssl-2.1]# cd /usr/local/src/aolserver cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsopenssl cd nsopenssl make OPENSSL=/usr/local/ssl -make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserverIf you have problems starting your server with nsopenssl.so due to missing libssl.so.0.9.7 (or lower), you have to create symlinks +make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver40r9
If you have problems starting your server with nsopenssl.so due to missing libssl.so.0.9.7 (or lower), you have to create symlinks
[root nsopenssl]# cd /usr/local/aolserver/lib [root lib]# ln -s /usr/local/ssl/lib/libssl.so.0.9.7 libssl.so.0.9.7 @@ -69,4 +42,32 @@ file).To enable SSL support in your server, make sure your etc/config.tcl file has a section on "OpenSSL 3 with AOLserver4". If that section is not present, try looking at the README file in - /usr/local/src/aolserver/nsopenssl.
View comments on this page at openacs.org + /usr/local/src/aolserver/nsopenssl.You will need the unpacked Aolserver tarball in + /usr/local/src/aolserver and + the nsopenssl tarball in + /var/tmp.
Red Hat 9 note: see this + thread for details on compiling nsopenssl.)
[root bin]# cd /usr/local/src/aolserver +[root aolserver]# wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz +[root aolserver]# tar xzf nsopenssl-2.1.tar.gz +[root aolserver]# cd nsopenssl-2.1 +[root nsopenssl-2.1]# make OPENSSL=/usr/local/ssl +gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1 -c -o nsopenssl.o nsopenssl.c +(many lines omitted) +gcc -shared -nostartfiles -o nsopenssl.so nsopenssl.o config.o init.o ssl.o thread.o tclcmds.o -L/usr/local/ssl/lib -lssl -lcrypto +[root nsopenssl-2.1]# cp nsopenssl.so /usr/local/aolserver/bin +[root nsopenssl-2.1]# cp https.tcl /usr/local/aolserver/modules/tcl/ +[root nsopenssl-2.1]# +cd /usr/local/src/aolserver +wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz +tar xzf nsopenssl-2.1.tar.gz +cd nsopenssl-2.1 +make OPENSSL=/usr/local/ssl +cp nsopenssl.so /usr/local/aolserver/bin +cp https.tcl /usr/local/aolserver/modules/tcl/For Debian (more + information):
apt-get install libssl-dev +cd /usr/local/src/aolserver +tar xzf /var/tmp/nsopenssl-2.1.tar.gz +cd nsopenssl-2.1 +make OPENSSL=/usr/lib/ssl +cp nsopenssl.so /usr/local/aolserver/bin +cp https.tcl /usr/local/aolserver/modules/tcl/
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-nspam.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nspam.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/install-nspam.html 22 Jun 2004 12:53:52 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/install-nspam.html 16 Feb 2005 00:21:02 -0000 1.9 @@ -1 +1 @@ -Install nspam View comments on this page at openacs.org +Install nspam View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 22 Jun 2004 12:53:52 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 16 Feb 2005 00:21:02 -0000 1.5 @@ -1,4 +1,4 @@ -Deleting a tablespace Skip down for instructions on Deleting a PostgreSQL tablespace. +
Deleting a tablespace Skip down for instructions on Deleting a PostgreSQL tablespace.
Should it become necessary to rebuild a tablespace from scratch, you can use the drop user command Index: openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 22 Jun 2004 12:53:52 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 16 Feb 2005 00:21:02 -0000 1.5 @@ -1,4 +1,4 @@ -
AOLserver keepalive with inittab This is an alternative method for keeping the AOLserver +
AOLserver keepalive with inittab This is an alternative method for keeping the AOLserver process running. The recommended method is to run AOLserver supervised.
This step should be completed as root. This can break every service @@ -22,7 +22,7 @@ restarts our service.
Copy this file into - /tmp/restart-aolserver.txt. + /var/tmp/restart-aolserver.txt.
This script needs to be SUID-root, which means that the script will run as root. This is necessary to ensure @@ -36,7 +36,7 @@
[joeuser ~]$ su - Password: *********** -[root ~]# cp /tmp/restart-aolserver.txt /usr/local/bin/restart-aolserver +[root ~]# cp /var/tmp/restart-aolserver.txt /usr/local/bin/restart-aolserver [root ~]# chown root.web /usr/local/bin/restart-aolserver [root ~]# chmod 4750 /usr/local/bin/restart-aolserver [root ~]# ln -s /usr/bin/perl /usr/local/bin/perl Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 5 Jul 2004 14:24:59 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 16 Feb 2005 00:21:02 -0000 1.15 @@ -1,4 +1,4 @@ -Starting and Stopping an OpenACS instance. The simplest way to start and stop and OpenACS site is to run the startup shell script provided, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run. This runs as a regular task, and logs to the logfile. To stop the site, kill the script.
A more stable way to run OpenACS is with a "keepalive" mechanism of some sort, so that whenever the server halts or is stopped for a reset, it restarts automatically. This is recommended for development and production servers.
The Reference Platform uses Daemontools to control AOLserver. A simpler method, using init, is here.
Daemontools must already be installed. If not, install it.
Each service controlled by daemontools must have a +
Starting and Stopping an OpenACS instance. The simplest way to start and stop and OpenACS site is to run the startup shell script provided, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run. This runs as a regular task, and logs to the logfile. To stop the site, kill the script.
A more stable way to run OpenACS is with a "keepalive" mechanism of some sort, so that whenever the server halts or is stopped for a reset, it restarts automatically. This is recommended for development and production servers.
The Reference Platform uses Daemontools to control AOLserver. A simpler method, using init, is here.
Daemontools must already be installed. If not, install it.
Each service controlled by daemontools must have a directory in /service. That directory must have a file called run. It works like this:
The init program starts every @@ -57,12 +57,12 @@ [root root]# chmod 755 /usr/local/bin/restart-aolserver [root root]#
At this point, these commands will work only for the - root user. Grant permission for the web group to use svc commands on the $OPENACS_SERVICE_NAME server.
[root root]# svgroup web /service/$OPENACS_SERVICE_NAME + root user. Grant permission for the web group to use svc commands on the $OPENACS_SERVICE_NAME server.[root root]# /usr/local/bin/svgroup web /service/$OPENACS_SERVICE_NAME [root root]#
Verify that the controls work. You may want to tail -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME-error.log in another window, so you can see what happens when you type these commands.
Most of this information comes from Tom Jackson's AOLserver+Daemontools Mini-HOWTO. -
Table�6.1.�How it Works