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 -N -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 11 Jun 2004 10:17:35 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 22 Jun 2004 12:53:31 -0000 1.32 @@ -1 +1 @@ -Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Installation Overview
Basic Steps
Prerequisite Software
3. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 4
Install OpenACS 5.2.0d1
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading 4.5 or higher to 4.6.3
Upgrading OpenACS 4.6.3 to 5.0
Upgrading 5.0.0 to 5.0.x
Upgrading the OpenACS files
Upgrading Platform components
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
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-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
Where did this document come from?
Linux Install Guides
Security Information
Resources
View comments on this page at openacs.org
+Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Installation Overview
Basic Steps
Prerequisite Software
3. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 4
Install OpenACS 5.2.0d1
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading 4.5 or higher to 4.6.3
Upgrading OpenACS 4.6.3 to 5.0
Upgrading 5.0.0 to 5.0.x
Upgrading the OpenACS files
Upgrading Platform components
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
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-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
C. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/acs-package-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-package-dev.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/acs-package-dev.html 11 Jun 2004 10:17:35 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/acs-package-dev.html 22 Jun 2004 12:53:32 -0000 1.20 @@ -1,2 +1,2 @@ -Part�III.�For OpenACS Package Developers

For OpenACS Package Developers

Tutorials and reference material for creating new OpenACS packages. -

View comments on this page at openacs.org
+Part�III.�For OpenACS Package Developers

For OpenACS Package Developers

Tutorials and reference material for creating new OpenACS packages. +

View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/acs-plat-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-plat-dev.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 11 Jun 2004 10:17:35 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 22 Jun 2004 12:53:33 -0000 1.21 @@ -1 +1 @@ -Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

15. 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
16. Releasing OpenACS
OpenACS Core and .LRN
How to Update the OpenACS.org repository
How to package and release an OpenACS Package
How to Update the translations
View comments on this page at openacs.org
+Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

15. 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
16. Releasing OpenACS
OpenACS Core and .LRN
How to Update the OpenACS.org repository
How to package and release an OpenACS Package
How to Update the translations
View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/analog-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/analog-install.html,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/analog-install.html 11 Jun 2004 10:17:36 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/analog-install.html 22 Jun 2004 12:53:33 -0000 1.14 @@ -1,4 +1,4 @@ -Install Analog web file analyzer

Install Analog web file analyzer

Download the Analog source tarball in +Install Analog web file analyzer

Install Analog web file analyzer

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
 [root src]# cd analog-5.32
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 -N -r1.5 -r1.6
--- openacs-4/packages/acs-core-docs/www/analog-setup.html	11 Jun 2004 10:17:36 -0000	1.5
+++ openacs-4/packages/acs-core-docs/www/analog-setup.html	22 Jun 2004 12:53:33 -0000	1.6
@@ -1,4 +1,4 @@
-Set up Log Analysis Reports

Set up Log Analysis Reports

Analog is a program with processes webserver access logs, +Set up Log Analysis Reports

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 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 -N -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/aolserver.html 11 Jun 2004 10:17:36 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 22 Jun 2004 12:53:33 -0000 1.38 @@ -1,4 +1,4 @@ -Install AOLserver 3.3oacs1

Install AOLserver 3.3oacs1

by Vinod Kurup

+Install AOLserver 3.3oacs1

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 /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 /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 /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 /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
    Index: openacs-4/packages/acs-core-docs/www/aolserver4.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver4.html,v
    diff -u -N -r1.13 -r1.14
    --- openacs-4/packages/acs-core-docs/www/aolserver4.html	11 Jun 2004 10:17:37 -0000	1.13
    +++ openacs-4/packages/acs-core-docs/www/aolserver4.html	22 Jun 2004 12:53:34 -0000	1.14
    @@ -1,51 +1,53 @@
    -Install AOLserver 4

    Install AOLserver 4

    by Malte Sussdorff

    +Install AOLserver 4

    Install AOLserver 4

    by Malte Sussdorff

    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
    1. 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.5-src.tar.gz
      -[root src]# tar xfz tcl8.4.5-src.tar.gz
      -[root src]# cd tcl8.4.5/unix
      +[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
       [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.5-src.tar.gz
      -tar xfz tcl8.4.5-src.tar.gz
      -cd tcl8.4.5/unix
      +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
       ./configure --enable-threads
       make install
             
    2. Retrieve AOLserver.�Download the aolserver from CVS.

      [root root]# cd /usr/local/src
      -[root src]# mkdir aolserver40r2
      -[root src]# cd aolserver40r2
      +[root src]# mkdir aolserver40r5
      +[root src]# cd aolserver40r5
       [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_r2 aolserver
      +[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 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 nsoracle
      +[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 aolserver40r2
      -cd aolserver40r2
      -cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r2 aolserver
      +mkdir aolserver40r5
      +cd aolserver40r5
      +cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r5 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 nsoracle
      +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
    3. 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/aolserver40r2.

      [root aolserver]# cd /usr/local/src/aolserver40r2/aolserver
      -[root aolserver]# ./configure --prefix=/usr/local/aolserver40r2 --with-tcl=/usr/local/lib/
      +tar xvfz tDOM-0.7.8.tar.gz
    4. 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/
       [root aolserver]# make install
      -      cd /usr/local/src/aolserver40r2/aolserver
      -./configure --prefix=/usr/local/aolserver40r2 --with-tcl=/usr/local/lib/
      +cd /usr/local/src/aolserver40r5/aolserver
      +./configure --prefix=/usr/local/aolserver40r5 --with-tcl=/usr/local/lib/
       make install
      -ln -s /usr/local/aolserver40r2 /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/aolserver40r2 instead of /usr/local/aolserver in future steps.

      [root aolserver]# ln -s /usr/local/aolserver40r2 /usr/local/aolserver
    5. Configure, compile and install the modules.� -

      1. Install nscache

        [root aolserver]# cd /usr/local/src/aolserver40r2/nscache
        +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
      2. Configure, compile and install the modules.� +

        1. Install nscache

          [root aolserver]# cd /usr/local/src/aolserver40r5/nscache
           [root nscache]# make install
        2. Install nsoracle (if you want to use Oracle)

          [root nscache]# cd ../nsoracle
           [root nsoracle]# make install
        3. Install nspostgres (if you want to use Postgres)

          [root nsrewrite]# cd ../nspostgres
          -[root nspostgres]# make install POSTGRES=LSB ACS=1 INST=/usr/local/aolserver40r2 

          If you get errors like:

          nspostgres.c: In function `Ns_PgTableList':
          +[root nspostgres]# make install POSTGRES=LSB ACS=1 INST=/usr/local/aolserver40r5 

          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 @@ -57,24 +59,24 @@

          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
        4. Install nssha1

          [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
        5. Install tDOM

          [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/aolserver40r2 --with-tcl=/usr/local/lib

          Now you can compile and configure tDOM

          [root unix]# sh CONFIG
          +          --prefix=/usr/local/aolserver40r5 --with-tcl=/usr/local/lib

          Now you can compile and configure tDOM

          [root unix]# sh CONFIG
           [root unix]# make install

      3. 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/aolserver40r2/bin
          +	  to use both databases, install both.

          • Oracle

            [root aolserver]# cd /usr/local/aolserver40r5/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/aolserver40r2/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/aolserver40r2/bin
            +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
             [root bin]# chmod 755 nsd-postgres
             [root bin]#
            -cd /usr/local/aolserver40r2/bin
            +cd /usr/local/aolserver40r5/bin
             cp /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/$OPENACS_SERVICE_NAME/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)

        • Test AOLserver.

      ($Id$)
    View comments on this page at openacs.org
    + /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)

  • Test AOLserver.

  • ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/apm-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/apm-design.html 11 Jun 2004 10:17:37 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 22 Jun 2004 12:53:35 -0000 1.30 @@ -1,4 +1,4 @@ -Package Manager Design

    Package Manager Design

    By Bryan Quinn

    +Package Manager Design

    Package Manager Design

    By Bryan Quinn

    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

    Essentials

    • OpenACS Administrator directory

    • Package Manager Requirements

    • Packages

    • ER diagram

    • Tcl API

      • 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 -N -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 11 Jun 2004 10:17:37 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 22 Jun 2004 12:53:36 -0000 1.25 @@ -1,4 +1,4 @@ -Package Manager Requirements

        Package Manager Requirements

        By Bryan Quinn and Todd Nightingale

        +Package Manager Requirements

        Package Manager Requirements

        By Bryan Quinn and Todd Nightingale

        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

        Introduction

        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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/automated-backup.html 11 Jun 2004 10:17:37 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/automated-backup.html 22 Jun 2004 12:53:37 -0000 1.5 @@ -1,3 +1,3 @@ -Automated Backup

        Automated Backup

        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.

        1. Make sure that the manual backup process described above works.

        2. Customize the default backup script. Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh with your specific parameters.

        3. +Automated Backup

          Automated Backup

          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.

          1. Make sure that the manual backup process described above works.

          2. Customize the default backup script. Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh with your specific parameters.

          3. Make sure the file is executable:

            chmod +x backup.sh
          4. 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
          View comments on this page at openacs.org
          Index: openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 11 Jun 2004 10:17:37 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 22 Jun 2004 12:53:37 -0000 1.16 @@ -1,4 +1,4 @@ -Automated Testing

          Automated Testing

          By Jeff Davis

          +Automated Testing

          Automated Testing

          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.� Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 11 Jun 2004 10:17:37 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 22 Jun 2004 12:53:38 -0000 1.31 @@ -1,4 +1,4 @@ -Chapter�8.�Backup and Recovery

            Chapter�8.�Backup and Recovery

            By Don Baccus with additions +Chapter�8.�Backup and Recovery

            Chapter�8.�Backup and Recovery

            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).

            Figure�8.1.�Backup and Recovery Strategy

            Backup and Recovery Strategy
            ($Id$)
            View comments on this page at openacs.org
            + source tree, and the acs-content-repository (which is in the server source tree).

            Figure�8.1.�Backup and Recovery Strategy

            Backup and Recovery Strategy
            ($Id$)
            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/backups-with-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backups-with-cvs.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 11 Jun 2004 10:17:37 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 22 Jun 2004 12:53:38 -0000 1.5 @@ -1,4 +1,4 @@ -Using CVS for backup-recovery

            Using CVS for backup-recovery

            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 +Using CVS for backup-recovery

            Using CVS for backup-recovery

            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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 22 Jun 2004 12:53:38 -0000 1.37 @@ -1,4 +1,4 @@ -Bootstrapping OpenACS

            Bootstrapping OpenACS

            By Jon Salz

            +Bootstrapping OpenACS

            Bootstrapping OpenACS

            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 -N -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/complete-install.html 11 Jun 2004 10:17:37 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 22 Jun 2004 12:53:38 -0000 1.15 @@ -1 +1 @@ -Chapter�3.�Complete Installation

            View comments on this page at openacs.org
            +Chapter�3.�Complete Installation
            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/configuring-new-site.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-new-site.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/configuring-new-site.html 11 Jun 2004 10:17:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/configuring-new-site.html 22 Jun 2004 12:53:38 -0000 1.6 @@ -1,4 +1,4 @@ -Chapter�4.�Configuring a new OpenACS Site

            Chapter�4.�Configuring a new OpenACS Site

            Table of Contents

            How Do I?

            by Joel Aufrecht

            +Chapter�4.�Configuring a new OpenACS Site

            Chapter�4.�Configuring a new OpenACS Site

            Table of Contents

            How Do I?

            by Joel Aufrecht

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

            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.

            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/credits.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v diff -u -N -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/credits.html 11 Jun 2004 10:17:37 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/credits.html 22 Jun 2004 12:53:38 -0000 1.36 @@ -1,4 +1,4 @@ -Appendix�C.�Credits

            Appendix�C.�Credits

            By Vinod Kurup

            +Appendix�C.�Credits

            Appendix�C.�Credits

            By Vinod Kurup

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

            Vinod Kurup put 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 -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 11 Jun 2004 10:17:37 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 22 Jun 2004 12:53:38 -0000 1.21 @@ -1,7 +1,7 @@ -Appendix�D.�Using CVS with an OpenACS Site

            Appendix�D.�Using CVS with an OpenACS Site

            By Joel Aufrecht

            +Appendix�D.�Using CVS with an OpenACS Site

            Appendix�D.�Using CVS with an OpenACS Site

            By Joel Aufrecht

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

            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.

            1. 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 -N -r1.21 -r1.22
              --- openacs-4/packages/acs-core-docs/www/database-management.html	11 Jun 2004 10:17:37 -0000	1.21
              +++ openacs-4/packages/acs-core-docs/www/database-management.html	22 Jun 2004 12:53:38 -0000	1.22
              @@ -1,4 +1,4 @@
              -Chapter�7.�Database Management

              Chapter�7.�Database Management

              By Joel Aufrecht

              +Chapter�7.�Database Management

              Chapter�7.�Database Management

              By Joel Aufrecht

              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
              View 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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 22 Jun 2004 12:53:38 -0000 1.37 @@ -1,4 +1,4 @@ -Database Access API

              Database Access API

              By Jon Salz. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002.

              +Database Access API

              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

              The Big Picture

              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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/db-api.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/db-api.html 22 Jun 2004 12:53:38 -0000 1.37 @@ -1,4 +1,4 @@ -The OpenACS Database Access API

              The OpenACS Database Access API

              +The OpenACS Database Access API

              The OpenACS Database Access API

              By Pete Su and Jon Salz. Modified by Roberto Mello.

              Overview

              One of OpenACS's great strengths is that code written for it is 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 -N -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/dev-guide.html 11 Jun 2004 10:17:37 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/dev-guide.html 22 Jun 2004 12:53:39 -0000 1.26 @@ -1 +1 @@ -Chapter�11.�Development Reference

              View comments on this page at openacs.org
              +Chapter�11.�Development Reference
              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 -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/doc-standards.html 11 Jun 2004 10:17:37 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/doc-standards.html 22 Jun 2004 12:53:39 -0000 1.8 @@ -1 +1 @@ -Chapter�13.�Documentation Standards
              View comments on this page at openacs.org
              +Chapter�13.�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 -N -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 11 Jun 2004 10:17:37 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 22 Jun 2004 12:53:39 -0000 1.38 @@ -1,4 +1,4 @@ -OpenACS Documentation Guide

              OpenACS Documentation Guide

              +OpenACS Documentation Guide

              OpenACS Documentation Guide

              By Claus Rasmussen, with additions by Roberto Mello and the OpenACS Community

              Overview of OpenACS Documentation

              @@ -36,7 +36,7 @@ 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. @@ -57,7 +57,7 @@ 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 @@ -106,7 +106,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 +130,20 @@
                       sources of these DocBook documents
                       to get an idea of how they are tied together.
                     

              Headlines, Sections

              - + 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 +158,7 @@ </sect1>

              - + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -167,7 +167,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.

            Code

            - + 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,12 +177,12 @@ <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically.

            Links

            - + 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:

            +	  

            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:

            @@ -206,7 +206,7 @@
             	    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 @@ -227,7 +227,7 @@ 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,7 +253,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths.

            Lists

            - + 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 @@ -298,7 +298,7 @@ </variablelist>

    Tables

    - + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -335,7 +335,7 @@ <table> for an example.

    Emphasis

    - + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.

    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 -N -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 11 Jun 2004 10:17:37 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 22 Jun 2004 12:53:40 -0000 1.36 @@ -1,4 +1,4 @@ -Constraint naming standard

    Constraint naming standard

    By Michael Bryzek

    +Constraint naming standard

    Constraint naming standard

    By Michael Bryzek

    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

    The Big Picture

    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 -N -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 11 Jun 2004 10:17:37 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 22 Jun 2004 12:53:41 -0000 1.36 @@ -1,4 +1,4 @@ -ACS File Naming and Formatting Standards

    ACS File Naming and Formatting Standards

    By Michael Yoon and Aurelius Prochazka

    +ACS File Naming and Formatting Standards

    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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 22 Jun 2004 12:53:43 -0000 1.37 @@ -1,4 +1,4 @@ -PL/SQL Standards

    PL/SQL Standards

    +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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 22 Jun 2004 12:53:43 -0000 1.37 @@ -1,4 +1,4 @@ -Release Version Numbering

    Release Version Numbering

    By Ron Henderson

    Revised by Joel Aufrecht

    +Release Version Numbering

    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,4 +59,8 @@

    Transition Rules

    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

    ($Id$)
    View comments on this page at openacs.org
    +the next. These rules are fine-tuned with each release; an example is 5.0.0 Milestones and Milestone Criteria

    Naming Database Upgrade Scripts

    Database upgrade scripts must be named very precisely in order for the Package Manager to run the correct script at the correct time.

    1. Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql

    2. 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. +

    3. 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.

    4. Database upgrades should be confined to development releases, not alpha or beta releases.

    5. + 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.

    6. Use only the d, a, and b letters in OLDVERSION and NEWVERSION. rc is not supported by OpenACS APM.

    7. 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
    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 -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/eng-standards.html 11 Jun 2004 10:17:37 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/eng-standards.html 22 Jun 2004 12:53:44 -0000 1.22 @@ -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 -N -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 11 Jun 2004 10:17:37 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 22 Jun 2004 12:53:45 -0000 1.26 @@ -1,4 +1,4 @@ -External Authentication Requirements

    External Authentication Requirements

    Vision

    People have plenty of usernames and passwords already, we +External Authentication Requirements

    External Authentication Requirements

    Vision

    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.

  • Conceptual Pictures

    Authentication:

    -

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, a authority, and a +

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername 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 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 -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/filename.html 11 Jun 2004 10:17:37 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/filename.html 22 Jun 2004 12:53:45 -0000 1.37 @@ -1,4 +1,4 @@ -Detailed Design Documentation Template

    Detailed Design Documentation Template

    By You

    Start Note

    +Detailed Design Documentation Template

    Detailed Design Documentation Template

    By You

    Start Note

    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 -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/for-everyone.html 11 Jun 2004 10:17:37 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/for-everyone.html 22 Jun 2004 12:53:46 -0000 1.19 @@ -1 +1 @@ -Part�I.�OpenACS For Everyone

    View comments on this page at openacs.org
    +Part�I.�OpenACS For Everyone
    View 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 -N -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/form-builder.html 11 Jun 2004 10:17:37 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 22 Jun 2004 12:53:46 -0000 1.16 @@ -1,4 +1,4 @@ -Using HTML Forms

    Using HTML Forms

    Overview

    Multi-part Elements

    Some elements have more than one choice, or can submit more than one value.

    SELECT elements

    1. 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

      Using HTML Forms

      Overview

      Multi-part Elements

      Some elements have more than one choice, or can submit more than one value.

      SELECT elements

      1. 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
        @@ -43,5 +43,5 @@
             ns_set print $mypage
         }
             

      Common Errors

      Here are some common errors and what to do when you - encounter them:

      Error when selecting values

      This generally happens when there is an error in your + encounter them:

      Error when selecting values

      This generally happens when there is an error in your query.

      ($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 -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/general-documents.html 11 Jun 2004 10:17:37 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/general-documents.html 22 Jun 2004 12:53:46 -0000 1.19 @@ -1 +1 @@ -Chapter�1.�High level information: What is OpenACS?

      Chapter�1.�High level information: What is OpenACS?

      View comments on this page at openacs.org
      +Chapter�1.�High level information: What is OpenACS?

      Chapter�1.�High level information: What is OpenACS?

      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 -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/groups-design.html 11 Jun 2004 10:17:37 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 22 Jun 2004 12:53:46 -0000 1.24 @@ -1,4 +1,4 @@ -Groups Design

      Groups Design

      By Rafael H. Schloming and Mark Thomas

      +Groups Design

      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.

      Essentials

      • User directory

      • Sitewide administrator directory

      • Subsite administrator directory

      • TCL script directory

      • OpenACS 4 Groups Requirements

      • 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 -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 11 Jun 2004 10:17:37 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 22 Jun 2004 12:53:46 -0000 1.24 @@ -1,223 +1,223 @@ -Groups Requirements

          Groups Requirements

          By Rafael H. Schloming, Mark Thomas

          +Groups Requirements

          Groups Requirements

          By Rafael H. Schloming, Mark Thomas

          OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

          Introduction

          Almost all database-backed websites have users, and need to model the -grouping of users. The OpenACS 4 Parties and Groups system is intended to provide -the flexibility needed to model complex real-world organizational structures, -particularly to support powerful subsite services; that is, where one OpenACS -installation can support what appears to the user as distinct web services -for different user communities.

          Vision Statement

          A powerful web service that can meet the needs of large enterprises must -be able to model the the real world's very rich organizational structures -and many ways of decomposing the same organization. For example, a -corporation can be broken into structures (the corporation, its divisions, -and their departments) or regions (the Boston office, the LA office); a -person who is employed by (is a member of) a specific department is also a -member of the division and the corporation, and works at (is a member of, but -in a different sense) a particular office. OpenACS's Parties and Groups -system will support such complex relations faithfully.

          Historical Motivations

          The primary limitation of the OpenACS 3.x user group system is that it -restricts the application developer to representing a "flat group" -that contains only users: The user_groups table may contain the -group_id of a parent group, but parent-child relationship -support is limited because it only allows one kind of relationship between -groups to be represented. Moreover, the Oracle database's limited support -for tree-like structures makes the queries over these relationships -expensive.

          In addition, the Module Scoping design in OpenACS 3.0 introduced a -party abstraction - a thing that is a person or a group of people - -though not in the form of an explicit table. Rather, the triple of -scope, user_id, and group_id columns -was used to identify the party. One disadvantage of this design convention is -that it increases a data model's complexity by requiring the programmer -to:

          • add these three columns to each "scoped" table

          • define a multi-column check constraint to protect against data corruption -(e.g., a row with a scope value of "group" but a null -group_id)

          • perform extra checks in Tcl and PL/SQL -functions and procedures to check both the user_id and -group_id values

          In sum, the goal of the Parties and Groups system is to -provide OpenACS programmers and site administrators with simple tools that fully -describe the complex relationships that exist among groups in the real -world.

          User Scenarios

          Pat Developer has a client project and wants to model the company, its -offices, its divisions, and its departments as groups and the employees as -users.

          System Overview

          We start with Groups, which contain members; the -member can be either a person or another group (i.e. a -member is a party).

          In addition to membership, the party and groups system defines a -composition relationship that may exist between groups: A -group can be a component of another group. The child group -is called a component group; the parent group is called a -composite group.

          A group Gc can be a member and/or a component -of another group Gp; the difference is in the way -the members of Gc are related to -Gp:

          • If a party P is a member (or a component) of -Gc and if Gc is a -component of Gp, then P is also -a member (or a component) of Gp

          • If a party P is a member (or a component) of -Gc and if Gc is a -member of Gp, then no -relationship between P and -Gp exists as a result of the relationship between -Gp and Gp.

          Consider an example to make this less abstract: Pretend that the Sierra -Club is a member of Greenpeace. The Sierra Club has chapters; each -chapter is a component of the Sierra Club. If Eddie Environmentalist -is a member of the Massachusetts Chapter of the Sierra Club, Eddie is -automatically a member of the Sierra Club, but being a Sierra Club member -does not make Eddie a member of Greenpeace.

          In the OpenACS, Greenpeace, Sierra Club, and the Sierra Club chapters would be -modeled as groups, and Eddie would be a user. There would be a composition -relationship between each Sierra Club chapter and the Sierra Club. Membership -relationships would exist between Eddie and the Massachusetts Chapter, -between Eddie and the Sierra Club (due to Eddie's membership in the -Massachusetts chapter), and between the Sierra Club and Greenpeace.

          Membership requirements can vary from group to group. The parties and -groups system must provide a base type that specifies the bare minimum -necessary to join a group.

          The parties and groups system must support constraints between a composite -group GP and any of its component groups, -GC. For example, the system should be able to -enforce a rule like: Do not allow a party P to become a -member of GC unless P is already -a member of GP.

          Requirements: Data Model

          The data model for the parties and groups system must provide support for -the following types of entities:

          10.0 Parties + grouping of users. The OpenACS 4 Parties and Groups system is intended to provide + the flexibility needed to model complex real-world organizational structures, + particularly to support powerful subsite services; that is, where one OpenACS + installation can support what appears to the user as distinct web services + for different user communities.

          Vision Statement

          A powerful web service that can meet the needs of large enterprises must + be able to model the the real world's very rich organizational structures + and many ways of decomposing the same organization. For example, a + corporation can be broken into structures (the corporation, its divisions, + and their departments) or regions (the Boston office, the LA office); a + person who is employed by (is a member of) a specific department is also a + member of the division and the corporation, and works at (is a member of, but + in a different sense) a particular office. OpenACS's Parties and Groups + system will support such complex relations faithfully.

          Historical Motivations

          The primary limitation of the OpenACS 3.x user group system is that it + restricts the application developer to representing a "flat group" + that contains only users: The user_groups table may contain the + group_id of a parent group, but parent-child relationship + support is limited because it only allows one kind of relationship between + groups to be represented. Moreover, the Oracle database's limited support + for tree-like structures makes the queries over these relationships + expensive.

          In addition, the Module Scoping design in OpenACS 3.0 introduced a + party abstraction - a thing that is a person or a group of people - + though not in the form of an explicit table. Rather, the triple of + scope, user_id, and group_id columns + was used to identify the party. One disadvantage of this design convention is + that it increases a data model's complexity by requiring the programmer + to:

          • add these three columns to each "scoped" table

          • define a multi-column check constraint to protect against data corruption + (e.g., a row with a scope value of "group" but a null + group_id)

          • perform extra checks in Tcl and PL/SQL + functions and procedures to check both the user_id and + group_id values

          In sum, the goal of the Parties and Groups system is to + provide OpenACS programmers and site administrators with simple tools that fully + describe the complex relationships that exist among groups in the real + world.

          User Scenarios

          Pat Developer has a client project and wants to model the company, its + offices, its divisions, and its departments as groups and the employees as + users.

          System Overview

          We start with Groups, which contain members; the + member can be either a person or another group (i.e. a + member is a party).

          In addition to membership, the party and groups system defines a + composition relationship that may exist between groups: A + group can be a component of another group. The child group + is called a component group; the parent group is called a + composite group.

          A group Gc can be a member and/or a component + of another group Gp; the difference is in the way + the members of Gc are related to + Gp:

          • If a party P is a member (or a component) of + Gc and if Gc is a + component of Gp, then P is also + a member (or a component) of Gp

          • If a party P is a member (or a component) of + Gc and if Gc is a + member of Gp, then no + relationship between P and + Gp exists as a result of the relationship between + Gp and Gp.

          Consider an example to make this less abstract: Pretend that the Sierra + Club is a member of Greenpeace. The Sierra Club has chapters; each + chapter is a component of the Sierra Club. If Eddie Environmentalist + is a member of the Massachusetts Chapter of the Sierra Club, Eddie is + automatically a member of the Sierra Club, but being a Sierra Club member + does not make Eddie a member of Greenpeace.

          In the OpenACS, Greenpeace, Sierra Club, and the Sierra Club chapters would be + modeled as groups, and Eddie would be a user. There would be a composition + relationship between each Sierra Club chapter and the Sierra Club. Membership + relationships would exist between Eddie and the Massachusetts Chapter, + between Eddie and the Sierra Club (due to Eddie's membership in the + Massachusetts chapter), and between the Sierra Club and Greenpeace.

          Membership requirements can vary from group to group. The parties and + groups system must provide a base type that specifies the bare minimum + necessary to join a group.

          The parties and groups system must support constraints between a composite + group GP and any of its component groups, + GC. For example, the system should be able to + enforce a rule like: Do not allow a party P to become a + member of GC unless P is already + a member of GP.

          Requirements: Data Model

          The data model for the parties and groups system must provide support for + the following types of entities:

          10.0 Parties -

          A party is an entity used to represent either a -group or a person.

          The data model should enforce these constraints:

          10.10 A party has an email address, which can be -empty.

          10.20 A party may have multiple email addresses -associated with it.

          10.30 The email address of a party must be unique within -an OpenACS system.

          20.0 Groups +

          A party is an entity used to represent either a + group or a person.

          The data model should enforce these constraints:

          10.10 A party has an email address, which can be + empty.

          10.20 A party may have multiple email addresses + associated with it.

          10.30 The email address of a party must be unique within + an OpenACS system.

          20.0 Groups -

          A group is a collection of zero or more parties.

          20.10 The data model should support the subclassing of -groups via OpenACS Objects.

          30.0 Persons +

          A group is a collection of zero or more parties.

          20.10 The data model should support the subclassing of + groups via OpenACS Objects.

          30.0 Persons -

          A person represents an actual human being, past or -present.

          30.10. A person must have -an associated name.

          40.0 Users +

          A person represents an actual human being, past or + present.

          30.10. A person must have + an associated name.

          40.0 Users -

          A user is a person who has registered with an OpenACS site. A -user may have additional attributes, such as a screen name.

          The data model should enforce these constraints:

          40.10 A user must have a non-empty email address.

          40.20 Two different users may not have the same email -address on a single OpenACS installation; i.e., an email address identifies a -single user on the system.

          40.30 A user may have multiple email addresses; for -example, two or more email addresses may identify a single user.

          40.40 A user must have password field which can be -empty.

          The data model for the parties and groups system must provide support for -the following types of relationships between entities:

          50.0 Membership +

          A user is a person who has registered with an OpenACS site. A + user may have additional attributes, such as a screen name.

          The data model should enforce these constraints:

          40.10 A user must have a non-empty email address.

          40.20 Two different users may not have the same email + address on a single OpenACS installation; i.e., an email address identifies a + single user on the system.

          40.30 A user may have multiple email addresses; for + example, two or more email addresses may identify a single user.

          40.40 A user must have password field which can be + empty.

          The data model for the parties and groups system must provide support for + the following types of relationships between entities:

          50.0 Membership -

          -A party P is considered a member of a -group G

          • when a direct membership relationship exists between P -and G

          • or when there exists a direct membership relationship between -P and some group GC and -GC has a composition relationship (c.f., 60.0) with G.

          50.10 A party may be a member of multiple groups.

          50.20 A party may be a member of the same group multiple -times only when all the memberships have different types; for example, Jane -may be a member of The Company by being both an Employee and an -Executive.

          50.30 A party as a member of itself is not supported.

          50.40 The data model must support membership -constraints.

          50.50The data model should support the subclassing of -membership via OpenACS Relationships.

          - -60.0 Composition -

          A group GC is considered a -component of a second group -GP

          • when a direct composition relationship exists between -GC and GP

          • or when there exists a direct composition relationship between -GC and some group Gi -and Gi has a composition relationship with -GP.

          60.10A group may be a component of multiple groups.

          60.20A group as a component of itself is not -supported.

          60.30The data model must support component -constraints.

          60.40The data model should support the subclassing of -composition via OpenACS Relationships.

          Requirements: API

          The API should let programmers accomplish the following tasks:

          70.10 Create a group +

          + A party P is considered a member of a + group G

          • when a direct membership relationship exists between P + and G

          • or when there exists a direct membership relationship between + P and some group GC and + GC has a composition relationship (c.f., 60.0) with G.

          50.10 A party may be a member of multiple groups.

          50.20 A party may be a member of the same group multiple + times only when all the memberships have different types; for example, Jane + may be a member of The Company by being both an Employee and an + Executive.

          50.30 A party as a member of itself is not supported.

          50.40 The data model must support membership + constraints.

          50.50The data model should support the subclassing of + membership via OpenACS Relationships.

          + + 60.0 Composition +

          A group GC is considered a + component of a second group + GP

          • when a direct composition relationship exists between + GC and GP

          • or when there exists a direct composition relationship between + GC and some group Gi + and Gi has a composition relationship with + GP.

          60.10A group may be a component of multiple groups.

          60.20A group as a component of itself is not + supported.

          60.30The data model must support component + constraints.

          60.40The data model should support the subclassing of + composition via OpenACS Relationships.

          Requirements: API

          The API should let programmers accomplish the following tasks:

          70.10 Create a group -

          The parties and groups system provides a well defined API call that -creates a new group by running the appropriate transactions on the parties -and groups system data model. This API is subject to the constraints laid out -in the data model.

          70.20 Create a person +

          The parties and groups system provides a well defined API call that + creates a new group by running the appropriate transactions on the parties + and groups system data model. This API is subject to the constraints laid out + in the data model.

          70.20 Create a person -

          The parties and groups system provides a well defined API call that -creates a new person by running the appropriate transactions on the parties -and groups system data model. This API is subject to the constraints laid out -in the data model.

          70.30 Create a user +

          The parties and groups system provides a well defined API call that + creates a new person by running the appropriate transactions on the parties + and groups system data model. This API is subject to the constraints laid out + in the data model.

          70.30 Create a user -

          The parties and groups system provides a well defined API call that -creates a new user by running the appropriate transactions on the parties and -groups system data model. This API is subject to the constraints laid out in -the data model.

          80.10 Refine a person to a user +

          The parties and groups system provides a well defined API call that + creates a new user by running the appropriate transactions on the parties and + groups system data model. This API is subject to the constraints laid out in + the data model.

          80.10 Refine a person to a user -

          The parties and groups system provides a well defined API call that -creates a new user by running the appropriate transactions on an existing -person entity. This API is subject to the constraints laid out in the data -model.

          80.30 Demote a user to a person +

          The parties and groups system provides a well defined API call that + creates a new user by running the appropriate transactions on an existing + person entity. This API is subject to the constraints laid out in the data + model.

          80.30 Demote a user to a person -

          The parties and groups system provides a well defined API call that -demotes an existing user entity to a person entity by running the appropriate -transactions on the existing user. This API is subject to the constraints -laid out in the data model.

          90.10 Update a party +

          The parties and groups system provides a well defined API call that + demotes an existing user entity to a person entity by running the appropriate + transactions on the existing user. This API is subject to the constraints + laid out in the data model.

          90.10 Update a party -

          The programmer should be able to modify, add, and delete attributes on any -party. This API is subject to the constraints laid out in the data model.

          95.10 Get the attributes of a party +

          The programmer should be able to modify, add, and delete attributes on any + party. This API is subject to the constraints laid out in the data model.

          95.10 Get the attributes of a party -

          The programmer should be able to view the attributes on any party. This -API is subject to the constraints laid out in the data model.

          100.10 Delete a party +

          The programmer should be able to view the attributes on any party. This + API is subject to the constraints laid out in the data model.

          100.10 Delete a party -

          The system provides an API for deleting a party. This API is subject to -the constraints laid out in the data model.

          100.30 The system may provide a single API call to remove -the party from all groups and then delete the party.

          100.40 In the case of a group, the system may provide a -single API call to remove all parties from a group and then delete the -group.

          110.0 Add a party as a member of a group +

          The system provides an API for deleting a party. This API is subject to + the constraints laid out in the data model.

          100.30 The system may provide a single API call to remove + the party from all groups and then delete the party.

          100.40 In the case of a group, the system may provide a + single API call to remove all parties from a group and then delete the + group.

          110.0 Add a party as a member of a group -

          The parties and groups system provides an API for adding a party as a -member of a group. This API is subject to the constraints laid out in the -data model.

          115.0 Add a group as a component of a second group +

          The parties and groups system provides an API for adding a party as a + member of a group. This API is subject to the constraints laid out in the + data model.

          115.0 Add a group as a component of a second group -

          The parties and groups system provides an API for adding a group as a -component of a second group. This API is subject to the constraints laid out -in the data model.

          120.0 Remove a party as a member of a group +

          The parties and groups system provides an API for adding a group as a + component of a second group. This API is subject to the constraints laid out + in the data model.

          120.0 Remove a party as a member of a group -

          The parties and groups system provides an API for deleting a party's -membership in a group. This API is subject to the constraints laid out in the -data model.

          125.0 Remove a group as a component of a second -group +

          The parties and groups system provides an API for deleting a party's + membership in a group. This API is subject to the constraints laid out in the + data model.

          125.0 Remove a group as a component of a second + group -

          The parties and groups system provides an API for deleting a group's -composition in a second group. This API is subject to the constraints laid -out in the data model.

          130.0 Membership check +

          The parties and groups system provides an API for deleting a group's + composition in a second group. This API is subject to the constraints laid + out in the data model.

          130.0 Membership check -

          The parties and groups system provides an API for answering the question: -"Is party P a member of group -G?"

          135.0 Composition check +

          The parties and groups system provides an API for answering the question: + "Is party P a member of group + G?"

          135.0 Composition check -

          The parties and groups system provides an API for answering the question: -"Is group GC a component of group -GP?"

          140.0 Get members query +

          The parties and groups system provides an API for answering the question: + "Is group GC a component of group + GP?"

          140.0 Get members query -

          The parties and groups system provides an API for answering the question: -"Which parties are members of group G?"

          145.0 Get components query +

          The parties and groups system provides an API for answering the question: + "Which parties are members of group G?"

          145.0 Get components query -

          The parties and groups system provides an API for answering the question: -"Which groups are components of group G?"

          150.0 Member-of-groups query +

          The parties and groups system provides an API for answering the question: + "Which groups are components of group G?"

          150.0 Member-of-groups query -

          The parties and groups system provides an API for answering the question: -"Of which groups is party P a member?"

          155.0 Component-of-groups query +

          The parties and groups system provides an API for answering the question: + "Of which groups is party P a member?"

          155.0 Component-of-groups query -

          The parties and groups system provides an API for answering the question: -"Of which groups is group G a component?"

          160.0 Allowed membership check +

          The parties and groups system provides an API for answering the question: + "Of which groups is group G a component?"

          160.0 Allowed membership check -

          The parties and groups system provides an API for answering the question: -"Is party P allowed to become a member of group -G?"

          165.0 Allowed composition check +

          The parties and groups system provides an API for answering the question: + "Is party P allowed to become a member of group + G?"

          165.0 Allowed composition check -

          The parties and groups system provides an API for answering the question: -"Is group GC allowed to become a component -of group GP?"

          170.0 Efficiency +

          The parties and groups system provides an API for answering the question: + "Is group GC allowed to become a component + of group GP?"

          170.0 Efficiency -

          Since many pages at a site may check membership in a group before serving -a page (e.g., as part of a general permissions check), the data model must -support the efficient storage and retrieval of party attributes and -membership.

          180.0 Ease of Use +

          Since many pages at a site may check membership in a group before serving + a page (e.g., as part of a general permissions check), the data model must + support the efficient storage and retrieval of party attributes and + membership.

          180.0 Ease of Use -

          Since many SQL queries will check membership in a group as part of the -where clause, whatever mechanism is used to check membership in SQL -should be fairly small and simple.

          Requirements: User Interface

          The user interface is a set of HTML pages that are used to drive the -underlying API. The user interface may provide the following functions:

          • 200.0 Create a party

          • 210.0 View the attributes of a party

          • 220.0 Update the attributes of a party

          • 240.0 Delete a party

          • 250.0 Add a party to a group

          • 260.0 Remove a party from a group

          • 270.0 Perform the membership and composition checks -outlined in 130.x to 165.x

          Revision History

          Document Revision #Action Taken, NotesWhen?By Whom?
          0.1Creation08/16/2000Rafael Schloming
          0.2Initial revision08/19/2000Mark Thomas
          0.3Edited and reviewed, conforms to requirements template08/23/2000Kai Wu
          0.4Further revised, added UI requirements08/24/2000Mark Thomas
          0.5Final edits, pending freeze08/24/2000Kai Wu
          0.6More revisions, added composition requirements08/30/2000Mark Thomas
          0.7More revisions, added composition requirements09/08/2000Mark Thomas
          View comments on this page at openacs.org
          +

          Since many SQL queries will check membership in a group as part of the + where clause, whatever mechanism is used to check membership in SQL + should be fairly small and simple.

          Requirements: User Interface

          The user interface is a set of HTML pages that are used to drive the + underlying API. The user interface may provide the following functions:

          • 200.0 Create a party

          • 210.0 View the attributes of a party

          • 220.0 Update the attributes of a party

          • 240.0 Delete a party

          • 250.0 Add a party to a group

          • 260.0 Remove a party from a group

          • 270.0 Perform the membership and composition checks + outlined in 130.x to 165.x

          Revision History

          Document Revision #Action Taken, NotesWhen?By Whom?
          0.1Creation08/16/2000Rafael Schloming
          0.2Initial revision08/19/2000Mark Thomas
          0.3Edited and reviewed, conforms to requirements template08/23/2000Kai Wu
          0.4Further revised, added UI requirements08/24/2000Mark Thomas
          0.5Final edits, pending freeze08/24/2000Kai Wu
          0.6More revisions, added composition requirements08/30/2000Mark Thomas
          0.7More revisions, added composition requirements09/08/2000Mark Thomas
          View comments on this page at openacs.org
          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 -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/high-avail.html 11 Jun 2004 10:17:37 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 22 Jun 2004 12:53:47 -0000 1.11 @@ -1 +1 @@ -High Availability/High Performance Configurations

          High Availability/High Performance Configurations

          See also the section called “Running a PostgreSQL database on another server”.

          Figure�6.1.�Multiple-server configuration

          Multiple-server configuration
          View comments on this page at openacs.org
          +High Availability/High Performance Configurations

          High Availability/High Performance Configurations

          See also the section called “Running a PostgreSQL database on another server”.

          Figure�6.1.�Multiple-server configuration

          Multiple-server configuration
          View 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 -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 11 Jun 2004 10:17:37 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 22 Jun 2004 12:53:47 -0000 1.14 @@ -1,6 +1,6 @@ -How Do I?

          How Do I?

          How do I edit the front page of a new site through a web interface?

          The easiest way is to install the Edit-This-Page package.

          1. Log in to the web site as an administrator.

          2. Click on Admin > Install Software > Install from OpenACS Repository / Install new application

          3. Choose Edit This Page and install

          4. Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).

          How do I let anybody who registers post to a weblog?

          Go to /admin/permissions and grant Create to Registered Users

          How do I replace the front page of a new site with the front page of an application on that site

          Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.

          1. On the front page, click the Admin button.

          2. On the administration page, click Parameters link.

          3. 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.

          How do I put custom functionality on front page of a new site?

          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:

          1. cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/www
          2. Edit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.

          How do I change the site-wide style?

          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?

            How Do I?

            How do I edit the front page of a new site through a web interface?

            The easiest way is to install the Edit-This-Page package.

            1. Log in to the web site as an administrator.

            2. Click on Admin > Install Software > Install from OpenACS Repository / Install new application

            3. Choose Edit This Page and install

            4. Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).

            How do I let anybody who registers post to a weblog?

            Go to /admin/permissions and grant Create to Registered Users

            How do I replace the front page of a new site with the front page of an application on that site

            Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.

            1. On the front page, click the Admin button.

            2. On the administration page, click Parameters link.

            3. 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.

            How do I put custom functionality on front page of a new site?

            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:

            1. cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/www
            2. Edit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.

            How do I change the site-wide style?

            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.

            Figure�4.1.�Site Templates

            Site Templates

            How do I diagnose a permissions problem?

            • Steps to Reproduce.�The events package does not allow users to register for new events.

              1. 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.

              2. Select an available event

              3. A link such as Registration: Deadline is 03/15/2004 10:00am. +

              4. 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)

              5. The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).

              6. Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.

            Figure�4.1.�Site Templates

            Site Templates

            How do I diagnose a permissions problem?

            • Steps to Reproduce.�The events package does not allow users to register for new events.

              1. 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.

              2. Select an available event

              3. 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" -

              4. 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.

              1. To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".

              2. Click "Grant Permission"

              3. Grant the write permission to Registered Users.

                Figure�4.2.�Granting Permissions

                Granting Permissions

              OpenACS 5.0 offers a prettier version at /admin/applications.

              Figure�4.3.�Granting Permissions in 5.0

              Granting Permissions in 5.0
            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.

    1. To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".

    2. Click "Grant Permission"

    3. Grant the write permission to Registered Users.

      Figure�4.2.�Granting Permissions

      Granting Permissions

    OpenACS 5.0 offers a prettier version at /admin/applications.

    Figure�4.3.�Granting Permissions in 5.0

    Granting Permissions in 5.0
  • 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 -N -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 11 Jun 2004 10:17:37 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 22 Jun 2004 12:53:47 -0000 1.12 @@ -1,4 +1,4 @@ -How to Internationalize a Package

    How to Internationalize a Package

    Tip

    +How to Internationalize a Package

    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. -

    Avoiding common i18n mistakes

    • 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,
      +      

    Avoiding common i18n mistakes

    • 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 -N -r1.5 -r1.6
      --- openacs-4/packages/acs-core-docs/www/i18n-design.html	11 Jun 2004 10:17:37 -0000	1.5
      +++ openacs-4/packages/acs-core-docs/www/i18n-design.html	22 Jun 2004 12:53:47 -0000	1.6
      @@ -1,2 +1,2 @@
      -Design Notes

      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:

      1. Use user preference for this package (stored in ad_locale_user_prefs)

      2. Use system preference for the package (stored in apm_packages)

      3. Use user's general preference (stored in user_preferences)

      4. Use Browser header (Accept-Language HTTP header)

      5. Use system locale (an APM parameter for acs_lang)

      6. 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

      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:

      1. Use user preference for this package (stored in ad_locale_user_prefs)

      2. Use system preference for the package (stored in apm_packages)

      3. Use user's general preference (stored in user_preferences)

      4. Use Browser header (Accept-Language HTTP header)

      5. Use system locale (an APM parameter for acs_lang)

      6. 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 -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 11 Jun 2004 10:17:37 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 22 Jun 2004 12:53:47 -0000 1.8 @@ -1,4 +1,4 @@ -How Internationalization/Localization works in OpenACS

      How Internationalization/Localization works in OpenACS

      +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 @@ -209,4 +209,4 @@

      Developers are responsible for creating the keys in the message catalog, which is available at /acs-lang/admin/ -

      View comments on this page at openacs.org
      +

    View comments on this page at openacs.org
    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 -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/i18n-overview.html 11 Jun 2004 10:17:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.html 22 Jun 2004 12:53:47 -0000 1.6 @@ -1 +1 @@ -Internationalization and Localization

    Internationalization and Localization

    Table�14.1.�Internationalization and Localization

    StageTaskWho
    InternationalizationPackage Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information)Package Developer
    Release ManagementThe newly internationalized package is released.Package Developer
    The translation server is updated with the new package.Translation server maintainers
    LocalizationTranslators work in their respective locales to write text for each message key. (More information)Translators
    Release ManagementThe 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
    UpgradingSite 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
    View comments on this page at openacs.org
    +Internationalization and Localization Overview

    Internationalization and Localization Overview

    Table�14.1.�Internationalization and Localization Overview

    StageTaskWho
    InternationalizationPackage Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information)Package Developer
    Release ManagementThe newly internationalized package is released.Package Developer
    The translation server is updated with the new package.Translation server maintainers
    LocalizationTranslators work in their respective locales to write text for each message key. (More information)Translators
    Release ManagementThe 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
    UpgradingSite 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
    View 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 -N -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 11 Jun 2004 10:17:37 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 22 Jun 2004 12:53:47 -0000 1.16 @@ -1,4 +1,4 @@ -OpenACS Internationalization Requirements

    OpenACS Internationalization Requirements

    by Henry Minsky, +OpenACS Internationalization Requirements

    OpenACS Internationalization Requirements

    by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, 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 -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/i18n-translators.html 11 Jun 2004 10:17:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.html 22 Jun 2004 12:53:47 -0000 1.6 @@ -1 +1 @@ -Translator's Guide

    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

    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 -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/i18n.html 11 Jun 2004 10:17:37 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/i18n.html 22 Jun 2004 12:53:47 -0000 1.24 @@ -1,7 +1,7 @@ -Chapter�14.�Internationalization

    Chapter�14.�Internationalization

    +Chapter�14.�Internationalization

    Chapter�14.�Internationalization

    By Peter Marklund and Lars Pind

    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -
    View comments on this page at openacs.org
    +
    View comments on this page at openacs.org
    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 -N -r1.38 -r1.39 --- openacs-4/packages/acs-core-docs/www/index.html 11 Jun 2004 10:17:37 -0000 1.38 +++ openacs-4/packages/acs-core-docs/www/index.html 22 Jun 2004 12:53:48 -0000 1.39 @@ -1 +1 @@ -OpenACS Core Documentation

    OpenACS Core Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS Release Notes
    II. Administrator's Guide
    2. Installation Overview
    Basic Steps
    Prerequisite Software
    3. Complete Installation
    Install a Unix-like system and supporting software
    Install Oracle 8.1.7
    Install PostgreSQL
    Install AOLserver 4
    Install OpenACS 5.2.0d1
    OpenACS Installation Guide for Windows2000
    OpenACS Installation Guide for Mac OS X
    4. Configuring a new OpenACS Site
    How Do I?
    5. Upgrading
    Overview
    Upgrading 4.5 or higher to 4.6.3
    Upgrading OpenACS 4.6.3 to 5.0
    Upgrading 5.0.0 to 5.0.x
    Upgrading the OpenACS files
    Upgrading Platform components
    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
    Running a PostgreSQL database on another server
    Deleting a tablespace
    Vacuum Postgres nightly
    8. Backup and Recovery
    Backup Strategy
    Manual backup and recovery
    Automated Backup
    Using CVS for backup-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
    Where did this document come from?
    Linux Install Guides
    Security Information
    Resources
    III. For OpenACS Package Developers
    1. Development Tutorial
    Creating an Application Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    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
    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
    OpenACS Style Guide
    Release Version Numbering
    Constraint naming standard
    ACS File Naming and Formatting Standards
    PL/SQL Standards
    Variables
    Automated Testing
    5. Documentation Standards
    OpenACS Documentation Guide
    Using PSGML mode in Emacs
    Using nXML mode in Emacs
    Detailed Design Documentation Template
    System/Application Requirements Template
    6. Internationalization
    Internationalization and Localization
    How Internationalization/Localization works in OpenACS
    How to Internationalize a Package
    Design Notes
    Translator's Guide
    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
    OpenACS Core and .LRN
    How to Update the OpenACS.org repository
    How to package and release an OpenACS Package
    How to Update the translations
    Index
    View comments on this page at openacs.org
    +OpenACS Core Documentation

    OpenACS Core Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS Release Notes
    II. Administrator's Guide
    2. Installation Overview
    Basic Steps
    Prerequisite Software
    3. Complete Installation
    Install a Unix-like system and supporting software
    Install Oracle 8.1.7
    Install PostgreSQL
    Install AOLserver 4
    Install OpenACS 5.2.0d1
    OpenACS Installation Guide for Windows2000
    OpenACS Installation Guide for Mac OS X
    4. Configuring a new OpenACS Site
    How Do I?
    5. Upgrading
    Overview
    Upgrading 4.5 or higher to 4.6.3
    Upgrading OpenACS 4.6.3 to 5.0
    Upgrading 5.0.0 to 5.0.x
    Upgrading the OpenACS files
    Upgrading Platform components
    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
    Running a PostgreSQL database on another server
    Deleting a tablespace
    Vacuum Postgres nightly
    8. Backup and Recovery
    Backup Strategy
    Manual backup and recovery
    Automated Backup
    Using CVS for backup-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
    C. Credits
    Where did this document come from?
    Linux Install Guides
    Security Information
    Resources
    III. For OpenACS Package Developers
    9. Development Tutorial
    Creating an Application Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    10. 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
    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
    OpenACS Style Guide
    Release Version Numbering
    Constraint naming standard
    ACS File Naming and Formatting Standards
    PL/SQL Standards
    Variables
    Automated Testing
    13. Documentation Standards
    OpenACS Documentation Guide
    Using PSGML mode in Emacs
    Using nXML mode in Emacs
    Detailed Design Documentation Template
    System/Application Requirements Template
    14. Internationalization
    Internationalization and Localization Overview
    How Internationalization/Localization works in OpenACS
    How to Internationalize a Package
    Design Notes
    Translator's Guide
    D. Using CVS with an OpenACS Site
    IV. For OpenACS Platform Developers
    15. 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
    16. Releasing OpenACS
    OpenACS Core and .LRN
    How to Update the OpenACS.org repository
    How to package and release an OpenACS Package
    How to Update the translations
    Index
    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 -N -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 11 Jun 2004 10:17:37 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 22 Jun 2004 12:53:50 -0000 1.23 @@ -1,12 +1,12 @@ -Prerequisite Software

    Prerequisite Software

    by Joel Aufrecht

    +Prerequisite Software

    Prerequisite Software

    by Joel Aufrecht

    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 Version3.2.5 4.5 4.6 4.6.14.6.24.6.35.05.1
    AOLserver3YesNo
    3.3+ad13MaybeYes
    3.3oacs1MaybeYes
    3.4.2No
    3.4.2oacs1MaybeYesMaybe
    3.5.5MaybeYesNo
    4.0MaybeYes
    PostgreSQL7.0YesNo
    7.2YesNo
    7.3.2 - 7.3.xNoYes
    7.4NoMaybe
    Oracle8.1.6MaybeYes
    8.1.7MaybeYes
    9iNoYes
    • OpenACS 5.2.0d1.�The OpenACS tarball comprises the core packages and +

      Table�2.2.�Version Compatibility Matrix

      OpenACS Version3.2.5 4.5 4.6 4.6.14.6.24.6.35.05.1
      AOLserver3YesNo
      3.3+ad13MaybeYes
      3.3oacs1MaybeYes
      3.4.2No
      3.4.2oacs1MaybeYesMaybe
      3.5.5MaybeYesNo
      4.0MaybeYes
      PostgreSQL7.0YesNo
      7.2YesNo
      7.3.2 - 7.3.xNoYes
      7.4NoMaybe
      Oracle8.1.6MaybeYes
      8.1.7MaybeYes
      9iNoYes
      • 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 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 -N -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 11 Jun 2004 10:17:37 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 22 Jun 2004 12:53:51 -0000 1.27 @@ -1,4 +1,4 @@ -Initialize CVS (OPTIONAL)

        Initialize CVS (OPTIONAL)

        CVS is a source control system. Create and initialize a +Initialize CVS (OPTIONAL)

        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 -N -r1.27 -r1.28
        --- openacs-4/packages/acs-core-docs/www/install-daemontools.html	11 Jun 2004 10:17:37 -0000	1.27
        +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html	22 Jun 2004 12:53:51 -0000	1.28
        @@ -1,9 +1,9 @@
        -Install Daemontools (OPTIONAL)

        Install Daemontools (OPTIONAL)

        Daemontools is a collection of programs for controlling +Install Daemontools (OPTIONAL)

        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.

        1. Install Daemontools

          download daemontools and install it.

          • Red Hat 8

            [root root]# mkdir -p /package
            +      services.

            1. 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
                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 -N -r1.25 -r1.26
                --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html	11 Jun 2004 10:17:37 -0000	1.25
                +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html	22 Jun 2004 12:53:51 -0000	1.26
                @@ -1,7 +1,7 @@
                -Install Full Text Search

                Install Full Text Search

                By Joel Aufrecht and Malte Sussdorff

                +Install Full Text Search

                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. -

                Install OpenFTS module

                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 +

                Install OpenFTS module

                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.

                1. Install Tsearch. This is a PostgreSQL module that OpenFTS requires.

                  [root root]# su - postgres
                  @@ -76,7 +76,7 @@
                   make
                   su postgres
                   make install
                  -exit

                Install OpenFTS prerequisites in PostgreSQL instance

                If you are installing Full Text Search, add required +exit

          Install OpenFTS prerequisites in PostgreSQL instance

          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
          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 -N -r1.12 -r1.13
          --- openacs-4/packages/acs-core-docs/www/install-more-software.html	11 Jun 2004 10:17:37 -0000	1.12
          +++ openacs-4/packages/acs-core-docs/www/install-more-software.html	22 Jun 2004 12:53:52 -0000	1.13
          @@ -1,4 +1,4 @@
          -Appendix�B.�Install additional supporting software

          Appendix�B.�Install additional supporting software

          By Joel Aufrecht

          +Appendix�B.�Install additional supporting software

          Appendix�B.�Install additional supporting software

          By Joel Aufrecht

          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 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 -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.html 11 Jun 2004 10:17:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.html 22 Jun 2004 12:53:52 -0000 1.6 @@ -1,4 +1,4 @@ -Running multiple services on one machine

          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

          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 -N -r1.3 -r1.4
          --- openacs-4/packages/acs-core-docs/www/install-next-backups.html	11 Jun 2004 10:17:37 -0000	1.3
          +++ openacs-4/packages/acs-core-docs/www/install-next-backups.html	22 Jun 2004 12:53:52 -0000	1.4
          @@ -1,4 +1,4 @@
          -Backup Strategy

          Backup Strategy

          +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 -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 11 Jun 2004 10:17:37 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 22 Jun 2004 12:53:52 -0000 1.11 @@ -1,4 +1,4 @@ -Vacuum Postgres nightly

          Vacuum Postgres nightly

          +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 -N -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 11 Jun 2004 10:17:37 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 22 Jun 2004 12:53:52 -0000 1.17 @@ -1,4 +1,4 @@ -Install nsopenssl

          Install nsopenssl

          By Joel Aufrecht and Malte Sussdorff

          +Install nsopenssl

          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 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 -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-nspam.html 11 Jun 2004 10:17:37 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-nspam.html 22 Jun 2004 12:53:52 -0000 1.8 @@ -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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 11 Jun 2004 10:17:37 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 22 Jun 2004 12:53:52 -0000 1.4 @@ -1,4 +1,4 @@ -Deleting a tablespace

          Deleting a tablespace

          Skip down for instructions on Deleting a PostgreSQL tablespace. +Deleting a tablespace

          Deleting a tablespace

          Skip down for instructions on Deleting a PostgreSQL tablespace.

          Deleting an Oracle 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 11 Jun 2004 10:17:37 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 22 Jun 2004 12:53:52 -0000 1.4 @@ -1,4 +1,4 @@ -AOLserver keepalive with inittab

          AOLserver keepalive with inittab

          This is an alternative method for keeping the AOLserver +AOLserver keepalive with inittab

          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 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 -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 11 Jun 2004 10:17:37 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 22 Jun 2004 12:53:52 -0000 1.11 @@ -1,4 +1,4 @@ -Starting and Stopping an OpenACS instance.

          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.

          1. Daemontools must already be installed. If not, install it.

          2. Each service controlled by daemontools must have a +Starting and Stopping an OpenACS instance.

            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.

            1. Daemontools must already be installed. If not, install it.

            2. Each service controlled by daemontools must have a directory in /service. That directory must have a file called run. It works like this:

            Table�6.1.�How it Works

            ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
            svscanboot +

            Table�6.1.�How it Works

            ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
            svscanboot init/etc/inittabps -auxw | grep readproctitlen/a
            aolserversupervise (a child of svscanboot)/service/$OPENACS_SERVICE_NAME/run/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME.logsvc -k /service/$OPENACS_SERVICE_NAME
            postgresqlRedhat init scripts during boot/etc/init.d/postgresql/usr/local/pgsql/data/server.logservice postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)
            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/install-origins.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-origins.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-origins.html 11 Jun 2004 10:17:37 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-origins.html 22 Jun 2004 12:53:52 -0000 1.8 @@ -1,4 +1,4 @@ -Where did this document come from?

            Where did this document come from?

            +Where did this document come from?

            Where did this document come from?

            This document was created by Vinod Kurup, but it's really just plagiarism from a number of documents that came before it. If I've used something that you've written without proper credit, let me Index: openacs-4/packages/acs-core-docs/www/install-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-overview.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/install-overview.html 11 Jun 2004 10:17:37 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 22 Jun 2004 12:53:52 -0000 1.24 @@ -1,4 +1,4 @@ -Chapter�2.�Installation Overview

            Chapter�2.�Installation Overview

            by Vinod Kurup

            +Chapter�2.�Installation Overview

            Chapter�2.�Installation Overview

            by Vinod Kurup

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/install-php.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-php.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/install-php.html 11 Jun 2004 10:17:37 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/install-php.html 22 Jun 2004 12:53:53 -0000 1.6 @@ -1,4 +1,4 @@ -Install PHP for use in AOLserver

            Install PHP for use in AOLserver

            By Malte Sussdorff

            +Install PHP for use in AOLserver

            Install PHP for use in AOLserver

            By Malte Sussdorff

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

            To be able to use PHP software with AOLserver (and OpenACS), you have to install PHP with AOLserver support. Get the latest version from www.php.net. For convenience we get version 4.3.4 from a mirror

            [root root]# cd /usr/local/src
            Index: openacs-4/packages/acs-core-docs/www/install-qmail.html
            ===================================================================
            RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v
            diff -u -N -r1.27 -r1.28
            --- openacs-4/packages/acs-core-docs/www/install-qmail.html	11 Jun 2004 10:17:37 -0000	1.27
            +++ openacs-4/packages/acs-core-docs/www/install-qmail.html	22 Jun 2004 12:53:53 -0000	1.28
            @@ -1,4 +1,4 @@
            -Install qmail (OPTIONAL)

            Install qmail (OPTIONAL)

            Qmail is a Mail Transfer Agent. It handles incoming and +Install qmail (OPTIONAL)

            Install qmail (OPTIONAL)

            Qmail is a Mail Transfer Agent. It handles incoming and outgoing mail. Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.

            Red Hat 9: all djb tools (qmail, daemontools, ucspi) will @@ -29,7 +29,7 @@ tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program [root ucspi-tcp-0.88]# -

            +

            (I'm not sure if this next step is 100% necessary, but when I skip it I get problems. If you get the error 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) then you need to do this.) AOLserver sends outgoing mail via the ns_sendmail command, which pipes a command to the sendmail executable. Or, in our @@ -43,7 +43,7 @@ send outgoing mail.

            [root ucspi-tcp-0.88]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp
             [root ucspi-tcp-0.88]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
             cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp 
            -tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 
          3. Install Qmail.�

            Download qmail, +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

          4. Install Qmail.�

            Download qmail, set up the standard supporting users and build the binaries:

            [root root]# cd /usr/local/src
             [root src]# wget http://www.qmail.org/netqmail-1.04.tar.gz
             [root src]# tar xzf netqmail-1.04.tar.gz
            @@ -102,7 +102,7 @@
             cd netqmail-1.04
             ./collate.sh
             cd netqmail-1.04
            -make setup check

            Replace sendmail with qmail's wrapper.

            [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
            +make setup check

            Replace sendmail with qmail's wrapper.

            [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
             [root qmail-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
             [root qmail-1.03]#
             rm -f /usr/bin/sendmail /usr/sbin/sendmail
            @@ -124,7 +124,7 @@
             cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root 
             chmod 644 ~alias/.qmail* 
             /var/qmail/bin/maildirmake ~alias/Maildir/ 
            -chown -R alias.nofiles /var/qmail/alias/Maildir

            Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir

            Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.

            [root alias]# echo "./Maildir" > /var/qmail/bin/.qmail
             [root alias]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
             [root alias]# chmod 755 /var/qmail/rc
            Index: openacs-4/packages/acs-core-docs/www/install-redhat.html
            ===================================================================
            RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v
            diff -u -N -r1.27 -r1.28
            --- openacs-4/packages/acs-core-docs/www/install-redhat.html	11 Jun 2004 10:17:37 -0000	1.27
            +++ openacs-4/packages/acs-core-docs/www/install-redhat.html	22 Jun 2004 12:53:53 -0000	1.28
            @@ -1,4 +1,4 @@
            -Appendix�A.�Install Red Hat 8/9

            Appendix�A.�Install Red Hat 8/9

            by Joel Aufrecht

            +Appendix�A.�Install Red Hat 8/9

            Appendix�A.�Install Red Hat 8/9

            by Joel Aufrecht

            OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

            This section takes a blank PC and sets up some supporting @@ -26,7 +26,7 @@

            1. Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. - + (Wherever you see the word secure, you should always read it as, "secure enough for our purposes, given the amount of work we're @@ -54,7 +54,7 @@ Review (and modify if needed) the partitions created and click Next

            2. On the pop-up window asking "Are you sure you want to do this?" click Yes - IF YOU ARE WIPING YOUR HARD DRIVE.

            3. Click Next on the boot loader screen

          5. Configure Networking. + IF YOU ARE WIPING YOUR HARD DRIVE.

          6. Click Next on the boot loader screen

          7. Configure Networking. Again, if you know what you're doing, do this step yourself, being sure to note the firewall holes. Otherwise, follow the instructions in this step to set up a computer directly connected to the internet with a dedicated IP address.

            1. DHCP is a system by which a computer that @@ -75,7 +75,7 @@ Mail (SMTP). In the Other ports box, enter 443, 8000, 8443. Click Next. -Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.

          8. Select any additional languages you want the +Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.

          9. Select any additional languages you want the computer to support and then click Next

          10. Choose your time zone and click Next.

          11. Type in a root password, twice.

          12. On the Package selection page, we're going to @@ -87,13 +87,13 @@ risk that's still screened by the firewall, or a resource hog. Just don't install a database or web server, because that would conflict with the database and web server we'll install later. -

            check Editors (this installs emacs),
            click Details next to Text-based Internet, check lynx, and click OK;
            check Authoring and Publishing (this installs docbook),
            uncheck Server Configuration Tools,
            uncheck Web Server,
            uncheck Windows File Server,
            check SQL Database Server (this installs PostgreSQL),
            check Development Tools (this installs gmake and other build tools),
            uncheck Administration Tools, and
            uncheck Printing Support.

            At the bottom, check Select Individual Packages and click Next

          13. We need to fine-tune the exact list of packages. +

            check Editors (this installs emacs),
            click Details next to Text-based Internet, check lynx, and click OK;
            check Authoring and Publishing (this installs docbook),
            uncheck Server Configuration Tools,
            uncheck Web Server,
            uncheck Windows File Server,
            check SQL Database Server (this installs PostgreSQL),
            check Development Tools (this installs gmake and other build tools),
            uncheck Administration Tools, and
            uncheck Printing Support.

            At the bottom, check Select Individual Packages and click Next

          14. We need to fine-tune the exact list of packages. The same rules apply as in the last step - you can add more stuff, but you shouldn't remove anything the guide adds. We're going to go through all the packages in one big list, so select Flat View and wait. In a minute, a -list of packages will appear.

            uncheck apmd (monitors power, not very useful for servers),
            check ImageMagick (required for the photo-album packages,
            uncheckisdn4k-utils (unless you are using isdn, this installs a useless daemon),
            check mutt (a mail program that reads Maildir),
            uncheck nfs-utils (nfs is a major security risk),
            uncheck pam-devel (I don't remember why, but we don't want this),
            uncheck portmap,
            uncheck postfix (this is an MTA, but we're going to install qmail later),
            check postgresql-devel,
            uncheck rsh (rsh is a security hole),
            uncheck sendmail (sendmail is an insecure MTA; we're going to install qmail instead later),
            check tcl (we need tcl), and
            uncheck xinetd (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).
            Click Next
          15. Red Hat isn't completely happy with the combination +list of packages will appear.

            uncheck apmd (monitors power, not very useful for servers),
            check ImageMagick (required for the photo-album packages,
            uncheckisdn4k-utils (unless you are using isdn, this installs a useless daemon),
            check mutt (a mail program that reads Maildir),
            uncheck nfs-utils (nfs is a major security risk),
            uncheck pam-devel (I don't remember why, but we don't want this),
            uncheck portmap,
            uncheck postfix (this is an MTA, but we're going to install qmail later),
            check postgresql-devel,
            uncheck rsh (rsh is a security hole),
            uncheck sendmail (sendmail is an insecure MTA; we're going to install qmail instead later),
            check tcl (we need tcl), and
            uncheck xinetd (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).
            Click Next
          16. Red Hat isn't completely happy with the combination of packages we've selected, and wants to satisfy some dependencies. Don't let it. On the next screen, choose Ignore Package @@ -119,7 +119,7 @@ upgrading all of that. Since you are upgrading the kernel, reboot after this step.

          17. Lock down SSH

            1. - + SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming Index: openacs-4/packages/acs-core-docs/www/install-resources.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-resources.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-resources.html 11 Jun 2004 10:17:37 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-resources.html 22 Jun 2004 12:53:54 -0000 1.8 @@ -1,4 +1,4 @@ -Resources

              Resources

              +Resources

              Resources

              Here are some resources that OpenACS users have found useful.

              Books

              • Index: openacs-4/packages/acs-core-docs/www/install-squirrelmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-squirrelmail.html,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 11 Jun 2004 10:17:37 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 22 Jun 2004 12:53:54 -0000 1.7 @@ -1,4 +1,4 @@ -Install Squirrelmail for use as a webmail system for OpenACS

                Install Squirrelmail for use as a webmail system for OpenACS

                By Malte Sussdorff

                +Install Squirrelmail for use as a webmail system for OpenACS

                Install Squirrelmail for use as a webmail system for OpenACS

                By Malte Sussdorff

                OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                This section is work in progress. It will detail how you can install Squirrelmail as a webmail frontend for OpenACS, thereby neglecting the need to have a seperate webmail package within OpenACS

                [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]# cd www
                Index: openacs-4/packages/acs-core-docs/www/install-ssl.html
                ===================================================================
                RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-ssl.html,v
                diff -u -N -r1.5 -r1.6
                --- openacs-4/packages/acs-core-docs/www/install-ssl.html	11 Jun 2004 10:17:37 -0000	1.5
                +++ openacs-4/packages/acs-core-docs/www/install-ssl.html	22 Jun 2004 12:53:54 -0000	1.6
                @@ -1,4 +1,4 @@
                -Installing SSL Support for an OpenACS service

                Installing SSL Support for an OpenACS service

                Debian Users: apt-get install openssl before proceeding.

                1. Make sure nsopenssl.so is installed for AOLserver.

                2. Uncomment this line from config.tcl.

                  #ns_param   nsopenssl       ${bindir}/nsopenssl.so
                  +Installing SSL Support for an OpenACS service

                  Installing SSL Support for an OpenACS service

                  Debian Users: apt-get install openssl before proceeding.

                  1. Make sure nsopenssl.so is installed for AOLserver.

                  2. Uncomment this line from config.tcl.

                    #ns_param   nsopenssl       ${bindir}/nsopenssl.so
                     
                  3. Prepare a certificate directory for the service.

                    [$OPENACS_SERVICE_NAME etc]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs
                     [$OPENACS_SERVICE_NAME etc]$ chmod 700 /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs
                     [$OPENACS_SERVICE_NAME etc]$ 
                    Index: openacs-4/packages/acs-core-docs/www/install-steps.html
                    ===================================================================
                    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v
                    diff -u -N -r1.20 -r1.21
                    --- openacs-4/packages/acs-core-docs/www/install-steps.html	11 Jun 2004 10:17:37 -0000	1.20
                    +++ openacs-4/packages/acs-core-docs/www/install-steps.html	22 Jun 2004 12:53:54 -0000	1.21
                    @@ -1,4 +1,4 @@
                    -Basic Steps

                    Basic Steps

                    +Basic Steps

                    Basic Steps

                    The basic steps for getting OpenACS installed are:

                    1. Install an OS and supporting software (see Install a Unix-like OS or Appendix�A, Install Red Hat 8/9 for more details). See the Table�2.2, “Version Compatibility Matrix”.

                    2. Install a database (see the section called “Install Oracle 8.1.7” or Install PostgreSQL).

                    3. Install AOLserver (Install AOLserver 4) .

                    4. Create a unique database and system user. @@ -37,7 +37,7 @@ su - $OPENACS_SERVICE_NAME svc -d /service/$OPENACS_SERVICE_NAME dropdb $OPENACS_SERVICE_NAME -createdb $OPENACS_SERVICE_NAME

                    Setting a global shell variable for cut and paste.�In order to cut and paste the instructions into your shell, you must set the environment variable $OPENACS_SERVICE_NAME. In order to set it globally so that it works for any new users or special service users you may create, edit the file /etc/profile and add this line:

                    export OPENACS_SERVICE_NAME=service0

              Paths and Users

              Table�2.1.�Default directories for a standard install

              Fully qualified domain name of your serveryourserver.test
              name of administrative access accountremadmin
              OpenACS service$OPENACS_SERVICE_NAME (set to service0 in default install)
              OpenACS service account$OPENACS_SERVICE_NAME
              OpenACS database name$OPENACS_SERVICE_NAME
              Root of OpenACS service file tree (SERVERROOT)/var/lib/aolserver/$OPENACS_SERVICE_NAME
              Location of source code tarballs for new software/tmp
              The OpenACS tarball contains some files which +createdb $OPENACS_SERVICE_NAME

              Setting a global shell variable for cut and paste.�In order to cut and paste the instructions into your shell, you must set the environment variable $OPENACS_SERVICE_NAME. In order to set it globally so that it works for any new users or special service users you may create, edit the file /etc/profile and add this line:

              export OPENACS_SERVICE_NAME=service0

              Paths and Users

              Table�2.1.�Default directories for a standard install

              Fully qualified domain name of your serveryourserver.test
              name of administrative access accountremadmin
              OpenACS service$OPENACS_SERVICE_NAME (set to service0 in default install)
              OpenACS service account$OPENACS_SERVICE_NAME
              OpenACS database name$OPENACS_SERVICE_NAME
              Root of OpenACS service file tree (SERVERROOT)/var/lib/aolserver/$OPENACS_SERVICE_NAME
              Location of source code tarballs for new software/tmp
              The OpenACS tarball contains some files which are useful while setting up other software. Those files are located at:/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files
              Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup
              Service config files/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
              Service log files/var/lib/aolserver/$OPENACS_SERVICE_NAME/log
              Compile directory/usr/local/src
              PostgreSQL directory/usr/local/pgsql
              AOLserver directory/usr/local/aolserver

              None of these locations are set in stone - they're simply Index: openacs-4/packages/acs-core-docs/www/install-tclwebtest.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-tclwebtest.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 11 Jun 2004 10:17:38 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 22 Jun 2004 12:53:54 -0000 1.11 @@ -1,4 +1,4 @@ -Install tclwebtest.

              Install tclwebtest.

              Download the tclwebtest +Install tclwebtest.

              Install tclwebtest.

              Download the tclwebtest source, unpack it, and put it an appropriate place. (tclwebtest 1.0 will be required for auto-tests in OpenACS 5.1. When it exists, the cvs command here will be replaced with http://prdownloads.sourceforge.net/tclwebtest/tclwebtest-0.3.tar.gz?download.) As root:

              cd /tmp
               cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/tclwebtest co tclwebtest
              Index: openacs-4/packages/acs-core-docs/www/ix01.html
              ===================================================================
              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ix01.html,v
              diff -u -N -r1.15 -r1.16
              --- openacs-4/packages/acs-core-docs/www/ix01.html	11 Jun 2004 10:17:38 -0000	1.15
              +++ openacs-4/packages/acs-core-docs/www/ix01.html	22 Jun 2004 12:53:54 -0000	1.16
              @@ -1,2 +1,2 @@
              -Index

              Index

              Symbols

              $OPENACS_SERVICE_NAME, Paths and Users

              C

              computeroutput
              code, Code
              cvs
              initializing, Initialize CVS (OPTIONAL)
              setup, Using CVS with an OpenACS Site

              D

              daemontools
              installation, Install Daemontools (OPTIONAL)
              docbook
              installation, Install Red Hat 8/9
              DocBook
              DTD, Why DocBook?
              emacs configuration for, Add PSGML commands to emacs init file (OPTIONAL)
              Document structure, Document Structure

              E

              emacs
              installation, Install Red Hat 8/9
              emphasis
              bold, italics, Emphasis

              G

              Graphics
              Images, Graphics

              I

              informaltable
              table, Tables

              L

              language
              installation, Install Red Hat 8/9
              Linking, Links
              lists, Lists

              O

              OpenACS Package, What a Package Looks Like

              P

              photo-album
              installation (see ImageMagick)
              Postgres
              Vacuuming, Installation Option 2: Install from tarball

              Q

              qmail
              installation, Install qmail (OPTIONAL)
              Maildir, Install qmail (OPTIONAL)
              rcpthosts error message, Install qmail (OPTIONAL)

              T

              The publish point for new packages should be +Index

              Index

              Symbols

              $OPENACS_SERVICE_NAME, Paths and Users

              C

              computeroutput
              code, Code
              cvs
              initializing, Initialize CVS (OPTIONAL)
              setup, Using CVS with an OpenACS Site

              D

              daemontools
              installation, Install Daemontools (OPTIONAL)
              docbook
              installation, Install Red Hat 8/9
              DocBook
              DTD, Why DocBook?
              emacs configuration for, Add PSGML commands to emacs init file (OPTIONAL)
              Document structure, Document Structure

              E

              emacs
              installation, Install Red Hat 8/9
              emphasis
              bold, italics, Emphasis

              G

              Graphics
              Images, Graphics

              I

              informaltable
              table, Tables

              L

              language
              installation, Install Red Hat 8/9
              Linking, Links
              lists, Lists

              O

              OpenACS Package, What a Package Looks Like

              P

              photo-album
              installation (see ImageMagick)
              Postgres
              Vacuuming, Installation Option 2: Install from tarball

              Q

              qmail
              installation, Install qmail (OPTIONAL)
              Maildir, Install qmail (OPTIONAL)
              rcpthosts error message, Install qmail (OPTIONAL)

              T

              The publish point for new packages should be fixed., Prepare the package for distribution.

              U

              ulink, Links
              Unicode
              in PostgreSQL, Install PostgreSQL
              upgrade
              OpenACS 4.5 to 4.6.x
              Linux/Unix, Upgrading 4.5 or higher to 4.6.3

              X

              XML guidelines, Why DocBook?
              xref
              linkend, Links
              xreflabel, Headlines, Sections
              View comments on this page at openacs.org
              Index: openacs-4/packages/acs-core-docs/www/kernel-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.html,v diff -u -N -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/kernel-doc.html 11 Jun 2004 10:17:38 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.html 22 Jun 2004 12:53:54 -0000 1.27 @@ -1 +1 @@ -Chapter�15.�Kernel Documentation
              View comments on this page at openacs.org
              +Chapter�15.�Kernel Documentation
              View comments on this page at openacs.org
              Index: openacs-4/packages/acs-core-docs/www/kernel-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-overview.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/kernel-overview.html 11 Jun 2004 10:17:38 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/kernel-overview.html 22 Jun 2004 12:53:55 -0000 1.21 @@ -1,4 +1,4 @@ -Overview

              Overview

              • +Overview

                Overview

                • The OpenACS Kernel, which handles system-wide necessities such as metadata, security, users and groups, subsites, and package Index: openacs-4/packages/acs-core-docs/www/mac-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/mac-installation.html,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/mac-installation.html 11 Jun 2004 10:17:38 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/mac-installation.html 22 Jun 2004 12:53:55 -0000 1.31 @@ -1,4 +1,4 @@ -OpenACS Installation Guide for Mac OS X

                  OpenACS Installation Guide for Mac OS X

                  Prerequisites.�Install readline:

                  1. Download readline from http://ftp.gnu.org/pub/gnu/readline/readline-4.3.tar.gz into /usr/local/src

                  2. Extract readline in /usr/local/src, configure, compile, and install:

                    su - root
                    +OpenACS Installation Guide for Mac OS X

                    OpenACS Installation Guide for Mac OS X

                    Prerequisites.�Install readline:

                    1. Download readline from http://ftp.gnu.org/pub/gnu/readline/readline-4.3.tar.gz into /usr/local/src

                    2. Extract readline in /usr/local/src, configure, compile, and install:

                      su - root
                       cd /usr/local/src
                       tar xvfz readline-4.3.tar.gz
                       readline-4.3
                      Index: openacs-4/packages/acs-core-docs/www/maint-performance.html
                      ===================================================================
                      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maint-performance.html,v
                      diff -u -N -r1.15 -r1.16
                      --- openacs-4/packages/acs-core-docs/www/maint-performance.html	11 Jun 2004 10:17:38 -0000	1.15
                      +++ openacs-4/packages/acs-core-docs/www/maint-performance.html	22 Jun 2004 12:53:55 -0000	1.16
                      @@ -1,7 +1,7 @@
                      -Diagnosing Performance Problems

                      Diagnosing Performance Problems

                      • Did performance problems happen overnight, or did they sneak up on +Diagnosing Performance Problems

                        Diagnosing Performance Problems

                        • Did performance problems happen overnight, or did they sneak up on you? Any clue what caused the performance problems (e.g. loading 20K users into .LRN)

                        • Is the file system out of space? Is the machine swapping to disk constantly?

                        • Isolating and solving database problems.

                          • Without daily internal maintenance, most databases slowly degrade in performance. For PostGreSQL, see the section called “Vacuum Postgres nightly”. For Oracle, use exec dbms_stats.gather_schema_stats('SCHEMA_NAME') (Andrew Piskorski's Oracle notes).

                          • You can track the exact amount of time each database query on a page takes:

                            1. Go to Main Site : Site-Wide Administration : Install Software

                            2. Click on "Install New Application" in "Install from OpenACS Repository"

                            3. Choose "ACS Developer Support">

                            4. After install is complete, restart the server.

                            5. Browse to Developer Support, which is automatically mounted at /ds. -

                            6. Turn on Database statistics

                            7. Browse directly to a slow page and click "Request Information" at the bottom of the page.

                            8. This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.

                              Figure�6.8.�Query Analysis example

                              Query Analysis example
                          • Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.

                            Log in to SQL*Plus as the admin:

                            [$OPENACS_SERVICE_NAME ~]$ svrmgrl
                            +              

                          • Turn on Database statistics

                          • Browse directly to a slow page and click "Request Information" at the bottom of the page.

                          • This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.

                            Figure�6.8.�Query Analysis example

                            Query Analysis example
                  3. Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.

                    Log in to SQL*Plus as the admin:

                    [$OPENACS_SERVICE_NAME ~]$ svrmgrl
                     
                     Oracle Server Manager Release 3.1.7.0.0 - Production
                     
                    @@ -43,7 +43,7 @@
                         

                    To be able to get a overview of how Oracle executes a particular query, install "autotrace". I usually follow the instructions here http://asktom.oracle.com/~tkyte/article1/autotrace.html. -

                    Make sure, that the Oracle CBO works with adequate statistics

                    +

                    Make sure, that the Oracle CBO works with adequate statistics

                    The Oracle Cost Based optimizer is a piece of software that tries to find the "optimal" execution plan for a given SQL statement. For that it estimates the costs of running a SQL query in a particular way (by default Index: openacs-4/packages/acs-core-docs/www/maintenance-deploy.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 11 Jun 2004 10:17:38 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 22 Jun 2004 12:53:55 -0000 1.11 @@ -1,7 +1,7 @@ -Staged Deployment for Production Networks

                    Staged Deployment for Production Networks

                    By Joel Aufrecht

                    +Staged Deployment for Production Networks

                    Staged Deployment for Production Networks

                    By Joel Aufrecht

                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                    This section describes minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)

                    • Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.

                    • Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.

                    Deployment with CVS

                    With this method, we control the files on a site via CVS. In this example, there is one development site and one production site. The only way files should move between the two is via cvs. The production site could run "HEAD" from cvs (raw example from chat log:)

                    +        

                    This section describes minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)

                    • Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.

                    • Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.

                    Deployment with CVS

                    With this method, we control the files on a site via CVS. In this example, there is one development site and one production site. The only way files should move between the two is via cvs. The production site could run "HEAD" from cvs (raw example from chat log:)

                     1) change the file on dev as desired
                     2) test the new file
                     3) commit the file: 
                    @@ -17,4 +17,4 @@
                     the stuff in -m "foo" is a comment visible only from within cvs commands
                     4) update the file on production:
                     cd /web/foo-prod/www
                    -cvs up index.adp

                    The drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...

                    A/B Deployment

                    The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.

                    This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.

                    Simple A/B Deployment: Database is not changed

                    Figure�6.2.�Simple A/B Deployment - Step 1

                    Simple A/B Deployment - Step 1

                    Figure�6.3.�Simple A/B Deployment - Step 2

                    Simple A/B Deployment - Step 2

                    Figure�6.4.�Simple A/B Deployment - Step 3

                    Simple A/B Deployment - Step 3

                    Complex A/B Deployment: Database is changed

                    Figure�6.5.�Complex A/B Deployment - Step 1

                    Complex A/B Deployment - Step 1

                    Figure�6.6.�Complex A/B Deployment - Step 2

                    Complex A/B Deployment - Step 2

                    Figure�6.7.�Complex A/B Deployment - Step 3

                    Complex A/B Deployment - Step 3
                    View comments on this page at openacs.org
                    +cvs up index.adp

                    The drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...

                  A/B Deployment

                  The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.

                  This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.

                  Simple A/B Deployment: Database is not changed

                  Figure�6.2.�Simple A/B Deployment - Step 1

                  Simple A/B Deployment - Step 1

                  Figure�6.3.�Simple A/B Deployment - Step 2

                  Simple A/B Deployment - Step 2

                  Figure�6.4.�Simple A/B Deployment - Step 3

                  Simple A/B Deployment - Step 3

                  Complex A/B Deployment: Database is changed

                  Figure�6.5.�Complex A/B Deployment - Step 1

                  Complex A/B Deployment - Step 1

                  Figure�6.6.�Complex A/B Deployment - Step 2

                  Complex A/B Deployment - Step 2

                  Figure�6.7.�Complex A/B Deployment - Step 3

                  Complex A/B Deployment - Step 3
                  View comments on this page at openacs.org
                  Index: openacs-4/packages/acs-core-docs/www/maintenance-web.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-web.html,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/maintenance-web.html 11 Jun 2004 10:17:38 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/maintenance-web.html 22 Jun 2004 12:53:56 -0000 1.29 @@ -1,4 +1,4 @@ -Chapter�6.�Production Environments

                  Chapter�6.�Production Environments

                  By Joel Aufrecht

                  +Chapter�6.�Production Environments

                  Chapter�6.�Production Environments

                  By Joel Aufrecht

                  OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                  Maintenance tasks, optional software, and alternate configurations for AOLserver.

                  ($Id$)
                  View comments on this page at openacs.org
                  Index: openacs-4/packages/acs-core-docs/www/nxml-mode.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/nxml-mode.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/nxml-mode.html 11 Jun 2004 10:17:38 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/nxml-mode.html 22 Jun 2004 12:53:56 -0000 1.8 @@ -1,4 +1,4 @@ -Using nXML mode in Emacs

                  Using nXML mode in Emacs

                  By Jeff Davis

                  +Using nXML mode in Emacs

                  Using nXML mode in Emacs

                  By Jeff Davis

                  OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                  Index: openacs-4/packages/acs-core-docs/www/object-identity.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-identity.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/object-identity.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/object-identity.html 22 Jun 2004 12:53:56 -0000 1.37 @@ -1,4 +1,4 @@ -Object Identity

                  Object Identity

                  By Rafael H. Schloming

                  +Object Identity

                  Object Identity

                  By Rafael H. Schloming

                  OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                  One of the major design features of OpenACS 5.2.0d1 is the explicit representation Index: openacs-4/packages/acs-core-docs/www/object-system-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 11 Jun 2004 10:17:38 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 22 Jun 2004 12:53:57 -0000 1.25 @@ -1,4 +1,4 @@ -Object Model Design

                  Object Model Design

                  By Pete Su, Michael Yoon, Richard Li, Rafael Schloming

                  +Object Model Design

                  Object Model Design

                  By Pete Su, Michael Yoon, Richard Li, Rafael Schloming

                  OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                  Essentials

                  Data Model

                  • Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 11 Jun 2004 10:17:38 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 22 Jun 2004 12:53:58 -0000 1.24 @@ -1,4 +1,4 @@ -Object Model Requirements

                    Object Model Requirements

                    By Pete Su

                    +Object Model Requirements

                    Object Model Requirements

                    By Pete Su

                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                    I. Introduction

                    A major goal in OpenACS 4 is to unify and normalize many of the core services Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -N -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/objects.html 11 Jun 2004 10:17:38 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/objects.html 22 Jun 2004 12:53:59 -0000 1.38 @@ -1,4 +1,4 @@ -OpenACS Data Models and the Object System

                    OpenACS Data Models and the Object System

                    By Pete Su

                    +OpenACS Data Models and the Object System

                    OpenACS Data Models and the Object System

                    By Pete Su

                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                    Overview

                    @@ -78,7 +78,7 @@ Fire up your text editor and open the ROOT/packages/notes/sql/oracle/notes-create.sql (ROOT/packages/notes/sql/postgresql/notes-create.sql for the PG version) file created when we created the package. Then, do the following: -

                    Describe the new type to the type system

                    +

                    Describe the new type to the type system

                    First, add an entry to the acs_object_types table with the following PL/SQL call:

                     begin  
                    @@ -138,7 +138,7 @@
                     because the new type note is a subtype of
                     acs_object, it will inherit these attributes, so there is
                     no need for us to define them.
                    -

                    Define a table in which to store your objects

                    +

                    Define a table in which to store your objects

                    The next thing we do is make a small modification to the data model to reflect the fact that each row in the notes table represents something that is not only an object of type @@ -163,7 +163,7 @@ use the acs_objects table to find objects will transparently find any objects that are instances of any subtype of acs_objects. -

                    Define a package for type specific procedures

                    +

                    Define a package for type specific procedures

                    The next step is to define a PL/SQL package for your new type, and write some basic procedures to create and delete objects. Here is a package definition for our new type: @@ -211,7 +211,7 @@ object OBJ was "read only", then any other object that used OBJ as its context would also be "read only" by default. We'll talk about this more later. -

                    Define a package body for type specific procedures

                    +

                    Define a package body for type specific procedures

                    The PL/SQL package body contains the implementations of the procedures defined above. The only subtle thing going on here is that we must use acs_object.new to insert a row into Index: openacs-4/packages/acs-core-docs/www/openacs-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-overview.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/openacs-overview.html 11 Jun 2004 10:17:38 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/openacs-overview.html 22 Jun 2004 12:54:00 -0000 1.20 @@ -1,4 +1,4 @@ -Overview

                    Overview

                    +Overview

                    Overview

                    OpenACS (Open Architecture Community System) is an advanced toolkit for building scalable, community-oriented web applications. If you're thinking of building an Index: openacs-4/packages/acs-core-docs/www/openacs-unpack.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-unpack.html,v diff -u -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/openacs-unpack.html 11 Jun 2004 10:17:38 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/openacs-unpack.html 22 Jun 2004 12:54:00 -0000 1.19 @@ -1,4 +1,4 @@ -Unpack the OpenACS tarball

                    Unpack the OpenACS tarball

                    The OpenACS tarball contains sample configuration files +Unpack the OpenACS tarball

                    Unpack the OpenACS tarball

                    The OpenACS tarball contains sample configuration files for some of the packages listed below. In order to access those files, unpack the tarball now.

                    [root root]# cd /tmp
                     [root tmp]# tar xzf openacs-5.2.0d1.tgz
                    Index: openacs-4/packages/acs-core-docs/www/openacs.html
                    ===================================================================
                    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v
                    diff -u -N -r1.36 -r1.37
                    --- openacs-4/packages/acs-core-docs/www/openacs.html	11 Jun 2004 10:17:38 -0000	1.36
                    +++ openacs-4/packages/acs-core-docs/www/openacs.html	22 Jun 2004 12:54:00 -0000	1.37
                    @@ -1,4 +1,4 @@
                    -Install OpenACS 5.2.0d1

                    Install OpenACS 5.2.0d1

                    by Vinod Kurup

                    +Install OpenACS 5.2.0d1

                    Install OpenACS 5.2.0d1

                    by Vinod Kurup

                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                    Set up the file system for one or more OpenACS Sites

                    For Linux Standard Base compliance and ease of backup, @@ -220,7 +220,7 @@ CREATE DATABASE [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ su - $OPENACS_SERVICE_NAME -createdb -E UNICODE $OPENACS_SERVICE_NAME

                  • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

                    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e

                    Add these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type man 5 crontab for more information.

                    0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
                    +createdb -E UNICODE $OPENACS_SERVICE_NAME
                  • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

                    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e

                    Add these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type man 5 crontab for more information.

                    0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
                     0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze $OPENACS_SERVICE_NAME

                    Depending on your distribution, you may receive email when the crontab items are executed. If you don't want to receive email for those crontab items, @@ -233,7 +233,7 @@ need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl. - Open it in an editor to adjust the parameters.

                    [root root]# su - $OPENACS_SERVICE_NAME
                    +	   Open it in an editor to adjust the parameters.

                    [root root]# su - $OPENACS_SERVICE_NAME
                     [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
                     [$OPENACS_SERVICE_NAME etc]$ emacs config.tcl
                     

                    @@ -357,7 +357,7 @@ production site, you should set up automatic nightly backups.

                  • If you want traffic reports, set up analog or another log processing program.

                  • Follow the instruction on the home page to change the appearance of your service or add more - packages. (more information)

                  • Proceed to the tutorial to learn how to develop your own packages.

                  • Set up database environment variables for the site + packages. (more information)

                  • Proceed to the tutorial to learn how to develop your own packages.

                  • Set up database environment variables for the site user. Depending on how you installed Oracle or PostGreSQL, these settings may be necessary for working with the database while logged in as the service user. They do not directly affect the service's run-time connection with the Index: openacs-4/packages/acs-core-docs/www/oracle.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/oracle.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/oracle.html 22 Jun 2004 12:54:03 -0000 1.37 @@ -1,4 +1,4 @@ -Install Oracle 8.1.7

                    Install Oracle 8.1.7

                    By Vinod Kurup

                    +Install Oracle 8.1.7

                    Install Oracle 8.1.7

                    By Vinod Kurup

                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                    Index: openacs-4/packages/acs-core-docs/www/os-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/os-install.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/os-install.html 11 Jun 2004 10:17:38 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/os-install.html 22 Jun 2004 12:54:03 -0000 1.8 @@ -1,4 +1,4 @@ -Linux Install Guides

                    Linux Install Guides

                    +Linux Install Guides

                    Linux Install Guides

                    Here's a list of some helpful documentation for various OS's

                    • Painless Debian Index: openacs-4/packages/acs-core-docs/www/os-security.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/os-security.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/os-security.html 11 Jun 2004 10:17:38 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/os-security.html 22 Jun 2004 12:54:03 -0000 1.8 @@ -1,4 +1,4 @@ -Security Information

                      Security Information

                      +Security Information

                      Security Information

                      Once you get your OS installed, it's imperative that you secure your installation. As Jon Griffin repeatedly warns us, "No distribution is secure out of the box." The Reference Platform implements Index: openacs-4/packages/acs-core-docs/www/packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/packages.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/packages.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/packages.html 22 Jun 2004 12:54:03 -0000 1.37 @@ -1,4 +1,4 @@ -OpenACS Packages

                      OpenACS Packages

                      By Pete Su and Bryan Quinn

                      +OpenACS Packages

                      OpenACS Packages

                      By Pete Su and Bryan Quinn

                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                      Overview

                      Index: openacs-4/packages/acs-core-docs/www/parties.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/parties.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/parties.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/parties.html 22 Jun 2004 12:54:03 -0000 1.37 @@ -1,4 +1,4 @@ -Parties in OpenACS

                      Parties in OpenACS

                      By Rafael H. Schloming

                      +Parties in OpenACS

                      Parties in OpenACS

                      By Rafael H. Schloming

                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                      Introduction

                      While many applications must deal with individuals and many applications Index: openacs-4/packages/acs-core-docs/www/permissions-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/permissions-design.html 11 Jun 2004 10:17:38 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/permissions-design.html 22 Jun 2004 12:54:04 -0000 1.24 @@ -1,4 +1,4 @@ -Permissions Design

                      Permissions Design

                      By John Prevost and Rafael H. Schloming

                      +Permissions Design

                      Permissions Design

                      By John Prevost and Rafael H. Schloming

                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                      Essentials

                      • Tcl in packages/acs-kernel

                      • OpenACS 4 Permissions Requirements

                      • Index: openacs-4/packages/acs-core-docs/www/permissions-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-requirements.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/permissions-requirements.html 11 Jun 2004 10:17:38 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/permissions-requirements.html 22 Jun 2004 12:54:05 -0000 1.24 @@ -1,4 +1,4 @@ -Permissions Requirements

                        Permissions Requirements

                        By John McClary Prevost

                        +Permissions Requirements

                        Permissions Requirements

                        By John McClary Prevost

                        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                        Introduction

                        This document records requirements for the OpenACS 4 Permissions system, a Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 11 Jun 2004 10:17:38 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 22 Jun 2004 12:54:05 -0000 1.31 @@ -1,4 +1,4 @@ -OpenACS Permissions Tediously Explained

                        OpenACS Permissions Tediously Explained

                        +OpenACS Permissions Tediously Explained

                        OpenACS Permissions Tediously Explained

                        by Vadim Nasardinov. Modified and converted to Docbook XML by Roberto Mello

                        The code has been modified since this document was written so it is now out of date. See this forum thread.

                        Overview

                        The general permissions system has a relatively complex data model in OpenACS. @@ -100,7 +100,7 @@

                        Context Hierarchy

                        Suppose objects A, B, ..., and F form the following hierarchy. -

                        Table�11.1.�Context Hierarchy Example

                        A

                        +

                        Table�11.1.�Context Hierarchy Example

                        A

                        object_id=10

                        B

                        object_id=20 @@ -116,7 +116,7 @@ This can be represented in the acs_objects table by the following entries: -

                        Table�11.2.�acs_objects example data

                        object_idcontext_id
                        2010
                        3010
                        4020
                        5020
                        6030

                        +

                        Table�11.2.�acs_objects example data

                        object_idcontext_id
                        2010
                        3010
                        4020
                        5020
                        6030

                        The first entry tells us that object 20 is the descendant of object 10, and the third entry shows that object 40 is the descendant of object 20. By running a CONNECT BY query, Index: openacs-4/packages/acs-core-docs/www/permissions.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/permissions.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/permissions.html 22 Jun 2004 12:54:07 -0000 1.37 @@ -1,4 +1,4 @@ -Groups, Context, Permissions

                        Groups, Context, Permissions

                        By Pete Su

                        +Groups, Context, Permissions

                        Groups, Context, Permissions

                        By Pete Su

                        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                        Overview

                        Index: openacs-4/packages/acs-core-docs/www/postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v diff -u -N -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/postgres.html 11 Jun 2004 10:17:38 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/postgres.html 22 Jun 2004 12:54:07 -0000 1.36 @@ -1,4 +1,4 @@ -Install PostgreSQL

                        Install PostgreSQL

                        by Vinod Kurup

                        +Install PostgreSQL

                        Install PostgreSQL

                        by Vinod Kurup

                        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                        Skip this section if you will run only Oracle.

                        OpenACS 5.2.0d1 will run with PostgreSQL 7.3.2, 7.3.3, and 7.3.4. 7.3.4 is the recommended version of PostgreSQL. PostgreSQL 7.4 has been verified.

                        • Special notes for Mac OS X.�If you are running Mac OS X prior to 10.3, you should be able to install and use PostGreSQL 7.3.x. Mac OS X 10.3 requires PostGreSQL 7.4.

                        • Special Notes for Debian.�

                          Debian users, especially Debian stable users, should @@ -100,7 +100,7 @@ Change to the postgres user and run ./configure to set the compilation options automatically. This is the point at which you can configure PostgreSQL in various ways. For example, if you want to enable - Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help. + Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help.

                          On debian woody (stable, 3.0), do ./configure --without-readline --without-zlib.

                          [root src]# su - postgres
                           [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4
                           [postgres postgresql-7.3.4]$ ./configure --with-includes=/sw/include/ --with-libraries=/sw/lib --enable-locale --enable-multibyte \
                          Index: openacs-4/packages/acs-core-docs/www/profile-code.html
                          ===================================================================
                          RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/profile-code.html,v
                          diff -u -N -r1.3 -r1.4
                          --- openacs-4/packages/acs-core-docs/www/profile-code.html	11 Jun 2004 10:17:38 -0000	1.3
                          +++ openacs-4/packages/acs-core-docs/www/profile-code.html	22 Jun 2004 12:54:08 -0000	1.4
                          @@ -1,4 +1,4 @@
                          -Profile your code

                          Profile your code

                          There are several facilities for profiling your code in +Profile your code

                          Profile your code

                          There are several facilities for profiling your code in OpenACS. The first thing to do is to install the developer-support package and play around with it. But there is also support in the API for profiling your code: Index: openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 22 Jun 2004 12:54:08 -0000 1.37 @@ -1,4 +1,4 @@ -Programming with AOLserver

                          Programming with AOLserver

                          By Michael Yoon, Jon Salz and Lars Pind.

                          +Programming with AOLserver

                          Programming with AOLserver

                          By Michael Yoon, Jon Salz and Lars Pind.

                          OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                          The global command

                          Index: openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html,v diff -u -N -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 11 Jun 2004 10:17:38 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 22 Jun 2004 12:54:08 -0000 1.28 @@ -1,4 +1,4 @@ -Add PSGML commands to emacs init file (OPTIONAL)

                          Add PSGML commands to emacs init file (OPTIONAL)

                          +Add PSGML commands to emacs init file (OPTIONAL)

                          Add PSGML commands to emacs init file (OPTIONAL)

                          If you plan to write or edit any documentation with emacs, install a customized emacs configuration file with DocBook commands in the skeleton directory, so it will be used for all new users. The file also Index: openacs-4/packages/acs-core-docs/www/psgml-mode.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-mode.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/psgml-mode.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/psgml-mode.html 22 Jun 2004 12:54:09 -0000 1.37 @@ -1,4 +1,4 @@ -Using PSGML mode in Emacs

                          Using PSGML mode in Emacs

                          By David Lutterkort

                          +Using PSGML mode in Emacs

                          Using PSGML mode in Emacs

                          By David Lutterkort

                          OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                          Note: nxml mode replaces and/or complements psgml mode. More information.

                          What it is

                          PSGML Mode is a mode for editing, umm, SGML and XML documents in emacs. It Index: openacs-4/packages/acs-core-docs/www/release-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.html,v diff -u -N -r1.40 -r1.41 --- openacs-4/packages/acs-core-docs/www/release-notes.html 11 Jun 2004 10:17:38 -0000 1.40 +++ openacs-4/packages/acs-core-docs/www/release-notes.html 22 Jun 2004 12:54:09 -0000 1.41 @@ -1,4 +1,4 @@ -OpenACS Release Notes

                          OpenACS Release Notes

                          Version 5.1.0

                          • Lots of little tweaks and fixes

                          • Complete Change list since 5.0.0 in Changelog

                          • Many Bug fixes

                          Version 5.0.4

                          • New translations, including for .LRN 2.0.2.

                          Version 5.0.1

                          • All work on the translation server from 7 Nov 2003 to 7 Feb 2004 is now included in catalogs.

                          • One new function in acs-tcl, util::age_pretty

                          • Complete Change list since 5.0.0 in Changelog

                          • Many documentation updates and doc bug fixes

                          Version 5.0.0

                          +OpenACS Release Notes

                          OpenACS Release Notes

                          Version 5.1.0

                          • Lots of little tweaks and fixes

                          • Complete Change list since 5.0.0 in Changelog

                          • Many Bug fixes

                          Version 5.0.4

                          • New translations, including for .LRN 2.0.2.

                          Version 5.0.1

                          • All work on the translation server from 7 Nov 2003 to 7 Feb 2004 is now included in catalogs.

                          • One new function in acs-tcl, util::age_pretty

                          • Complete Change list since 5.0.0 in Changelog

                          • Many documentation updates and doc bug fixes

                          Version 5.0.0

                          This is OpenACS 5.0.0. This version contains no known security, data loss, or crashing bugs, nor any bugs judged release blockers. This version has received manual testing. It has passed current automated testing, which is not comprehensive. This release contains work done on the translation server http://translate.openacs.org through 7 Nov 2003.

                          Please report bugs using our @@ -95,4 +95,4 @@

                        • Serving backup files and files from the CVS directories is turned off by default via the acs-kernel parameter ExcludedFiles in section request-processor (The variable provides a string match glob list of files and is defaulted to "*/CVS/* *~") -

                        ($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/releasing-openacs-core.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html 11 Jun 2004 10:17:38 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html 22 Jun 2004 12:54:10 -0000 1.8 @@ -1,4 +1,4 @@ -OpenACS Core and .LRN

                        OpenACS Core and .LRN

                        1. Update Translations.�the section called “How to Update the translations”

                        2. Update Version Numbers.�The version numbers in the documentation and in the packages must be updated. This should only happen after a release candidate is approved.

                          .LRN: this must be repeated for .LRN modules (dotlrn-core in the dotlrn cvs tree) and for any modified modules in the .LRN prerequisites (dotlrn-prereq in openacs cvs tree). My current working model is that I bulk-update .LRN and OpenACS core but that I don't touch dotlrn-prereq modules - I just use the most recent release and it's up to individual package developers to tag and release those packages when they change. This model is already broken because following it means that dotlrn-prereqs don't get new translations.
                          1. Update /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/variables.ent with the new version number. +OpenACS Core and .LRN

                            OpenACS Core and .LRN

                            1. Update Translations.�the section called “How to Update the translations”

                            2. Update Version Numbers.�The version numbers in the documentation and in the packages must be updated. This should only happen after a release candidate is approved.

                              .LRN: this must be repeated for .LRN modules (dotlrn-core in the dotlrn cvs tree) and for any modified modules in the .LRN prerequisites (dotlrn-prereq in openacs cvs tree). My current working model is that I bulk-update .LRN and OpenACS core but that I don't touch dotlrn-prereq modules - I just use the most recent release and it's up to individual package developers to tag and release those packages when they change. This model is already broken because following it means that dotlrn-prereqs don't get new translations.
                              1. Update /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/variables.ent with the new version number.

                              2. Add new section in /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml

                              3. Regenerate all HTML docs

                                cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml
                                 make
                              4. Update /var/lib/aolserver/$OPENACS_SERVICE_NAME/readme.txt with the new version number

                              5. Update version number in all of the core packages. Here's a bash/perl script which works but could be made easier to use. Run it from /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages:

                                #!/bin/sh
                                Index: openacs-4/packages/acs-core-docs/www/releasing-openacs.html
                                ===================================================================
                                RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs.html,v
                                diff -u -N -r1.18 -r1.19
                                --- openacs-4/packages/acs-core-docs/www/releasing-openacs.html	11 Jun 2004 10:17:38 -0000	1.18
                                +++ openacs-4/packages/acs-core-docs/www/releasing-openacs.html	22 Jun 2004 12:54:10 -0000	1.19
                                @@ -1 +1 @@
                                -Chapter�16.�Releasing OpenACS
                                View comments on this page at openacs.org
                                +Chapter�16.�Releasing OpenACS
                                View comments on this page at openacs.org
                                Index: openacs-4/packages/acs-core-docs/www/releasing-package.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-package.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/releasing-package.html 11 Jun 2004 10:17:38 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/releasing-package.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -How to package and release an OpenACS Package

                                How to package and release an OpenACS Package

                                In this example, we are packaging and releasing myfirstpackage as version 1.0.0, which is compatible with OpenACS 5.0.x.

                                1. Update the version number of your package in the APM.

                                2. Make sure all changes are committed.

                                3. Tag the updated work.:

                                  cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage
                                  +How to package and release an OpenACS Package

                                  How to package and release an OpenACS Package

                                  In this example, we are packaging and releasing myfirstpackage as version 1.0.0, which is compatible with OpenACS 5.0.x.

                                  1. Update the version number of your package in the APM.

                                  2. Make sure all changes are committed.

                                  3. Tag the updated work.:

                                    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage
                                     cvs tag myfirstpackages-1-0-0-final
                                     cvs tag -F openacs-5-0-compat
                                     

                                  Done. The package will be added to the repository automatically. If the correct version does not show up within 24 hours, ask for help on the OpenACS.org development forum.

                                  View comments on this page at openacs.org
                                  Index: openacs-4/packages/acs-core-docs/www/remote-postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/remote-postgres.html,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/remote-postgres.html 11 Jun 2004 10:17:38 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/remote-postgres.html 22 Jun 2004 12:54:10 -0000 1.4 @@ -1,4 +1,4 @@ -Running a PostgreSQL database on another server

                                  Running a PostgreSQL database on another server

                                  To run a database on a different machine than the +Running a PostgreSQL database on another server

                                  Running a PostgreSQL database on another server

                                  To run a database on a different machine than the webserver requires changes to the database configuration file and access control file, and to the OpenACS service's configuration file.

                                  • Edit the database configuration file, which in a Index: openacs-4/packages/acs-core-docs/www/request-processor.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/request-processor.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/request-processor.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/request-processor.html 22 Jun 2004 12:54:10 -0000 1.37 @@ -1,4 +1,4 @@ -The Request Processor

                                    The Request Processor

                                    By Pete Su

                                    +The Request Processor

                                    The Request Processor

                                    By Pete Su

                                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                    Overview

                                    Index: openacs-4/packages/acs-core-docs/www/requirements-template.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/requirements-template.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/requirements-template.html 11 Jun 2004 10:17:38 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/requirements-template.html 22 Jun 2004 12:54:10 -0000 1.37 @@ -1,4 +1,4 @@ -System/Application Requirements Template

                                    System/Application Requirements Template

                                    By You

                                    +System/Application Requirements Template

                                    System/Application Requirements Template

                                    By You

                                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                    Introduction

                                    Index: openacs-4/packages/acs-core-docs/www/rp-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.html,v diff -u -N -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/rp-design.html 11 Jun 2004 10:17:38 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/rp-design.html 22 Jun 2004 12:54:10 -0000 1.27 @@ -1,4 +1,4 @@ -Request Processor Design

                                    Request Processor Design

                                    By Rafael H. Schloming

                                    +Request Processor Design

                                    Request Processor Design

                                    By Rafael H. Schloming

                                    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                    Essentials

                                    • OpenACS 4 Request Processor Requirements

                                    • Index: openacs-4/packages/acs-core-docs/www/rp-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.html,v diff -u -N -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/rp-requirements.html 11 Jun 2004 10:17:38 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.html 22 Jun 2004 12:54:10 -0000 1.23 @@ -1,4 +1,4 @@ -Request Processor Requirements

                                      Request Processor Requirements

                                      By Rafael H. Schloming

                                      +Request Processor Requirements

                                      Request Processor Requirements

                                      By Rafael H. Schloming

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Introduction

                                      The following is a requirements document for the OpenACS 4.0 request Index: openacs-4/packages/acs-core-docs/www/security-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.html,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/security-design.html 11 Jun 2004 10:17:39 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/security-design.html 22 Jun 2004 12:54:10 -0000 1.25 @@ -1,4 +1,4 @@ -Security Design

                                      Security Design

                                      By Richard Li and Archit Shah

                                      +Security Design

                                      Security Design

                                      By Richard Li and Archit Shah

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Introduction

                                      Index: openacs-4/packages/acs-core-docs/www/security-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/security-notes.html 11 Jun 2004 10:17:39 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/security-notes.html 22 Jun 2004 12:54:10 -0000 1.37 @@ -1,4 +1,4 @@ -Security Notes

                                      Security Notes

                                      By Richard Li

                                      +Security Notes

                                      Security Notes

                                      By Richard Li

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Index: openacs-4/packages/acs-core-docs/www/security-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-requirements.html,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/security-requirements.html 11 Jun 2004 10:17:39 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/security-requirements.html 22 Jun 2004 12:54:10 -0000 1.25 @@ -1,4 +1,4 @@ -Security Requirements

                                      Security Requirements

                                      By Richard Li

                                      +Security Requirements

                                      Security Requirements

                                      By Richard Li

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Introduction

                                      Index: openacs-4/packages/acs-core-docs/www/snapshot-backup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/snapshot-backup.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/snapshot-backup.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/snapshot-backup.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -Manual backup and recovery

                                      Manual backup and recovery

                                      This section describes how to make a one-time backup and +Manual backup and recovery

                                      Manual backup and recovery

                                      This section describes how to make a one-time backup and restore of the files and database. This is useful for rolling back to known-good versions of a service, such as at initial installation and just before an upgrade. First, you back up the Index: openacs-4/packages/acs-core-docs/www/style-guide.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/style-guide.html,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/style-guide.html 11 Jun 2004 10:17:39 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/style-guide.html 22 Jun 2004 12:54:10 -0000 1.16 @@ -1,4 +1,4 @@ -OpenACS Style Guide

                                      OpenACS Style Guide

                                      +OpenACS Style Guide

                                      OpenACS Style Guide

                                      By Jeff Davis

                                      Motivation

                                      Why have coding standards for OpenACS? And if the code works why change it to Index: openacs-4/packages/acs-core-docs/www/subsites-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-design.html,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/subsites-design.html 11 Jun 2004 10:17:39 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/subsites-design.html 22 Jun 2004 12:54:10 -0000 1.25 @@ -1,4 +1,4 @@ -Subsites Design Document

                                      Subsites Design Document

                                      By Rafael H. Schloming

                                      +Subsites Design Document

                                      Subsites Design Document

                                      By Rafael H. Schloming

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      *Note* This document has not gone through the any of the Index: openacs-4/packages/acs-core-docs/www/subsites-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-requirements.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/subsites-requirements.html 11 Jun 2004 10:17:39 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html 22 Jun 2004 12:54:10 -0000 1.24 @@ -1,4 +1,4 @@ -Subsites Requirements

                                      Subsites Requirements

                                      By Rafael H. Schloming and Dennis Gregorovic

                                      +Subsites Requirements

                                      Subsites Requirements

                                      By Rafael H. Schloming and Dennis Gregorovic

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Introduction

                                      The following is a requirements document for OpenACS 4 Subsites, part of the Index: openacs-4/packages/acs-core-docs/www/subsites.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/subsites.html 11 Jun 2004 10:17:39 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/subsites.html 22 Jun 2004 12:54:10 -0000 1.37 @@ -1,4 +1,4 @@ -Writing OpenACS Application Pages

                                      Writing OpenACS Application Pages

                                      By Rafael H. Schloming and Pete Su

                                      +Writing OpenACS Application Pages

                                      Writing OpenACS Application Pages

                                      By Rafael H. Schloming and Pete Su

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Overview

                                      Index: openacs-4/packages/acs-core-docs/www/tcl-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tcl-doc.html,v diff -u -N -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/tcl-doc.html 11 Jun 2004 10:17:39 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/tcl-doc.html 22 Jun 2004 12:54:10 -0000 1.38 @@ -1,4 +1,4 @@ -Documenting Tcl Files: Page Contracts and Libraries

                                      Documenting Tcl Files: Page Contracts and Libraries

                                      By Jon Salz on 3 July 2000

                                      +Documenting Tcl Files: Page Contracts and Libraries

                                      Documenting Tcl Files: Page Contracts and Libraries

                                      By Jon Salz on 3 July 2000

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
                                      • Tcl procedures: /packages/acs-kernel/tcl-documentation-procs.tcl

                                      The Big Picture

                                      In versions of the OpenACS prior to 3.4, the standard Index: openacs-4/packages/acs-core-docs/www/templates.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/templates.html,v diff -u -N -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/templates.html 11 Jun 2004 10:17:39 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/templates.html 22 Jun 2004 12:54:10 -0000 1.37 @@ -1,4 +1,4 @@ -Using Templates in OpenACS

                                      Using Templates in OpenACS

                                      By Pete Su

                                      +Using Templates in OpenACS

                                      Using Templates in OpenACS

                                      By Pete Su

                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                      Overview

                                      Index: openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -Admin Pages

                                      Admin Pages

                                      +Admin Pages

                                      Admin Pages

                                      There are at least two flavors of admin user interface:

                                      • Admins use same pages as all other users, except that they are offered admin links and buttons where appropriate. Index: openacs-4/packages/acs-core-docs/www/tutorial-advanced.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-advanced.html,v diff -u -N -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 11 Jun 2004 10:17:39 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 22 Jun 2004 12:54:10 -0000 1.23 @@ -1,4 +1,4 @@ -Chapter�10.�Advanced Topics

                                        Chapter�10.�Advanced Topics

                                        by Joel Aufrecht

                                        +Chapter�10.�Advanced Topics

                                        Chapter�10.�Advanced Topics

                                        by Joel Aufrecht

                                        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                        This tutorial covers topics which are not essential to Index: openacs-4/packages/acs-core-docs/www/tutorial-categories.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-categories.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/tutorial-categories.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-categories.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -Categories

                                        Categories

                                        You can associate any ACS Object with one or more categories. +Categories

                                        Categories

                                        You can associate any ACS Object with one or more categories. In this tutorial we'll show how to equip your application with user interface to take advantage of the Categories service.

                                        Index: openacs-4/packages/acs-core-docs/www/tutorial-comments.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-comments.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/tutorial-comments.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-comments.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -Adding Comments

                                        Adding Comments

                                        You can track comments for any ACS Object. Here we'll track +Adding Comments

                                        Adding Comments

                                        You can track comments for any ACS Object. Here we'll track comments for notes. On the note-edit.tcl/adp pair, which is used to display individual notes, we want to put a link to add comments at the bottom of the screen. If there are any comments, we want to Index: openacs-4/packages/acs-core-docs/www/tutorial-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-cvs.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 11 Jun 2004 10:17:39 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 22 Jun 2004 12:54:10 -0000 1.13 @@ -1,4 +1,4 @@ -Add the new package to CVS

                                        Add the new package to CVS

                                        Before you do any more work, make sure that your work is +Add the new package to CVS

                                        Add the new package to CVS

                                        Before you do any more work, make sure that your work is protected by putting it all into cvs. The cvs add command is not recursive, so you'll have to traverse the directory tree manually and add as you go. (More on @@ -58,4 +58,4 @@ initial revision: 1.1 done (many lines omitted) -[$OPENACS_SERVICE_NAME myfirstpackage]$

                                  Figure�10.1.�Upgrading a local CVS repository

                                  Upgrading a local CVS repository
                                View comments on this page at openacs.org
                                +[$OPENACS_SERVICE_NAME myfirstpackage]$

                                Figure�10.1.�Upgrading a local CVS repository

                                Upgrading a local CVS repository
                              View comments on this page at openacs.org
                              Index: openacs-4/packages/acs-core-docs/www/tutorial-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 11 Jun 2004 10:17:39 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 22 Jun 2004 12:54:10 -0000 1.30 @@ -1,7 +1,7 @@ -Setting Up Database Objects

                              Setting Up Database Objects

                              by Joel Aufrecht

                              +Setting Up Database Objects

                              Setting Up Database Objects

                              by Joel Aufrecht

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                              Code the data model

                              We create all database objects with scripts in the +

                              Code the data model

                              We create all database objects with scripts in the myfirstpackage/sql/ directory. All database scripts are database-specific and are thus in either the myfirstpackage/sql/oracle or @@ -31,13 +31,13 @@ repository functions to simplify our database creation. (More information about ACS Objects. More information about the Content Repository.) -

                              Figure�9.2.�Tutorial Data Model

                              Tutorial Data Model

                              The top of each sql file has some +

                              Figure�9.2.�Tutorial Data Model

                              Tutorial Data Model

                              The top of each sql file has some standard comments, including doc tags such as @author which will be picked up by the API browser. The string $Id$ will automatically be expanded when the file is checked in to cvs.

                              [$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/sql/postgresql
                              -[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-create.sql

                              Paste the text below into the file, save, and close.

                              Figure�9.3.�The Database Creation Script

                              -- creation script
                              +[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-create.sql

                              Paste the text below into the file, save, and close.

                              Figure�9.3.�The Database Creation Script

                              -- creation script
                               --
                               -- @author joel@aufrecht.org
                               -- @cvs-id &Id:$
                              @@ -61,7 +61,7 @@
                                   object.  Notice the use of "mfp."  This is derived from "My
                                   First Package" and ensures that our object is unlikely to conflict
                                   with objects from other packages.

                              Create a database file to drop everything if the package is uninstalled.

                              -[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-drop.sql

                              Figure�9.4.�Database Deletion Script

                              -- drop script
                              +[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-drop.sql

                              Figure�9.4.�Database Deletion Script

                              -- drop script
                               --
                               -- @author joel@aufrecht.org
                               -- @cvs-id &Id:$
                              Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.html
                              ===================================================================
                              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.html,v
                              diff -u -N -r1.29 -r1.30
                              --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	11 Jun 2004 10:17:39 -0000	1.29
                              +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	22 Jun 2004 12:54:10 -0000	1.30
                              @@ -1,7 +1,7 @@
                              -Debugging and Automated Testing

                              Debugging and Automated Testing

                              by Joel Aufrecht

                              +Debugging and Automated Testing

                              Debugging and Automated Testing

                              by Joel Aufrecht

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                              Debugging

                              Developer Support.�The Developer Support package adds several goodies: debug +

                              Debugging

                              Developer Support.�The Developer Support package adds several goodies: debug information for every page; the ability to log comments to the page instead of the error log, and fast user switching so that you can test pages as anonymous and as dummy users without logging @@ -22,16 +22,16 @@ ?�searches�backward�
                              /�searches�forward.�
                              ����������

                              -

                              Manual testing

                              Make a list of basic tests to make sure it works

                              Test NumActionExpected Result
                              001Browse to the index page while not logged in and +

                              Manual testing

                              Make a list of basic tests to make sure it works

                              Test NumActionExpected Result
                              001Browse to the index page while not logged in and while one or more notes exist.No edit or delete or add links should appear.
                              002Browse to the index page while logged in. An Edit link should appear. Click on it. Fill out the form and click Submit.The text added in the form should be visible on the index page.
                              API-001Invoke mfp::note::create with a specific word as the title.Proc should return an object id.
                              API-002Given an object id from API-001, invoke mfp::note::get.Proc should return the specific word in the title.
                              API-003Given the object id from API-001, invoke mfp::note::delete.Proc should return 0 for success.

                              Other things to test: try to delete someone else's note. Try to delete your own note. Edit your own note. - Search for a note.

                              Write automated tests

                              by Simon Carstensen and Joel Aufrecht

                              + Search for a note.

                              Write automated tests

                              by Simon Carstensen and Joel Aufrecht

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                              +

                              It seems to me that a lot of people have been asking for some guidelines on how to write automated tests. I've done several tests by now and have found the process to be extremely easy and useful. It's a joy to work with automated testing once you get the hang of it.

                              Create the directory that will contain the test script and edit the script file. The directory location and file name are standards which are recognized by the automated testing package:

                              [$OPENACS_SERVICE_NAME www]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
                               [$OPENACS_SERVICE_NAME www]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
                              @@ -67,7 +67,7 @@
                               goes inside -test_code {}.  We want to implement test case API-001, "Given an object id from API-001, invoke mfp::note::get.  Proc should return the specific word in the title."

                                     set name [ad_generate_random_string]
                                     set new_id [mfp::note::add -title $name]
                              -      aa_true "Note add succeeded" [exists_and_not_null new_id]

                              To test our simple case, we must load the test file into the system (just as with the /tcl file in the basic tutorial, since the file didn't exist when the system started, the system doesn't know about it.) To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage". Since we'll be changing it frequently, select "watch this file" on the next page. This will cause the system to check this file every time any page is requested, which is bad for production systems but convenient for developing. We can also add some aa_register_case flags to make it easier to run the test. The -procs flag, which indicates which procs are tested by this test case, makes it easier to find procs in your package that aren't tested at all. The -cats flag, setting categories, makes it easier to control which tests to run. The smoke test setting means that this is a basic test case that can and should be run any time you are doing any test. (a definition of "smoke test")

                              Once the file is loaded, go to ACS Automated Testing and click on myfirstpackage. You should see your test case. Run it and examine the results.

                              TCLWebtest tests

                              API testing can only test part of our package - it doesn't test the code in our adp/tcl pairs. For this, we can use TCLwebtest. TCLwebtest must be installed for this test to work. This provides a library of functions that make it easy to call a page through HTTP, examine the results, and drive forms. TCLwebtest's functions overlap slightly with acs-automated-testing; see the example provided for one approach on integrating them.

                              Example

                              Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

                              ad_library {
                              +      aa_true "Note add succeeded" [exists_and_not_null new_id]

                              To test our simple case, we must load the test file into the system (just as with the /tcl file in the basic tutorial, since the file didn't exist when the system started, the system doesn't know about it.) To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage". Since we'll be changing it frequently, select "watch this file" on the next page. This will cause the system to check this file every time any page is requested, which is bad for production systems but convenient for developing. We can also add some aa_register_case flags to make it easier to run the test. The -procs flag, which indicates which procs are tested by this test case, makes it easier to find procs in your package that aren't tested at all. The -cats flag, setting categories, makes it easier to control which tests to run. The smoke test setting means that this is a basic test case that can and should be run any time you are doing any test. (a definition of "smoke test")

                              Once the file is loaded, go to ACS Automated Testing and click on myfirstpackage. You should see your test case. Run it and examine the results.

                              TCLWebtest tests

                              API testing can only test part of our package - it doesn't test the code in our adp/tcl pairs. For this, we can use TCLwebtest. TCLwebtest must be installed for this test to work. This provides a library of functions that make it easy to call a page through HTTP, examine the results, and drive forms. TCLwebtest's functions overlap slightly with acs-automated-testing; see the example provided for one approach on integrating them.

                              Example

                              Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

                              ad_library {
                                   Test cases for my first package.
                               }
                               
                              Index: openacs-4/packages/acs-core-docs/www/tutorial-distribute.html
                              ===================================================================
                              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-distribute.html,v
                              diff -u -N -r1.12 -r1.13
                              --- openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	11 Jun 2004 10:17:39 -0000	1.12
                              +++ openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	22 Jun 2004 12:54:10 -0000	1.13
                              @@ -1,10 +1,10 @@
                              -Prepare the package for distribution.

                              Prepare the package for distribution.

                              Browse to the package manager. Click on +Prepare the package for distribution.

                              Prepare the package for distribution.

                              Browse to the package manager. Click on tutorialapp.

                              Click on Generate a distribution file for this package from the filesystem.

                              Click on the file size (37.1KB) after the label Distribution File: and save the file to - /tmp.

                              + /tmp.

                              View comments on this page at openacs.org
                              Index: openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html 11 Jun 2004 10:17:39 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html 22 Jun 2004 12:54:10 -0000 1.6 @@ -1,4 +1,4 @@ -Future Topics

                              Future Topics

                              • How to enforce security so that users can't +Future Topics

                                Future Topics

                                • How to enforce security so that users can't change other users records

                                • How to use the content management tables so that ... what?

                                • How to change the default stylesheets for Form Builder HTML forms.

                                • How to make your package searchable with OpenFTS/Oracle

                                • How to prepare pagelets for inclusion in other pages

                                • How and when to put procedures in a tcl procedure library

                                • More on ad_form - data validation, other stuff. Index: openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 11 Jun 2004 10:17:39 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 22 Jun 2004 12:54:10 -0000 1.31 @@ -1,7 +1,7 @@ -Creating an Application Package

                                  Creating an Application Package

                                  by Joel Aufrecht

                                  +Creating an Application Package

                                  Creating an Application Package

                                  by Joel Aufrecht

                                  OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                                  The intended page map

                                  Overview

                                  To start developing new code in OpenACS, we build a new package. A package +

                                  The intended page map

                                  Overview

                                  To start developing new code in OpenACS, we build a new package. A package is a a discrete collection of web pages, tcl code, and database tables and procedures. A package with user interface is called an application; a package which provides functions to other packages and has no direct interface, a @@ -17,11 +17,11 @@ right now. Code that is temporary hackage is clearly marked.

                                  In this tutorial, we will make an application package for displaying a list of text notes. -

                                  Before you begin

                                  You will need:

                                  • A computer with a working installation of +

                                  Before you begin

                                  You will need:

                                  • A computer with a working installation of OpenACS. If you don't have this, see Chapter�2, Installation Overview.

                                  • Example files, which are included in the standard OpenACS 5.2.0d1 distribution. -

                                  Figure�9.1.�Assumptions in this section

                                  Fully qualified domain name of your serveryourserver.test
                                  URL of your serverhttp://yourserver.test:8000
                                  Name of development account$OPENACS_SERVICE_NAME
                                  New Package keymyfirstpackage

                                  Use the APM to initialize a new package

                                  We use the ACS Package Manager (APM) to add, remove, and +

                                Figure�9.1.�Assumptions in this section

                                Fully qualified domain name of your serveryourserver.test
                                URL of your serverhttp://yourserver.test:8000
                                Name of development account$OPENACS_SERVICE_NAME
                                New Package keymyfirstpackage

                                Use the APM to initialize a new package

                                We use the ACS Package Manager (APM) to add, remove, and upgrade packages. It handles package meta-data, such as lists of files that belong in the package. Each package is uniquely identified by a package key. To start developing a new @@ -53,7 +53,7 @@

                              This creates a package rooted at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage. This is the "home directory" of our new package, and all - files in the package will be within this directory.

                              Add an Application Instance to the Server

                              In order to see your work in progress, you must create a + files in the package will be within this directory.

                              Add an Application Instance to the Server

                              In order to see your work in progress, you must create a map between the URL space of incoming requests and the package application instance. You do this by adding the application in the main site administration). This creates a link between the incoming URL requests and an @@ -64,7 +64,7 @@ in this tutorial.

                              1. Browse to http://yourserver.test:8000/admin/applications/application-add/.

                              2. Choose "My First Package" from the list and click OK (the other fields are optional).

                              By mounting the package, we've caused all requests to http://yourserver.test:8000/my-first-package - to be satisfied from the files at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www.

                              Quick start

                              The remainder of the tutorial walks you through each file one at a time as you create the package. You can skip all this, and get a working package, by doing the following:

                              cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial
                              +      to be satisfied from the files at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www.

                              Quick start

                              The remainder of the tutorial walks you through each file one at a time as you create the package. You can skip all this, and get a working package, by doing the following:

                              cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial
                               psql $OPENACS_SERVICE_NAME -f myfirstpackage-create.sql
                               cp note-edit.* note-delete.tcl index.* ../../../../myfirstpackage/www/
                               mkdir ../../../../myfirstpackage/lib
                              Index: openacs-4/packages/acs-core-docs/www/tutorial-notifications.html
                              ===================================================================
                              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-notifications.html,v
                              diff -u -N -r1.6 -r1.7
                              --- openacs-4/packages/acs-core-docs/www/tutorial-notifications.html	11 Jun 2004 10:17:39 -0000	1.6
                              +++ openacs-4/packages/acs-core-docs/www/tutorial-notifications.html	22 Jun 2004 12:54:10 -0000	1.7
                              @@ -1,4 +1,4 @@
                              -Notifications

                              Notifications

                              by David Bell and Simon Carstensen

                              +Notifications

                              Notifications

                              by David Bell and Simon Carstensen

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                              The notifications package allows you to send notifications through any Index: openacs-4/packages/acs-core-docs/www/tutorial-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-pages.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 11 Jun 2004 10:17:39 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 22 Jun 2004 12:54:10 -0000 1.30 @@ -1,8 +1,8 @@ -Creating Web Pages

                              Creating Web Pages

                              by Joel Aufrecht

                              +Creating Web Pages

                              Creating Web Pages

                              by Joel Aufrecht

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

                              Install some API

                              As a workaround for missing content-repository functionality, copy a provided file into the directory for tcl files:

                              -    cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/note-procs.tcl /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/

                              To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage".

                              Page Map

                              Our package will have two visible pages. The first shows a list of all objects; the second shows a single object in view or edit mode, and can also be used to add an object. The index page will display the list, but since we might reuse the list later, we'll put it in a seperate file and include it on the index page.

                              Figure�9.5.�Page Map

                              Page Map

                              Build the "Index" page

                              Each user-visible page in your package has, typically, +

                              Install some API

                              As a workaround for missing content-repository functionality, copy a provided file into the directory for tcl files:

                              +    cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/note-procs.tcl /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/

                              To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage".

                              Page Map

                              Our package will have two visible pages. The first shows a list of all objects; the second shows a single object in view or edit mode, and can also be used to add an object. The index page will display the list, but since we might reuse the list later, we'll put it in a seperate file and include it on the index page.

                              Figure�9.5.�Page Map

                              Page Map

                              Build the "Index" page

                              Each user-visible page in your package has, typically, three parts. The tcl file holds the procedural logic for the page, including TCL and database-independent SQL code, and does things like Index: openacs-4/packages/acs-core-docs/www/tutorial-specs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-specs.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/tutorial-specs.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-specs.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1,4 +1,4 @@ -Write the Requirements and Design Specs

                              Write the Requirements and Design Specs

                              Before you get started you should make yourself familiar with +Write the Requirements and Design Specs

                              Write the Requirements and Design Specs

                              Before you get started you should make yourself familiar with the tags that are used to write your documentation. For tips on editing SGML files in emacs, see OpenACS Documentation Guide.

                              It's time to document. For the tutorial we'll use pre-written documentation. When creating a package Index: openacs-4/packages/acs-core-docs/www/tutorial-vuh.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-vuh.html,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-vuh.html 11 Jun 2004 10:17:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-vuh.html 22 Jun 2004 12:54:10 -0000 1.7 @@ -1,4 +1,4 @@ -Using .vuh files for pretty urls

                              Using .vuh files for pretty urls

                              .Vuh files are special cases of .tcl files, used for rewriting incoming urls. We can use a vuh file to prettify the uri for our notes. Instead of note-edit?item_id=495, we can use note/495. To do this, we will need a new .vuh file for redirection and we will need to change the referring links in note-list. First, add the vuh:

                              [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www
                              +Using .vuh files for pretty urls

                              Using .vuh files for pretty urls

                              .Vuh files are special cases of .tcl files, used for rewriting incoming urls. We can use a vuh file to prettify the uri for our notes. Instead of note-edit?item_id=495, we can use note/495. To do this, we will need a new .vuh file for redirection and we will need to change the referring links in note-list. First, add the vuh:

                              [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www
                               [$OPENACS_SERVICE_NAME www]$ emacs note.vuh
                               

                              Paste this into the file:

                              # Transform requests of type: a/b
                               # into this internal request: A?c=b
                              Index: openacs-4/packages/acs-core-docs/www/tutorial.html
                              ===================================================================
                              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial.html,v
                              diff -u -N -r1.14 -r1.15
                              --- openacs-4/packages/acs-core-docs/www/tutorial.html	11 Jun 2004 10:17:39 -0000	1.14
                              +++ openacs-4/packages/acs-core-docs/www/tutorial.html	22 Jun 2004 12:54:10 -0000	1.15
                              @@ -1 +1 @@
                              -Chapter�9.�Development Tutorial
                              View comments on this page at openacs.org
                              +Chapter�9.�Development Tutorial
                              View comments on this page at openacs.org
                              Index: openacs-4/packages/acs-core-docs/www/unix-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/unix-installation.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/unix-installation.html 11 Jun 2004 10:17:39 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/unix-installation.html 22 Jun 2004 12:54:10 -0000 1.22 @@ -1,4 +1,4 @@ -Install a Unix-like system and supporting software

                              Install a Unix-like system and supporting software

                              by Joel Aufrecht

                              +Install a Unix-like system and supporting software

                              Install a Unix-like system and supporting software

                              by Joel Aufrecht

                              OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                              a Unix-like system

                              You will need a computer running a unix-like system with the following software installed:

                              • tdom

                              • tcl

                              • gmake and the compile and build environment.

                                BSD Note

                                BSD users: in most places in these instructions, gmake will work better than make. (more Index: openacs-4/packages/acs-core-docs/www/update-repository.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-repository.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/update-repository.html 11 Jun 2004 10:17:39 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/update-repository.html 22 Jun 2004 12:54:10 -0000 1.8 @@ -1,4 +1,4 @@ -How to Update the OpenACS.org repository

                                How to Update the OpenACS.org repository

                                1. +How to Update the OpenACS.org repository

                                  How to Update the OpenACS.org repository

                                  1. Setup a local OpenACS server running 5.0 or better.

                                  2. Edit packages/acs-admin/www/apm/build-repository.tcl and adjust the Configuration Settings.

                                  3. Index: openacs-4/packages/acs-core-docs/www/update-translations.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-translations.html,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/update-translations.html 11 Jun 2004 10:17:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/update-translations.html 22 Jun 2004 12:54:10 -0000 1.7 @@ -1,4 +1,4 @@ -How to Update the translations

                                    How to Update the translations

                                    1. +How to Update the translations

                                      How to Update the translations

                                      1. Update the translation server. (Approach 1: upgrade to the last release; approach 2: upgrade to head or to an alpha or beta release.) Use CVS up.

                                        This approach puts the translation server at risk. An alternate approach would be to create a whole new checkout on the appropriate branch (such as oacs-5-0), point that at the live production database, import keys (which is safe because keys on the translation server take precedence), then export keys back, and then commit. This gets the keys committed to the right branch without changing the code running on the production site. Updating the production site can then be a seperate exercise.
                                      2. Go to ACS Lang admin page and click "Import All Messages"

                                      3. Resolve conflicts, if any, on the provided page.

                                      4. Back on the admin page, click the export link. If there are conflicts, the messages will be exported anyway and any errors will be shown in the web interface.

                                      5. From the packages dir, run the acs-lang/bin/check-catalog.sh script. (This checks for keys no longer in use and some other things. Until it is rolled into the UI, do it manually and check the results and take whatever steps you can intuit you should do.) Index: openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 11 Jun 2004 10:17:39 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 22 Jun 2004 12:54:10 -0000 1.14 @@ -1,4 +1,4 @@ -Upgrading 4.5 or higher to 4.6.3

                                        Upgrading 4.5 or higher to 4.6.3

                                        The required platform for OpenACS 4.6 is the same as +Upgrading 4.5 or higher to 4.6.3

                                        Upgrading 4.5 or higher to 4.6.3

                                        The required platform for OpenACS 4.6 is the same as 4.5, with the exception of OpenFTS. OpenACS 4.6 and later require OpenFTS 0.3.2 for full text search on PostGreSQL. If you have OpenFTS 0.2, you'll need to upgrade.

                                        If upgrading from 4.2, you need to manually run acs-kernel/sql/postgres/upgrade-4.2-4.5.sql. See Bug #632

                                        1. Make a Backup.�Back up the database and file system (see the section called “Manual backup and recovery”).

                                        2. OPTIONAL: Upgrade OpenFTS.�the section called “Upgrading OpenFTS from 0.2 to 0.3.2”

                                        3. Stop the server

                                          [root root]# svc -d /service/$OPENACS_SERVICE_NAME
                                        4. Upgrade the file system.�the section called “Upgrading the OpenACS files”

                                        5. Index: openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html 11 Jun 2004 10:17:39 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html 22 Jun 2004 12:54:10 -0000 1.4 @@ -1,4 +1,4 @@ -Upgrading OpenACS 4.6.3 to 5.0

                                          Upgrading OpenACS 4.6.3 to 5.0

                                          • Oracle.�Not yet documented. It should be possible to upgrade via the APM just as when upgrading to 4.6.3.

                                          • PostGreSQL.�You must use PostGreSQL 7.3.x or newer to upgrade OpenACS beyond 4.6.3. See Upgrade PostGreSQL to 7.3; Table�2.2, “Version Compatibility Matrix” +Upgrading OpenACS 4.6.3 to 5.0

                                            Upgrading OpenACS 4.6.3 to 5.0

                                            • Oracle.�Not yet documented. It should be possible to upgrade via the APM just as when upgrading to 4.6.3.

                                            • PostGreSQL.�You must use PostGreSQL 7.3.x or newer to upgrade OpenACS beyond 4.6.3. See Upgrade PostGreSQL to 7.3; Table�2.2, “Version Compatibility Matrix”

                                              1. Back up the database and file system.

                                              2. Upgrade the file system for packages/acs-kernel.�the section called “Upgrading the OpenACS files”

                                              3. Upgrade the kernel manually. (There is a script to do most of the rest: /contrib/misc/upgrade_4.6_to_5.0.sh on HEAD). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)

                                                [root root]# su - $OPENACS_SERVICE_NAME
                                                 [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-kernel/sql/postgresql/upgrade

                                                Manually execute each of the upgrade scripts in sequence, either from within psql or from the command line with commands such as psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME. Run the scripts in this order (order is tentative, not verified): Index: openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.html 22 Jun 2004 12:54:10 -0000 1.5 @@ -1 +1 @@ -Upgrading 5.0.0 to 5.0.x

                                                Upgrading 5.0.0 to 5.0.x

                                                • Upgrading a stock site.�If you have no custom code, and your site is not in a CVS repository, upgrade with these steps:

                                                  1. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"

                                                  2. Select all of the packages you want to upgrade and proceed

                                                  3. After upgrade is complete, restart the server as indicated.

                                                  4. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                                                • Upgrading a Custom or CVS site.�If you have custom code, and your site is in a CVS repository, upgrade with these steps:

                                                  1. Upgrade the file system for all packages in use.�the section called “Upgrading the OpenACS files”

                                                  2. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local file system"

                                                  3. Select all of the packages you want to upgrade and proceed

                                                  4. After upgrade is complete, restart the server as indicated.

                                                  5. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                                                View comments on this page at openacs.org
                                                +Upgrading 5.0.0 to 5.0.x

                                                Upgrading 5.0.0 to 5.0.x

                                                • Upgrading a stock site.�If you have no custom code, and your site is not in a CVS repository, upgrade with these steps:

                                                  1. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"

                                                  2. Select all of the packages you want to upgrade and proceed

                                                  3. After upgrade is complete, restart the server as indicated.

                                                  4. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                                                • Upgrading a Custom or CVS site.�If you have custom code, and your site is in a CVS repository, upgrade with these steps:

                                                  1. Upgrade the file system for all packages in use.�the section called “Upgrading the OpenACS files”

                                                  2. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local file system"

                                                  3. Select all of the packages you want to upgrade and proceed

                                                  4. After upgrade is complete, restart the server as indicated.

                                                  5. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                                                View comments on this page at openacs.org
                                                Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 11 Jun 2004 10:17:39 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 22 Jun 2004 12:54:10 -0000 1.14 @@ -1,4 +1,4 @@ -Upgrading the OpenACS files

                                                Upgrading the OpenACS files

                                                OpenACS is distributed as a collection of files, available as one big tarball, via CVS, and via automatic download from within the APM. Upgrades work by first changing the file system (via any of the previous methods), and then using the APM to scan the file system, find upgrade scripts, and execute them. This section describes how to upgrade the file system. Starting with OpenACS 5.0, this section can generally be skipped because the OpenACS APM can directly download new files from the openacs.org repository.

                                                Many OpenACS site developers operate their own CVS repository to keep track of changes from the release OpenACS code. This part describes how to import the latest OpenACS version into your own repository. If you are using CVS, you will unpack the OpenACS 5.1 tarball into a working directory and then import that directory into cvs. If you have changed files in the core packages, cvs will attempt to merge your changes. You may have to manually merge some conflicts. When that's finished, you can update your normal development checkout directory and the new files will appear. If you aren't using CVS, you can unpack the tarball on top of your existing tree, but any customizations you've made to the kernel or core packages will be erased.

                                                • Upgrading files for a site which is not in a CVS repository.�Unpack the tarball into a new directory and copy its contents on top of your working directory.

                                                  [root root]# su - $OPENACS_SERVICE_NAME
                                                  +Upgrading the OpenACS files

                                                  Upgrading the OpenACS files

                                                  OpenACS is distributed as a collection of files, available as one big tarball, via CVS, and via automatic download from within the APM. Upgrades work by first changing the file system (via any of the previous methods), and then using the APM to scan the file system, find upgrade scripts, and execute them. This section describes how to upgrade the file system. Starting with OpenACS 5.0, this section can generally be skipped because the OpenACS APM can directly download new files from the openacs.org repository.

                                                  Many OpenACS site developers operate their own CVS repository to keep track of changes from the release OpenACS code. This part describes how to import the latest OpenACS version into your own repository. If you are using CVS, you will unpack the OpenACS 5.1 tarball into a working directory and then import that directory into cvs. If you have changed files in the core packages, cvs will attempt to merge your changes. You may have to manually merge some conflicts. When that's finished, you can update your normal development checkout directory and the new files will appear. If you aren't using CVS, you can unpack the tarball on top of your existing tree, but any customizations you've made to the kernel or core packages will be erased.

                                                  • Upgrading files for a site which is not in a CVS repository.�Unpack the tarball into a new directory and copy its contents on top of your working directory.

                                                    [root root]# su - $OPENACS_SERVICE_NAME
                                                     [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver
                                                     [$OPENACS_SERVICE_NAME web]$ tar xzf /tmp/openacs-5-1.tar.gz
                                                     [$OPENACS_SERVICE_NAME web]$ cp -r openacs-5-1/* openacs-4
                                                    @@ -10,7 +10,7 @@
                                                     cp -r openacs-5-1/* openacs-4
                                                     exit
                                                  • Upgrading files for a site in a private CVS repository -

                                                    Figure�5.2.�Upgrading a local CVS repository

                                                    Upgrading a local CVS repository
                                                    • Step 1: Import new CVS code.�There are two common ways to get new OpenACS code into your local CVS repository - via tarball or with a working CVS checkout of OpenACS. Both methods work well for starting your local repository; the second method is better for incremental additions or upgrades.

                                                      • (a): via tarball.�Download a current tarball and unpack the new files into a working directory.

                                                        [root root]# su - $OPENACS_SERVICE_NAME
                                                        +        

                                                        Figure�5.2.�Upgrading a local CVS repository

                                                        Upgrading a local CVS repository
                                                        • Step 1: Import new CVS code.�There are two common ways to get new OpenACS code into your local CVS repository - via tarball or with a working CVS checkout of OpenACS. Both methods work well for starting your local repository; the second method is better for incremental additions or upgrades.

                                                          • (a): via tarball.�Download a current tarball and unpack the new files into a working directory.

                                                            [root root]# su - $OPENACS_SERVICE_NAME
                                                             [$OPENACS_SERVICE_NAME aolserver]$ cd /tmp
                                                             [$OPENACS_SERVICE_NAME tmp]$ tar xzf openacs-5-1.tar.gz
                                                             [$OPENACS_SERVICE_NAME tmp]$ cd openacs-5-1
                                                          • (b): via cvs working checkout.�Create a CVS checkout from OpenACS. The first time you do this, you will need to create the checkout directory. We use one dedicated directory for each branch of OpenACS - if you are using OpenACS 5.0,x, you only need an OpenACS 5.0 branch. The openacs-5-1-compat tag identifies the latest released version of OpenACS 5.1 (ie, 5.1.3 or 5.1.4) and the latest compatible version of each package, including .LRN. Each minor release of OpenACS since 5.0 has this tagging structure. For example, OpenACS 5.1.x has openacs-5-1-compat. @@ -44,7 +44,7 @@

                                                            1. [$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME
                                                               [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs up -Pd
                                                               (CVS feedback)
                                                              -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

                                                            Upgrading a Production Site Safely

                                                            If you are upgrading a production OpenACS site which is on a private CVS tree, this process lets you do the upgrade without risking extended downtime or an unusable site:

                                                            1. Declare a freeze on new cvs updates - ie, you cannot run cvs update +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

                                              Upgrading a Production Site Safely

                                              If you are upgrading a production OpenACS site which is on a private CVS tree, this process lets you do the upgrade without risking extended downtime or an unusable site:

                                              1. Declare a freeze on new cvs updates - ie, you cannot run cvs update on the production site

                                              2. Make a manual backup of the production site in addition to the automated backups

                                              3. Import the new code (for example, OpenACS 5.0.4, openacs-5-0-compat versions of Index: openacs-4/packages/acs-core-docs/www/upgrade-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-overview.html,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 11 Jun 2004 10:17:39 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 22 Jun 2004 12:54:10 -0000 1.14 @@ -1,6 +1,6 @@ -Overview

                                                Overview

                                                Starting with Version 4.5, all OpenACS core packages support +Overview

                                                Overview

                                                Starting with Version 4.5, all OpenACS core packages support automatic upgrade. That means that, if you have OpenACS 4.5 or better, you should always be able to upgrade all of your core packages automatically. If you haven't changed anything, no manual intervention should be required. If you are running - OpenACS prior to 4.5, upgrading will require manual effort.

                                                If all of these conditions are true:

                                                • Your OpenACS Core is 5.0.0 or later

                                                • You do not keep your OpenACS site in a local CVS repository

                                                • You do not have any custom code

                                                then you can upgrade automatically using the automated installer in the OpenACS Package Manager (APM), and you can probably skip the rest of this chapter. To upgrade directly from the OpenACS repository using the APM:

                                                1. Browse to the Installer.

                                                2. Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.

                                                3. The APM will download the requested packages from OpenACS.org, install the files on your hard drive, run any appropriate database upgrade scripts, and prompt you to restart the server. After restarting the server again, the upgrade is complete.

                                                Figure�5.1.�Upgrading with the APM

                                                Upgrading with the APM

                                                It's always a good idea to precede an upgrade attempt with a snapshot backup.

                                                Table�5.1.�Assumptions in this section

                                                name of OpenACS user$OPENACS_SERVICE_NAME
                                                OpenACS server name$OPENACS_SERVICE_NAME
                                                Root of OpenACS file tree/var/lib/aolserver/$OPENACS_SERVICE_NAME
                                                Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup
                                                View comments on this page at openacs.org
                                                + OpenACS prior to 4.5, upgrading will require manual effort.

                                                If all of these conditions are true:

                                                • Your OpenACS Core is 5.0.0 or later

                                                • You do not keep your OpenACS site in a local CVS repository

                                                • You do not have any custom code

                                                then you can upgrade automatically using the automated installer in the OpenACS Package Manager (APM), and you can probably skip the rest of this chapter. To upgrade directly from the OpenACS repository using the APM:

                                                1. Browse to the Installer.

                                                2. Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.

                                                3. The APM will download the requested packages from OpenACS.org, install the files on your hard drive, run any appropriate database upgrade scripts, and prompt you to restart the server. After restarting the server again, the upgrade is complete.

                                                Figure�5.1.�Upgrading with the APM

                                                Upgrading with the APM

                                                It's always a good idea to precede an upgrade attempt with a snapshot backup.

                                                Table�5.1.�Assumptions in this section

                                                name of OpenACS user$OPENACS_SERVICE_NAME
                                                OpenACS server name$OPENACS_SERVICE_NAME
                                                Root of OpenACS file tree/var/lib/aolserver/$OPENACS_SERVICE_NAME
                                                Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup
                                                View comments on this page at openacs.org
                                                Index: openacs-4/packages/acs-core-docs/www/upgrade-supporting.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-supporting.html,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 11 Jun 2004 10:17:39 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 22 Jun 2004 12:54:10 -0000 1.10 @@ -1,4 +1,4 @@ -Upgrading Platform components

                                                Upgrading Platform components

                                                Upgrading OpenFTS from 0.2 to 0.3.2

                                                OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. This section describes how to upgrade OpenFTS from 0.2 to 0.3.2 and upgrade the search engine on an OpenACS site at the same time.

                                                1. Uninstall the old OpenFTS Engine from the $OPENACS_SERVICE_NAME database.

                                                  1. Browse to http://yourserver/openfts. +Upgrading Platform components

                                                    Upgrading Platform components

                                                    Upgrading OpenFTS from 0.2 to 0.3.2

                                                    OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. This section describes how to upgrade OpenFTS from 0.2 to 0.3.2 and upgrade the search engine on an OpenACS site at the same time.

                                                    1. Uninstall the old OpenFTS Engine from the $OPENACS_SERVICE_NAME database.

                                                      1. Browse to http://yourserver/openfts.

                                                      2. Click Administration.

                                                      3. Click Drop OpenFTS Engine

                                                    2. Build and install the new OpenFTS driver and supporting tcl procedures. (This section of shell code is not fully documented; please exercise care.)

                                                      cd /usr/local/src/
                                                                 tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
                                                                 chown -R root.root Search-OpenFTS-tcl-0.3.2/
                                                      Index: openacs-4/packages/acs-core-docs/www/upgrade.html
                                                      ===================================================================
                                                      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade.html,v
                                                      diff -u -N -r1.17 -r1.18
                                                      --- openacs-4/packages/acs-core-docs/www/upgrade.html	11 Jun 2004 10:17:39 -0000	1.17
                                                      +++ openacs-4/packages/acs-core-docs/www/upgrade.html	22 Jun 2004 12:54:10 -0000	1.18
                                                      @@ -1,4 +1,4 @@
                                                      -Chapter�5.�Upgrading

                                                      Chapter�5.�Upgrading

                                                      by Joel Aufrecht

                                                      +Chapter�5.�Upgrading

                                                      Chapter�5.�Upgrading

                                                      by Joel Aufrecht

                                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
                                                      View comments on this page at openacs.org
                                                      Index: openacs-4/packages/acs-core-docs/www/uptime.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/uptime.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/uptime.html 11 Jun 2004 10:17:39 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/uptime.html 22 Jun 2004 12:54:11 -0000 1.5 @@ -1 +1 @@ -External uptime validation

                                                      External uptime validation

                                                      The OpenACS uptime site can monitor your site and send you an email whenever your site fails to respond. If you test the url http://yourserver.test/SYSTEM/dbtest.tcl, you should get back the string success.

                                                      View comments on this page at openacs.org
                                                      +External uptime validation

                                                      External uptime validation

                                                      The OpenACS uptime site can monitor your site and send you an email whenever your site fails to respond. If you test the url http://yourserver.test/SYSTEM/dbtest.tcl, you should get back the string success.

                                                      View comments on this page at openacs.org
                                                      Index: openacs-4/packages/acs-core-docs/www/variables.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/variables.html,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/variables.html 11 Jun 2004 10:17:39 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/variables.html 22 Jun 2004 12:54:11 -0000 1.16 @@ -1,9 +1,9 @@ -Variables

                                                      Variables

                                                      By joel@aufrecht.org

                                                      +Variables

                                                      Variables

                                                      By joel@aufrecht.org

                                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                                      Date and Time Variables

                                                      Starting with OpenACS 5.0 and the introduction of acs-lang, we recommend retrieving date/time information from the database in - ANSI format and then using lc_time_fmt to format it for display.

                                                      Example�12.1.�Getting datetime from the database ANSI-style

                                                      db_multirow -extend { mydate_pretty } {
                                                      +    ANSI format and then using lc_time_fmt to format it for display.

                                                      Example�12.1.�Getting datetime from the database ANSI-style

                                                      db_multirow -extend { mydate_pretty } {
                                                           select to_char(mydate, 'YYYY-MM-DD HH24:MI:SS') as mydate_ansi,
                                                                 ...
                                                           ...
                                                      Index: openacs-4/packages/acs-core-docs/www/win2k-installation.html
                                                      ===================================================================
                                                      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/win2k-installation.html,v
                                                      diff -u -N -r1.36 -r1.37
                                                      --- openacs-4/packages/acs-core-docs/www/win2k-installation.html	11 Jun 2004 10:17:39 -0000	1.36
                                                      +++ openacs-4/packages/acs-core-docs/www/win2k-installation.html	22 Jun 2004 12:54:11 -0000	1.37
                                                      @@ -1,4 +1,4 @@
                                                      -OpenACS Installation Guide for Windows2000

                                                      OpenACS Installation Guide for Windows2000

                                                      by Matthew Burke and Curtis Galloway

                                                      +OpenACS Installation Guide for Windows2000

                                                      OpenACS Installation Guide for Windows2000

                                                      by Matthew Burke and Curtis Galloway

                                                      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

                                                      NOTE: These instructions were Index: openacs-4/packages/acs-core-docs/www/xml/engineering-standards/eng-standards-versioning.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/engineering-standards/eng-standards-versioning.xml,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/xml/engineering-standards/eng-standards-versioning.xml 4 Feb 2004 16:47:35 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/xml/engineering-standards/eng-standards-versioning.xml 22 Jun 2004 12:54:18 -0000 1.7 @@ -1,5 +1,5 @@ - %myvars; @@ -124,8 +124,42 @@ 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 -($Id$) + + + + + Naming Database Upgrade Scripts + 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$)