Index: openacs-4/packages/acs-core-docs/www/acs-admin.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v diff -u -r1.19.2.7 -r1.19.2.8 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 21 Jan 2004 18:36:15 -0000 1.19.2.7 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 2 Feb 2004 18:10:40 -0000 1.19.2.8 @@ -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 3.3oacs1
Install AOLserver 4
Install OpenACS 5.0.0
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a New Service
5. Upgrading
Overview
Upgrading OpenACS
Upgrading the OpenACS files
Upgrading Platform components
6. Maintenance
Hosting Web Sites
Database Management
Backup and Recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
C. 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
1. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 3.3oacs1
Install AOLserver 4
Install OpenACS
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
1. Configuring a new OpenACS Site
How Do I?
2. Upgrading
Overview
Upgrading OpenACS
Upgrading the OpenACS files
Upgrading Platform components
1. Maintenance
Operating an OpenACS Web Site
Database Management
Backup and Recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
A. 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 -r1.9.2.6 -r1.9.2.7 --- openacs-4/packages/acs-core-docs/www/acs-package-dev.html 21 Jan 2004 18:36:15 -0000 1.9.2.6 +++ openacs-4/packages/acs-core-docs/www/acs-package-dev.html 2 Feb 2004 18:10:40 -0000 1.9.2.7 @@ -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 -r1.10.2.4 -r1.10.2.5 --- openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 11 Jan 2004 12:45:45 -0000 1.10.2.4 +++ openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 2 Feb 2004 18:10:41 -0000 1.10.2.5 @@ -1 +1 @@ -Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

11. 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
Internationalization
Security Requirements
Security Design
Security Notes
Request Processor Requirements
Request Processor Design
Documenting Tcl Files: Page Contracts and Libraries
Bootstrapping OpenACS
External Authentication Requirements
View comments on this page at openacs.org
+Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

11. 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
Internationalization
Security Requirements
Security Design
Security Notes
Request Processor Requirements
Request Processor Design
Documenting Tcl Files: Page Contracts and Libraries
Bootstrapping OpenACS
External Authentication Requirements
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 -r1.5.2.5 -r1.5.2.6 --- openacs-4/packages/acs-core-docs/www/analog-install.html 11 Jan 2004 12:45:45 -0000 1.5.2.5 +++ openacs-4/packages/acs-core-docs/www/analog-install.html 2 Feb 2004 18:10:41 -0000 1.5.2.6 @@ -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
@@ -12,9 +12,9 @@
 [root analog-5.32]# cd ..
 [root src]# mv analog-5.32 /usr/share/
 [root src]#
-
cd /usr/local/src
+cd /usr/local/src
 tar xzf /tmp/analog-5.32.tar.gz
 cd analog-5.32
 make
 cd ..
-mv analog-5.32 /usr/share/

See also the section called “Set up Log Analysis Reports - OPTIONAL”

View comments on this page at openacs.org
+mv analog-5.32 /usr/share/

See also the section called “Set up Log Analysis Reports - OPTIONAL”

View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v diff -u -r1.23.2.10 -r1.23.2.11 --- openacs-4/packages/acs-core-docs/www/aolserver.html 21 Jan 2004 18:36:15 -0000 1.23.2.10 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 2 Feb 2004 18:10:41 -0000 1.23.2.11 @@ -1,7 +1,7 @@ -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. -

  1. Unpack the Aolserver tarball.�Download the aolserver tarball and unpack it.

    [root root]# cd /usr/local/src
    +        
  1. Unpack the Aolserver tarball.�Download the aolserver tarball and unpack it.

    [root root]# cd /usr/local/src
     [root src]# wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
     --15:38:08--  http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
                => `aolserver3.3oacs1.tar.gz'
    @@ -15,16 +15,16 @@
     15:39:05 (66.56 KB/s) - `aolserver3.3oacs1.tar.gz' saved [3858074/3858074]
     [root src]# tar xzf aolserver3.3oacs1.tar.gz
     [root src]#
    -
    cd /usr/local/src
    +cd /usr/local/src
     wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    -tar xzf aolserver3.3oacs1.tar.gz

    This section also relies on some OpenACS files, which you can get with the section called “Unpack the OpenACS tarball”.

  2. Compile AOLserver.�Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.

    root@yourserver root]# mkdir -p /usr/local/aolserver
    +tar xzf aolserver3.3oacs1.tar.gz

    This section also relies on some OpenACS files, which you can get with the section called “Unpack the OpenACS tarball”.

  3. Compile AOLserver.�Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.

    root@yourserver root]# mkdir -p /usr/local/aolserver
     [root root]# cd /usr/local/src/aolserver
     [root aolserver]# ./conf-clean
     cat: BUILD-MODULES: No such file or directory
     Done.
    -[root aolserver]#
    mkdir -p /usr/local/aolserver
    +[root aolserver]#mkdir -p /usr/local/aolserver
     cd /usr/local/src/aolserver
    -./conf-clean

    +./conf-clean

    If you are using Oracle, edit conf-db and change postgresql to @@ -74,18 +74,18 @@ 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/openacs-5.0.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
      +[root bin]# cp /tmp//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/openacs-5.0.0/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/openacs-5.0.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      +cd /usr/local/aolserver/bin
      +cp /tmp//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]# chmod 755 nsd-postgres
       [root bin]#
      -
      cd /usr/local/aolserver/bin
      -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      -chmod 755 nsd-postgres
  4. Install tDOM.�Download the tDOM +cd /usr/local/aolserver/bin +cp /tmp//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
     [root src]# wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
    @@ -103,10 +103,10 @@
     [root src]# tar xzf tDOM-0.7.8.tar.gz
     [root src]# cd tDOM-0.7.8/unix
     [root unix]#
    -
    cd /usr/local/src
    +cd /usr/local/src
     wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
     tar xzf tDOM-0.7.8.tar.gz
    -cd tDOM-0.7.8/unix

    Edit the file CONFIG and change this section:

    # ----------------------------------------------------
    +cd tDOM-0.7.8/unix 

    Edit the file CONFIG and change this section:

    # ----------------------------------------------------
     # aolsrc="/usr/src/aolserver-3.4"
     # ../configure --enable-threads --disable-tdomalloc \
     #   --with-aolserver=$aolsrc \
    @@ -131,11 +131,11 @@
     [root bin]# ln -s libtdom0.7.8.so libtdom.so
     [root bin]#
     
    -
    sh CONFIG
    +sh CONFIG
     make
     cp libtdom0.7.8.so /usr/local/aolserver/bin/
     cd /usr/local/aolserver/bin
    -ln -s libtdom0.7.8.so libtdom.so
  • Install nsopenssl +ln -s libtdom0.7.8.so libtdom.so

  • Install nsopenssl (OPTIONAL)

  • Install Full Text Search with OpenFTS (OPTIONAL)

  • Install nspam (OPTIONAL)

  • Test AOLserver.�In order to test AOLserver, we'll run it using the sample-config.tcl file provided in the AOLserver distribution, under the nobody user and web @@ -157,11 +157,11 @@ -rw-r--r-- 1 root root 7320 Mar 31 2001 sample-config.tcl drwxrwsr-x 3 root web 4096 Mar 8 10:31 servers [root aolserver]# -

    
    +
     cd /usr/local/aolserver
     chown -R root.web log servers
     chmod -R g+w log servers
    -ls -l

    Now, we'll run a quick test to ensure AOLserver is running +ls -l

    Now, we'll run a quick test to ensure AOLserver is running correctly. We'll use the sample config file provided with AOLserver. This file will attempt to guess your IP address and hostname. It will then start up the server at port 8000 of that 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 -r1.1.2.8 -r1.1.2.9 --- openacs-4/packages/acs-core-docs/www/aolserver4.html 1 Feb 2004 16:02:03 -0000 1.1.2.8 +++ openacs-4/packages/acs-core-docs/www/aolserver4.html 2 Feb 2004 18:10:41 -0000 1.1.2.9 @@ -1,4 +1,4 @@ -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

      [root root]# cd /usr/local/src
      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 -r1.21.2.6 -r1.21.2.7
      --- openacs-4/packages/acs-core-docs/www/apm-design.html	11 Jan 2004 12:45:45 -0000	1.21.2.6
      +++ openacs-4/packages/acs-core-docs/www/apm-design.html	2 Feb 2004 18:10:41 -0000	1.21.2.7
      @@ -1,7 +1,7 @@
      -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

        Essentials

        • OpenACS Administrator directory

        • Package Manager Requirements

        • Packages

        • ER diagram

        • Tcl API

          • apm-procs.tcl

          • apm-install-procs.tcl (Supports installation of packages)

          • 20-apm-load-procs.tcl (Bootstraps APM for server startup)

          • Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v diff -u -r1.16.2.4 -r1.16.2.5 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 11 Jan 2004 12:45:45 -0000 1.16.2.4 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 2 Feb 2004 18:10:41 -0000 1.16.2.5 @@ -1,7 +1,7 @@ -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 +

            Introduction

            The following is a requirements document for the OpenACS Package Manager (APM), version 4.0 (APM4). APM4 offers a superset of APM v3.3 functionality with the following specific enhancements:

            • A public procedural API. (v 3.3 only has web-based UI)

            • Support for dependency checking.

            • Support for compound packages (to support installation chaining).

            • Support for on-line parameter setting.

            • Support for sub-site level configuration (requires revised ad_parameter and /admin pages at sub-site level; deprecation of site-wide parameter 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 -r1.1.2.10 -r1.1.2.11 --- openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 21 Jan 2004 18:36:16 -0000 1.1.2.10 +++ openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 2 Feb 2004 18:10:41 -0000 1.1.2.11 @@ -1,7 +1,7 @@ -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.� +

              Best practices in writing OpenACS automated tests

              • Special characters in Tcl.� Try strings starting with a -Bad and strings containing [BAD], {, \077, and $Bad. For user input, [BAD] should never be evaluated, \077 should not be turned into a ? and $Bad should not be interpolated. The string -Bad [BAD] \077 { $Bad should be valid user input, should pass through the system unaltered, and if it isn't that's a bug.

              • Quoting issues.�Put some html in plain text fields and make sure the result is properly quoted anywhere it shows up (I use "<b>bold</b>" 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 -r1.15.2.11 -r1.15.2.12 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 21 Jan 2004 18:36:16 -0000 1.15.2.11 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 2 Feb 2004 18:10:41 -0000 1.15.2.12 @@ -1,8 +1,8 @@ -Backup and Recovery

                Backup and Recovery

                By Don Baccus with additions - by Joel Aufrecht


                +Backup and Recovery

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

                We will cover some basic backup and recovery strategies. These are intended to +

                We will cover some basic backup and recovery strategies. These are intended to be robust but simple enough to set up. For a large scale production site you would 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). @@ -112,10 +112,10 @@ -rw-rw-r-x 1 service0 service0 4005995 Feb 21 18:28 /var/lib/aolserver/service0/database-backup/before_upgrade_to_4.6.dmp [service0 service0]$ exit [root root]# -

                su - service0
                +su - service0
                 pg_dump -f /var/lib/aolserver/service0/database-backup/before_upgrade_to_4.6.dmp openacs-dev
                 ls -al /var/lib/aolserver/service0/database-backup/before_upgrade_to_4.6.dmp
                -exit
  • Back up the file system.�Back up all of the files in the service, including the +exit

  • Back up the file system.�Back up all of the files in the service, including the database backup file but excluding the auto-generated supervise directory, which is unneccesary and has complicated permissions.

    In the tar command,

    • c create a @@ -155,7 +155,7 @@ [service0 aolserver]$ tar xzf /tmp/service0-backup.tar.gz [service0 aolserver]$ chmod -R 775 service0 [service0 aolserver]$ chown -R service0.web service0

    • Restore the database

      • Oracle.�

        1. Set up a clean Oracle database user and - tablespace with the same names as the ones exported from (more information).

        2. Invoke the import command

          imp service0/service0 FILE=/var/lib/aolserver/service0/database-backup/nighty_backup.dmp FULL=Y
      • Postgres.�If the database user does not already exist, create it.

        [root root]# su - postgres
        +                    tablespace with the same names as the ones exported from (more information).

      • Invoke the import command

        imp service0/service0 FILE=/var/lib/aolserver/service0/database-backup/nighty_backup.dmp FULL=Y
    • Postgres.�If the database user does not already exist, create it.

      [root root]# su - postgres
       [postgres ~]$ createuser service0
       Shall the new user be allowed to create databases? (y/n) y
       Shall the new user be allowed to create more new users? (y/n) y
      @@ -193,14 +193,14 @@
       (many lines omitted)
       [service0 service0]$ exit
       [root root]# 
      -
      su - service0
      +su - service0
       cd /var/lib/aolserver/service0
       cvs commit -m "last-minute commits before upgrade to 4.6"
       cvs tag before_upgrade_to_4_6
      -exit

      To restore files from a cvs tag such as the one used above:

      [root root]# su - service0
      +exit

      To restore files from a cvs tag such as the one used above:

      [root root]# su - service0
       [service0 service0]$ cd /var/lib/aolserver/service0
       [service0 service0]$ cvs up -r current
       [service0 service0]$ exit
      -
      su - service0
      +su - service0
       cd /var/lib/aolserver/service0
      -cvs up -r current
    ($Id$)
  • View comments on this page at openacs.org
    +cvs up -r current
    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 2 Feb 2004 18:10:42 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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 +

    • Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl

    This document describes the startup (bootstrapping) process for an AOLserver running OpenACS.

    The Big Picture

    Before OpenACS 3.3, the OpenACS startup process was extremely simple: after AOLserver Index: openacs-4/packages/acs-core-docs/www/complete-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/complete-install.html,v diff -u -r1.4.2.7 -r1.4.2.8 --- openacs-4/packages/acs-core-docs/www/complete-install.html 21 Jan 2004 18:36:16 -0000 1.4.2.7 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 2 Feb 2004 18:10:42 -0000 1.4.2.8 @@ -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/credits.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v diff -u -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/credits.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/credits.html 2 Feb 2004 18:10:42 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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 +

    Vinod Kurup put together the January 2002 version of this guide from many sources of information.

    Joel Aufrecht updated the document starting in March 2003.

    • Index: openacs-4/packages/acs-core-docs/www/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -r1.6.2.9 -r1.6.2.10 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 21 Jan 2004 18:36:16 -0000 1.6.2.9 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 2 Feb 2004 18:10:43 -0000 1.6.2.10 @@ -1,13 +1,13 @@ -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/service0
         [root root]# chown service0.web /cvsroot/service0
         [root root]#
        -
        mkdir /cvsroot/service0
        -chown service0.web /cvsroot/service0
      2. Add the repository location to the user environment.

        [root root]# su - service0
        +mkdir /cvsroot/service0
        +chown service0.web /cvsroot/service0
      3. Add the repository location to the user environment.

        [root root]# su - service0
         [service0 service0]$ emacs .bashrc

        Put this string into /home/service0/.bashrc:

        export CVSROOT=/cvsroot
        [service0 service0]$ exit
         logout
         
        @@ -20,11 +20,11 @@
                     plus this string,
                     i.e.
                     /cvsroot/service0.
        -            "OpenACS" is the vendor tag, and "openacs-5-0-0-final" is the
        +            "OpenACS" is the vendor tag, and "" is the
                     release tag.  These tags will be useful in upgrading and
                     branching.  -m sets the version comment.

        [root root]# su - service0
         [service0 service0]$ cd /web/service0
        -[service0 service0]$ cvs import -m "initial install" service0 OpenACS openacs-5-0-0-final
        +[service0 service0]$ cvs import -m "initial install" service0 OpenACS 
         N service0/license.txt
         N service0/readme.txt
         (many lines omitted)
        @@ -33,9 +33,9 @@
         No conflicts created by this import
         
         [service0 service0]$
        -
        su - service0
        +su - service0
         cd /web/service0
        -cvs import -m "initial install" service0 OpenACS openacs-5-0-0-final

        Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

        [service0 service0]$ cd ..
        +cvs import -m "initial install" service0 OpenACS 

        Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

        [service0 service0]$ cd ..
         [service0 web]$ mv service0 service0.orig
         [service0 web]$ cvs checkout service0
         cvs checkout: Updating service0
        @@ -47,7 +47,7 @@
         logout
         
         [root web]#
        -
        cd ..
        +cd ..
         mv service0 service0.orig
         cvs checkout service0
        -exit
      View comments on this page at openacs.org
      +exit
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/database-management.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/database-management.html,v diff -u -r1.14.2.10 -r1.14.2.11 --- openacs-4/packages/acs-core-docs/www/database-management.html 21 Jan 2004 18:36:16 -0000 1.14.2.10 +++ openacs-4/packages/acs-core-docs/www/database-management.html 2 Feb 2004 18:10:43 -0000 1.14.2.11 @@ -1,7 +1,7 @@ -Database Management

    Database Management

    By Joel Aufrecht


    +Database Management

    Database Management

    By Joel Aufrecht

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

    Running a PostgreSQL database on another server

    To run a database on a different machine than the +

    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 @@ -49,4 +49,4 @@ procedure described above, you don't need to do this extra step.

      Edit your crontab:

      [joeuser ~]$ crontab -e

      We'll set vacuum up to run nightly at 1 AM. Add the following line:

      -0 1 * * * /usr/local/pgsql/bin/vacuumdb service0
      ($Id$)
    View comments on this page at openacs.org
    +0 1 * * * /usr/local/pgsql/bin/vacuumdb service0
    ($Id$)
    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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 2 Feb 2004 18:10:43 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

    +

    • Tcl procedures: /packages/acs-kernel/10-database-procs.tcl

    • Tcl initialization: /packages/acs-kernel/database-init.tcl

    The Big Picture

    One of OpenACS's great strengths is that code written for it is very close to the database. It is very easy to interact with the database from anywhere within OpenACS. Our goal is to develop a coherent API for database access which Index: openacs-4/packages/acs-core-docs/www/db-api.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.html,v diff -u -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/db-api.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/db-api.html 2 Feb 2004 18:10:43 -0000 1.22.2.11 @@ -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 -r1.17.2.4 -r1.17.2.5 --- openacs-4/packages/acs-core-docs/www/dev-guide.html 11 Jan 2004 12:45:46 -0000 1.17.2.4 +++ openacs-4/packages/acs-core-docs/www/dev-guide.html 2 Feb 2004 18:10:43 -0000 1.17.2.5 @@ -1 +1 @@ -Chapter�8.�Development Reference

    View comments on this page at openacs.org
    +Chapter�8.�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 -r1.1.2.4 -r1.1.2.5 --- openacs-4/packages/acs-core-docs/www/doc-standards.html 11 Jan 2004 12:45:46 -0000 1.1.2.4 +++ openacs-4/packages/acs-core-docs/www/doc-standards.html 2 Feb 2004 18:10:44 -0000 1.1.2.5 @@ -1 +1 @@ -Chapter�10.�Documentation Standards
    View comments on this page at openacs.org
    +Chapter�10.�Documentation Standards
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v diff -u -r1.23.2.10 -r1.23.2.11 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 21 Jan 2004 18:36:16 -0000 1.23.2.10 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 2 Feb 2004 18:10:43 -0000 1.23.2.11 @@ -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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 2 Feb 2004 18:10:44 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

    +

    The Big Picture

    Constraint naming standard is important for one reason: The SYS_* name oracle assigns to unnamed constraints is not very understandable. By correctly naming all contraints, we can quickly associate a particular constraint Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v diff -u -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 2 Feb 2004 18:10:44 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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. -

    +

    To ensure consistency (and its collateral benefit, maintainability), we define and adhere to standards in the following areas:

    File Nomenclature

    Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html,v diff -u -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 2 Feb 2004 18:10:44 -0000 1.22.2.11 @@ -1,9 +1,9 @@ -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 by OpenACS documentation staff. -

    +

    Like any other part of the OpenACS, PL/SQL (or pl/pgsql) code must be maintainable and professional. This means that it must be consistent and therefore must abide by certain standards. The standards will ensure that Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v diff -u -r1.22.2.11 -r1.22.2.12 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 28 Jan 2004 14:41:57 -0000 1.22.2.11 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 2 Feb 2004 18:10:44 -0000 1.22.2.12 @@ -1,22 +1,22 @@ -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. -

    +

    OpenACS version numbers help identify at a high-level what is in a particular release and what has changed since the last release. A "version number" is really just a string of the form: -

    major.minor.dot(milestone)

    • A major number change indicates a fundamental change in the architecture of the system, e.g. OpenACS 3 to ACS 4. A major change is required if core backwards compatibility is broken, if upgrade is non-trivial, or if the platform changes substantially.

    • A minor change represents the addition of new functionality or changed UI.

    • A dot holds only bug fixes and security patches. Dot releases are always recommended and safe. +

      major.minor.dot[ milestone ]

      • A major number change indicates a fundamental change in the architecture of the system, e.g. OpenACS 3 to ACS 4. A major change is required if core backwards compatibility is broken, if upgrade is non-trivial, or if the platform changes substantially.

      • A minor change represents the addition of new functionality or changed UI.

      • A dot holds only bug fixes and security patches. Dot releases are always recommended and safe.

      • A milestone marker indicates the state of the release:

        • d, for development, means the release is in active development and is not in its intended released form.

        • a, for alpha, means new development is complete and code checkins are frozen. Alpha builds should work well enough to be testable.

        • b, for beta, means most severe bugs are fixed and end users can start trying the release.

        • Release Candidate builds (rc) are believed to meet all of the criteria for release and can be installed on test instances of production systems.

        • Final releases have no milestone marker. (Exception: In CVS, they are tagged with -final to differentiate them from branch tags.) -

        Milestone markers are numbered: d1, d2, ..., a1, b1, rc1, etc.

      -The complete sequence of milestones between OpenACS 4.6.3 and 5.0.0 was:

      openacs-5-0-0-final
      -openacs-5-0-0rc2
      -openacs-5-0-0rc1
      -openacs-5-0-0b4
      -openacs-5-0-0b1
      -openacs-5-0-0a4
      -openacs-5-0-0a3
      -openacs-5-0-0a1
      -oacs-4-6-3-final

      +

    Milestone markers are numbered: d1, d2, ..., a1, b1, rc1, etc.

    A complete sequence of milestones between two releases:

    5.0.0
    +5.0.0rc2
    +5.0.0rc1
    +5.0.0b4
    +5.0.0b1
    +5.0.0a4
    +5.0.0a3
    +5.0.0a1
    +5.0.0d1
    +4.6.3

    Version numbers are also recorded in the CVS repository so that the code tree can be restored to the exact state it was in for a particular release. To translate between a distribution tar file Index: openacs-4/packages/acs-core-docs/www/eng-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.html,v diff -u -r1.14.2.4 -r1.14.2.5 --- openacs-4/packages/acs-core-docs/www/eng-standards.html 11 Jan 2004 12:45:46 -0000 1.14.2.4 +++ openacs-4/packages/acs-core-docs/www/eng-standards.html 2 Feb 2004 18:10:44 -0000 1.14.2.5 @@ -1 +1 @@ -Chapter�9.�Engineering Standards

    View comments on this page at openacs.org
    +Chapter�9.�Engineering Standards
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.11.2.10 -r1.11.2.11 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 21 Jan 2004 18:36:16 -0000 1.11.2.10 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 2 Feb 2004 18:10:45 -0000 1.11.2.11 @@ -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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/filename.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/filename.html 2 Feb 2004 18:10:45 -0000 1.22.2.11 @@ -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 @@ -114,7 +114,7 @@ within the OpenACS, this section's details are likely to shift from UI specifics to template interface specifics.

    Configuration/Parameters

    - Under OpenACS 5.0.0, parameters are set at two levels: at the global level by + Under OpenACS , parameters are set at two levels: at the global level by the OpenACS-admin, and at the subsite level by a sub-admin. In this section, list and discuss both levels of parameters.

    Future Improvements/Areas of Likely Change

    Index: openacs-4/packages/acs-core-docs/www/for-everyone.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/for-everyone.html,v diff -u -r1.13.2.4 -r1.13.2.5 --- openacs-4/packages/acs-core-docs/www/for-everyone.html 11 Jan 2004 12:45:46 -0000 1.13.2.4 +++ openacs-4/packages/acs-core-docs/www/for-everyone.html 2 Feb 2004 18:10:45 -0000 1.13.2.5 @@ -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 -r1.1.2.8 -r1.1.2.9 --- openacs-4/packages/acs-core-docs/www/form-builder.html 21 Jan 2004 18:36:16 -0000 1.1.2.8 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 2 Feb 2004 18:10:45 -0000 1.1.2.9 @@ -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
        Index: openacs-4/packages/acs-core-docs/www/general-documents.html
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/general-documents.html,v
        diff -u -r1.13.2.4 -r1.13.2.5
        --- openacs-4/packages/acs-core-docs/www/general-documents.html	11 Jan 2004 12:45:46 -0000	1.13.2.4
        +++ openacs-4/packages/acs-core-docs/www/general-documents.html	2 Feb 2004 18:10:45 -0000	1.13.2.5
        @@ -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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/groups-design.html 11 Jan 2004 12:45:46 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 2 Feb 2004 18:10:46 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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

          Essentials

          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, Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v diff -u -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 11 Jan 2004 12:45:46 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 2 Feb 2004 18:10:46 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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 +

          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 Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 25 Jan 2004 12:53:41 -0000 1.1.2.1 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 2 Feb 2004 18:10:46 -0000 1.1.2.2 @@ -1,4 +1,6 @@ -How Do I?

          How Do I?

          How do I change the 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/service0/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/service0/packages/acs-subsite/www/index* /var/lib/aolserver/service0/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/service0/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/service0/packages/acs-subsite/www/index* /var/lib/aolserver/service0/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/service0/www, this is /var/lib/aolserver/service0/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/service0/www/site-master.adp and .tcl)

            • The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/service0/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
            View comments on this page at openacs.org
            +

          • The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/service0/www/site-master.adp and .tcl)

          • The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/service0/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
          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 -r1.6.2.4 -r1.6.2.5 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 11 Jan 2004 12:45:46 -0000 1.6.2.4 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 2 Feb 2004 18:10:46 -0000 1.6.2.5 @@ -1,12 +1,12 @@ -OpenACS Internationalization Requirements

          OpenACS Internationalization Requirements

          by Henry Minsky, +OpenACS Internationalization Requirements

          OpenACS Internationalization Requirements

          by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, Christian Hvid, - and others.


          + and others.

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

          Introduction

          +

          Introduction

          This document describes the requirements for functionality in the OpenACS platform to support globalization of the core and optional modules. The goal is to make it possible to support delivery of Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -r1.13.2.10 -r1.13.2.11 --- openacs-4/packages/acs-core-docs/www/i18n.html 21 Jan 2004 18:36:16 -0000 1.13.2.10 +++ openacs-4/packages/acs-core-docs/www/i18n.html 2 Feb 2004 18:10:46 -0000 1.13.2.11 @@ -1,10 +1,10 @@ -Internationalization

          Internationalization

          +Internationalization

          Internationalization

          By Peter Marklund and Lars Pind -


          +

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

          Introduction

          +

          Introduction

          This document describes how to develop internationalized OpenACS packages, including writing new packages with internationalization and converting old packages. Text that @@ -48,7 +48,7 @@ which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention. -

          Separate Templates for each Locale

          If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.

          Message Keys in Template Files (ADP Files)

          +

          Separate Templates for each Locale

          If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.

          Message Keys in Template Files (ADP Files)

          Internationalizing templates is about replacing human readable text in a certain language with internal message keys, which can then be dynamically replaced with real human language in @@ -200,7 +200,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. -

          APM Parameters

          +

          APM Parameters

          Some parameters contain text that need to be localized. In this case, instead of storing the real text in the parameter, you should use message keys using the short notation above, @@ -263,15 +263,15 @@ Use the *_pretty version in your ADP page.

      To internationalize numbers, use lc_numeric $value, which formats the number using the appropriate decimal point and thousand separator for the locale. -

      Internationalizing Forms

      When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.

      Internationalizing Existing Packages

      Internationalize Message text in ADP and TCL

      Acs-lang includes tools to automate some +

      Internationalizing Forms

      When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.

      Internationalizing Existing Packages

      Internationalize Message text in ADP and TCL

      Acs-lang includes tools to automate some internationalization. From /acs-admin/apm/, select a package and then click on Internationalization, then Convert ADP, Tcl, and SQL files to using the - message catalog..

      Internationalize Package Parameters with visible messages

      - See Multilingual APM Parameters -

      Internationalize Date and Time queries

      1. Find datetime in .xql files. Use command line tools to find suspect SQL code:

        grep -r "to_char.*H" *
        +        message catalog..

      Internationalize Package Parameters with visible messages

      + See the section called “Checking the Consistency of Catalog Files” +

      Internationalize Date and Time queries

      1. Find datetime in .xql files. Use command line tools to find suspect SQL code:

        grep -r "to_char.*H" *
         grep -r "to_date.*H" *
         
      2. In SQL statements, replace the format string with the ANSI standard format, YYYY-MM-DD HH24:MI:SS and change the field name to *_ansi so that it cannot be confused with previous, improperly formatting fields. For example,

        to_char(timestamp,'MM/DD/YYYY HH:MI:SS') as foo_date_pretty

        becomes

        to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') as foo_date_ansi
      3. In TCL files where the date fields are used, convert the datetime from local server timezone, which is how it's stored in the database, to the user's timezone for display. Do this with the localizing function lc_time_system_to_conn:

         set foo_date_ansi [lc_time_system_to_conn $foo_date_ansi]

        When a datetime will be written to the database, first convert it from the user's local time to the server's timezone with lc_time_conn_to_system. Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.22.2.11 -r1.22.2.12 --- openacs-4/packages/acs-core-docs/www/index.html 25 Jan 2004 12:53:41 -0000 1.22.2.11 +++ openacs-4/packages/acs-core-docs/www/index.html 2 Feb 2004 18:10:46 -0000 1.22.2.12 @@ -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 3.3oacs1
        Install AOLserver 4
        Install OpenACS 5.0.0
        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 OpenACS
        Upgrading the OpenACS files
        Upgrading Platform components
        6. Maintenance
        Hosting Web Sites
        Database Management
        Backup and Recovery
        A. Install Red Hat 8/9
        B. Install additional supporting software
        Unpack the OpenACS tarball
        Initialize CVS (OPTIONAL)
        Add PSGML commands to emacs init file (OPTIONAL)
        Install Daemontools (OPTIONAL)
        Install qmail (OPTIONAL)
        Install Analog web file analyzer
        Install nspam
        Install Full Text Search
        Install nsopenssl
        Install tclwebtest.
        Install PHP for use in AOLserver
        Install Squirrelmail for use as a webmail system for OpenACS
        C. Credits
        Where did this document come from?
        Linux Install Guides
        Security Information
        Resources
        III. For OpenACS Package Developers
        7. Development Tutorial
        Creating a Package
        Setting Up Database Objects
        Creating Web Pages
        Debugging and Automated Testing
        Advanced Topics
        8. 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
        9. Engineering Standards
        OpenACS Style Guide
        Release Version Numbering
        Constraint naming standard
        ACS File Naming and Formatting Standards
        PL/SQL Standards
        Variables
        Automated Testing
        10. Documentation Standards
        OpenACS Documentation Guide
        Using PSGML mode in Emacs
        Using nXML mode in Emacs
        Detailed Design Documentation Template
        System/Application Requirements Template
        D. Using CVS with an OpenACS Site
        E. How to package and release OpenACS
        IV. For OpenACS Platform Developers
        11. 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
        Internationalization
        Security Requirements
        Security Design
        Security Notes
        Request Processor Requirements
        Request Processor Design
        Documenting Tcl Files: Page Contracts and Libraries
        Bootstrapping OpenACS
        External Authentication Requirements
        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
        1. Installation Overview
        Basic Steps
        Prerequisite Software
        1. Complete Installation
        Install a Unix-like system and supporting software
        Install Oracle 8.1.7
        Install PostgreSQL
        Install AOLserver 3.3oacs1
        Install AOLserver 4
        Install OpenACS
        OpenACS Installation Guide for Windows2000
        OpenACS Installation Guide for Mac OS X
        1. Configuring a new OpenACS Site
        How Do I?
        2. Upgrading
        Overview
        Upgrading OpenACS
        Upgrading the OpenACS files
        Upgrading Platform components
        1. Maintenance
        Operating an OpenACS Web Site
        Database Management
        Backup and Recovery
        A. Install Red Hat 8/9
        B. Install additional supporting software
        Unpack the OpenACS tarball
        Initialize CVS (OPTIONAL)
        Add PSGML commands to emacs init file (OPTIONAL)
        Install Daemontools (OPTIONAL)
        Install qmail (OPTIONAL)
        Install Analog web file analyzer
        Install nspam
        Install Full Text Search
        Install nsopenssl
        Install tclwebtest.
        Install PHP for use in AOLserver
        Install Squirrelmail for use as a webmail system for OpenACS
        A. Credits
        Where did this document come from?
        Linux Install Guides
        Security Information
        Resources
        III. For OpenACS Package Developers
        1. Development Tutorial
        Creating a Package
        Setting Up Database Objects
        Creating Web Pages
        Debugging and Automated Testing
        Advanced Topics
        1. 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
        1. Engineering Standards
        OpenACS Style Guide
        Release Version Numbering
        Constraint naming standard
        ACS File Naming and Formatting Standards
        PL/SQL Standards
        Variables
        Automated Testing
        2. Documentation Standards
        OpenACS Documentation Guide
        Using PSGML mode in Emacs
        Using nXML mode in Emacs
        Detailed Design Documentation Template
        System/Application Requirements Template
        A. Using CVS with an OpenACS Site
        A. How to package and release OpenACS
        IV. For OpenACS Platform Developers
        1. 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
        Internationalization
        Security Requirements
        Security Design
        Security Notes
        Request Processor Requirements
        Request Processor Design
        Documenting Tcl Files: Page Contracts and Libraries
        Bootstrapping OpenACS
        External Authentication Requirements
        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 -r1.13.2.7 -r1.13.2.8 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 24 Jan 2004 11:07:45 -0000 1.13.2.7 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 2 Feb 2004 18:10:47 -0000 1.13.2.8 @@ -6,7 +6,7 @@ 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.0.0
        AOLserver3YesNo
        3.3+ad13MaybeYes
        3.3oacs1MaybeYes
        3.4.2No
        3.4.2oacs1MaybeYesMaybe
        3.5.5MaybeYesNo
        4.0MaybeYes
        PostgreSQL7.0YesNo
        7.2.xYesNo
        7.3.2 - 7.3.4NoYes
        7.4NoMaybe
        Oracle8.1.6MaybeYes
        8.1.7MaybeYes
        9iNoYes
        • OpenACS 5.0.0.�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.0.0
          AOLserver3YesNo
          3.3+ad13MaybeYes
          3.3oacs1MaybeYes
          3.4.2No
          3.4.2oacs1MaybeYesMaybe
          3.5.5MaybeYesNo
          4.0MaybeYes
          PostgreSQL7.0YesNo
          7.2.xYesNo
          7.3.2 - 7.3.4NoYes
          7.4NoMaybe
          Oracle8.1.6MaybeYes
          8.1.7MaybeYes
          9iNoYes
          • OpenACS .�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 @@ -38,7 +38,7 @@ distributions.

          • TCL 8.3 development headers and libraries, OPTIONAL.� The site-wide-search service, OpenFTS, requires these to compile. (Debian users: apt-get install tcl8.3-dev). You need this - to install OpenFTS.

        • tDOM, REQUIRED.�OpenACS 5.0.0 stores + to install OpenFTS.

      4. tDOM, REQUIRED.�OpenACS stores queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which was used prior to 4.6.4.) tDOM is available from http://www.tdom.org).

      5. tclwebtest, OPTIONAL.�tclwebtest 0.3 is a tool for testing web interfaces @@ -49,7 +49,7 @@ running Apache with mod_nsd - see this post.

        • AOLserver 3.3oacs1, REQUIRED.�Mat Kovach's source distribution of AOLserver, including all of the patches listed below.

          Mat Kovach is graciously maintaining an AOLserver distribution that - includes all the patches and modules needed to run OpenACS 5.0.0. These + includes all the patches and modules needed to run OpenACS . These instructions will describe how to install using his source distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and perhaps more to come), currently located at uptime.openacs.org. @@ -93,8 +93,7 @@ calender entries, and notes) is stored in the database. OpenACS seperates the database with an abstraction layer, which means that several different databases all function - identically. Currently OpenACS supports PostgreSQL 7.2 and - Oracle 8.1.7. While you can run the core OpenACS on any + identically. While you can run the core OpenACS on any supported database, not all contributed packages support all databases.

          • Oracle 8.1.7 (Either this or PostgreSQL is REQUIRED).�You can register and download Oracle from Oracle TechNet. You need this if you want to use an Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.12.2.10 -r1.12.2.11 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 21 Jan 2004 18:36:16 -0000 1.12.2.10 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 2 Feb 2004 18:10:48 -0000 1.12.2.11 @@ -1,6 +1,6 @@ -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]#
            -
            mkdir /cvsroot
            -cvs -d /cvsroot init
            View comments on this page at openacs.org
            +mkdir /cvsroot +cvs -d /cvsroot init
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v diff -u -r1.13.2.10 -r1.13.2.11 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 21 Jan 2004 18:36:16 -0000 1.13.2.10 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 2 Feb 2004 18:10:48 -0000 1.13.2.11 @@ -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
            @@ -15,12 +15,12 @@
             Adding svscanboot to inittab...
             init should start svscan now.
             [root root]#
            -
            mkdir -p /package 
            +mkdir -p /package 
             chmod 1755 /package 
             cd /package 
             tar xzf /tmp/daemontools-0.76.tar.gz 
             cd admin/daemontools-0.76 
            -package/install
          • Red Hat 9

            Make sure you have the source tarball in +package/install

      • Red Hat 9

        Make sure you have the source tarball in /tmp, or download it.

        [root root]# mkdir -p /package
         [root root]# chmod 1755 /package/
        @@ -47,21 +47,21 @@
         Adding svscanboot to inittab...
         init should start svscan now.
         [root root]#
        -
        mkdir -p /package 
        +mkdir -p /package 
         chmod 1755 /package 
         cd /package 
         tar xzf /tmp/daemontools-0.76.tar.gz 
         cd admin
         wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
         cd daemontools-0.76
         patch -p1 < ../daemontools-0.76.errno.patch
        -package/install
      • Debian

        [root ~]# apt-get install daemontools-installer
        +package/install
      • Debian

        [root ~]# apt-get install daemontools-installer
         [root ~]# build-daemontools
    2. Verify that svscan is running. If it is, you should see these two processes running:

      [root root]# ps -auxw | grep service
       root     13294  0.0  0.1  1352  272 ?        S    09:51   0:00 svscan /service
       root     13295  0.0  0.0  1304  208 ?        S    09:51   0:00 readproctitle service errors: .......................................
       [root root]#
    3. Install a script to grant non-root users permission to - control daemontools services.

      [root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup
      +        control daemontools services.

      [root root]# cp /tmp//packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup
       [root root]# chmod 755 /usr/local/bin/svgroup
      -
      cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup 
      -chmod 755 /usr/local/bin/svgroup
    View comments on this page at openacs.org
    +cp /tmp//packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup +chmod 755 /usr/local/bin/svgroup
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v diff -u -r1.11.2.11 -r1.11.2.12 --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html 21 Jan 2004 18:36:16 -0000 1.11.2.11 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html 2 Feb 2004 18:10:48 -0000 1.11.2.12 @@ -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
      @@ -20,11 +20,11 @@
       logout
       
       [root root]#
      -
      su - postgres
      +su - postgres
       cd /usr/local/src/postgresql-7.3.4/contrib/tsearch
       make
       make install
      -exit
    2. Unpack the OpenFTS tarball and compile and install +exit

    3. Unpack the OpenFTS tarball and compile and install the driver.

      [root root]# cd /usr/local/src
       [root src]# tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
       [root src]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
      @@ -47,15 +47,15 @@
       n_stem.o italian_stem.o norwegian_stem.o portuguese_stem.o russian_stem.o nsfts.o  -o nsfts.so
       [root aolserver]# cp nsfts.so /usr/local/aolserver/bin/
       [root aolserver]#
      -
      cd /usr/local/src 
      +cd /usr/local/src 
       tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
       cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
       ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/
       make
       cd aolserver
       make
       cp nsfts.so /usr/local/aolserver/bin
      -
    4. Build some supplemental modules.

      [root aolserver]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
      +
    5. Build some supplemental modules.

      [root aolserver]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
       [root Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.3.4/contrib
       [root Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts
       [root pgsql_contrib_openfts]# make
      @@ -70,13 +70,13 @@
       /bin/sh ../../config/install-sh -c -m 644 ./README.openfts /usr/local/pgsql/doc/contrib
       [postgres pgsql_contrib_openfts]$ exit
       [root pgsql_contrib_openfts]#
      -
      cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
      +cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
       cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.3.4/contrib
       cd /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts
       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.)

    [service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
    @@ -89,8 +89,8 @@
     CREATE
     CREATE
     [service0 service0]$
    -
    /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
    -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql

    Enable OpenFTS in config.tcl

    If you have installed OpenFTS, you can enable it for this service. Uncomment this line from config.tcl. (To uncomment a line in a tcl file, remove the # at the beginning of the line.)

    #ns_param   nsfts           ${bindir}/nsfts.so

    Install Full Text Search Engine

    1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

    2. Click on the Install +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql

    Enable OpenFTS in config.tcl

    If you have installed OpenFTS, you can enable it for this service. Uncomment this line from config.tcl. (To uncomment a line in a tcl file, remove the # at the beginning of the line.)

    #ns_param   nsfts           ${bindir}/nsfts.so

    Install Full Text Search Engine

    1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

    2. Click on the Install software link.

    3. Click on the Install new service link.

    4. Click on the Install link next to OpenFTS Driver.

    5. Restart the service.

      [service0 service0]$ svc -t /service/service0
       [service0 service0]$
    6. Wait a minute, then browse back to the home page.

    7. Click on Admin on the top of the screen.

    8. Click on Main Site Administration in the "Subsite Administration" section.

    9. Click on Site Map in the "Advanced Features" section.

    10. Mount the OpenFTS Full Text Search Engine in the site map.

      1. Click the new sub folder link on the "/" line, the first line under Main Site:/.

      2. Type openfts Index: openacs-4/packages/acs-core-docs/www/install-more-software.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v diff -u -r1.6.2.4 -r1.6.2.5 --- openacs-4/packages/acs-core-docs/www/install-more-software.html 11 Jan 2004 12:45:46 -0000 1.6.2.4 +++ openacs-4/packages/acs-core-docs/www/install-more-software.html 2 Feb 2004 18:10:48 -0000 1.6.2.5 @@ -1,7 +1,7 @@ -Appendix�B.�Install additional supporting software

        Appendix�B.�Install additional supporting software

        By Joel Aufrecht


        +Appendix�B.�Install additional supporting software

        This section assumes that the source tarballs for supporting software are in /tmp. It assumes that you begin each continuous block of commands as root, and you should end each block as root. It doesn't care which directory Index: openacs-4/packages/acs-core-docs/www/install-nsopenssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nsopenssl.html,v diff -u -r1.7.2.6 -r1.7.2.7 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 11 Jan 2004 12:45:46 -0000 1.7.2.6 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 2 Feb 2004 18:10:48 -0000 1.7.2.7 @@ -1,7 +1,7 @@ -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 +

        This AOLserver module is required if you want people to connect to your site via https. These commands compile nsopenssl and install it, along with a tcl helper script to handle https connections. You will also need ssl certificates. Because those should @@ -21,20 +21,20 @@ [root nsopenssl-2.1]# cp nsopenssl.so /usr/local/aolserver/bin [root nsopenssl-2.1]# cp https.tcl /usr/local/aolserver/modules/tcl/ [root nsopenssl-2.1]# -

        cd /usr/local/src/aolserver
        +cd /usr/local/src/aolserver
         wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz
         tar xzf nsopenssl-2.1.tar.gz 
         cd nsopenssl-2.1 
         make OPENSSL=/usr/local/ssl 
         cp nsopenssl.so /usr/local/aolserver/bin 
        -cp https.tcl /usr/local/aolserver/modules/tcl/

        For Debian (more - information):

        apt-get install libssl-dev
        +cp https.tcl /usr/local/aolserver/modules/tcl/

        For Debian (more + information):

        apt-get install libssl-dev
         cd /usr/local/src/aolserver
         tar xzf /tmp/nsopenssl-2.1.tar.gz
         cd nsopenssl-2.1
         make OPENSSL=/usr/lib/ssl
         cp nsopenssl.so /usr/local/aolserver/bin
        -cp https.tcl /usr/local/aolserver/modules/tcl/

        Install on AOLserver4

        You will need the AOLserver4 source in /usr/local/src/aolserver/aolserver and OpenSSL installed in /usr/local/ssl (or at least symlinked there).

        [root bin]# cd /usr/local/src/aolserver
        +cp https.tcl /usr/local/aolserver/modules/tcl/

        Install on AOLserver4

        You will need the AOLserver4 source in /usr/local/src/aolserver/aolserver and OpenSSL installed in /usr/local/ssl (or at least symlinked there).

        [root bin]# cd /usr/local/src/aolserver
         [root aolserver]# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login
         [root aolserver]# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsopenssl
         [root aolserver]# cd nsopenssl
        @@ -43,20 +43,20 @@
         (many lines omitted)
         [root nsopenssl-2.1]# make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver
         [root nsopenssl-2.1]#
        -
        cd /usr/local/src/aolserver
        +cd /usr/local/src/aolserver
         cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login
         cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsopenssl
         cd nsopenssl
         make OPENSSL=/usr/local/ssl 
        -make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver

        If you have problems starting your server with nsopenssl.so due to missing libssl.so.0.9.7 (or lower), you have to create symlinks +make install OPENSSL=/usr/local/ssl INST=/usr/local/aolserver

        If you have problems starting your server with nsopenssl.so due to missing libssl.so.0.9.7 (or lower), you have to create symlinks

         [root nsopenssl]# cd /usr/local/aolserver/lib
         [root lib]# ln -s /usr/local/ssl/lib/libssl.so.0.9.7 libssl.so.0.9.7
         [root lib]# ln -s /usr/local/ssl/lib/libcrypto.so.0.9.7 libcrypto.so.0.9.7
         [root lib]#
        -
        cd /usr/local/aolserver/lib
        +cd /usr/local/aolserver/lib
         ln -s /usr/local/ssl/lib/libssl.so.0.9.7 libssl.so.0.9.7
         ln -s /usr/local/ssl/lib/libcrypto.so.0.9.7 libcrypto.so.0.9.7
        -
        +

        To enable SSL support in your server, make sure your config.tcl file has a section on "OpenSSL 3 with AOLserver4". If your ports for SSL are priviledged (below 1024), you will have to start AOLserver with prebinds for both your HTTP and your HTTPS port (usually by adding -b your_ip:your_http_port,your_ip:your_https_port to the nsd call).

        View comments on this page at openacs.org
        Index: openacs-4/packages/acs-core-docs/www/install-nspam.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nspam.html,v diff -u -r1.2.2.4 -r1.2.2.5 --- openacs-4/packages/acs-core-docs/www/install-nspam.html 11 Jan 2004 12:45:46 -0000 1.2.2.4 +++ openacs-4/packages/acs-core-docs/www/install-nspam.html 2 Feb 2004 18:10:48 -0000 1.2.2.5 @@ -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-origins.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-origins.html,v diff -u -r1.2.2.4 -r1.2.2.5 --- openacs-4/packages/acs-core-docs/www/install-origins.html 11 Jan 2004 12:45:46 -0000 1.2.2.4 +++ openacs-4/packages/acs-core-docs/www/install-origins.html 2 Feb 2004 18:10:48 -0000 1.2.2.5 @@ -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 -r1.18.2.4 -r1.18.2.5 --- openacs-4/packages/acs-core-docs/www/install-overview.html 11 Jan 2004 12:45:46 -0000 1.18.2.4 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 2 Feb 2004 18:10:48 -0000 1.18.2.5 @@ -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
        +
        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 -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-core-docs/www/install-php.html 18 Jan 2004 17:07:13 -0000 1.1.2.1 +++ openacs-4/packages/acs-core-docs/www/install-php.html 2 Feb 2004 18:10:49 -0000 1.1.2.2 @@ -1,7 +1,7 @@ -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
        +        

        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
         [root src]# wget http://de3.php.net/distributions/php-4.3.4.tar.gz
         [root src]# tar xfz php-4.3.4.tar.gz
         [root src]# cd php-4.3.4
        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 -r1.13.2.10 -r1.13.2.11
        --- openacs-4/packages/acs-core-docs/www/install-qmail.html	21 Jan 2004 18:36:16 -0000	1.13.2.10
        +++ openacs-4/packages/acs-core-docs/www/install-qmail.html	2 Feb 2004 18:10:49 -0000	1.13.2.11
        @@ -1,17 +1,17 @@
        -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 fail to compile in Red Hat 9 because of changes to glibc (patches)

        1. Install ucspi.�This program handles incoming tcp connections. Download ucspi and install it.

          [root root]# cd /usr/local/src
           [root src]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
           [root src]# tar xzf ucspi-tcp-0.88.tar.gz
          -
          cd /usr/local/src 
          +cd /usr/local/src 
           wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
          -tar xzf ucspi-tcp-0.88.tar.gz 

          Red Hat 9 only

          wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
          +tar xzf ucspi-tcp-0.88.tar.gz 

          Red Hat 9 only

          wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
           cd ucspi-tcp-0.88
           patch -p1 <../ucspi-tcp-0.88.errno.patch
          -cd ..

          All platforms continue:

          [root src]# cd ucspi-tcp-0.88
          +cd ..

          All platforms continue:

          [root src]# cd ucspi-tcp-0.88
           [root ucspi-tcp-0.88]# make
           ( cat warn-auto.sh; \
           echo 'main="$1"; shift'; \(many lines omitted)
          @@ -21,15 +21,15 @@
           ./install
           ./instcheck
           [root ucspi-tcp-0.88]#
          -
          
          +
           cd ucspi-tcp-0.88 
           make 
          -make setup check

          Verify that ucspi-tcp was installed successfully by +make setup check

        Verify that ucspi-tcp was installed successfully by running the tcpserver program which is part of ucspi-tcp:

        [root ucspi-tcp-0.88]# tcpserver
         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 @@ -40,10 +40,10 @@ Unless this mail is addressed to the same machine, qmail thinks that it's an attempt to relay mail, and rejects it. So these two commands set up an exception so that any mail sent from 127.0.0.1 is allowed to -send outgoing mail.

        [root ucspi-tcp-0.88]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp
        +send outgoing mail.

        [root ucspi-tcp-0.88]# cp /tmp//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.0.0/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, +cp /tmp//packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp +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
        @@ -86,7 +86,7 @@
         echo CC=\'`head -1 conf-cc`\'; \(many lines omitted)
         ./install
         ./instcheck
        -
        cd /usr/local/src 
        +cd /usr/local/src 
         wget http://www.qmail.org/netqmail-1.04.tar.gz
         tar xzf netqmail-1.04.tar.gz
         mkdir /var/qmail 
        @@ -102,11 +102,11 @@
         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
        -ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

        Configure qmail - specifically, run the config script to set up files in /var/qmail/control specifying the computer's identity and which addresses it should accept mail for. This command will automatically set up qmail correctly if you have correctly set a valid host nome. If not, you'll want to read /var/qmail/doc/INSTALL.ctl to find out how to configure qmail.

        [root qmail-1.03]# ./config-fast yourserver.test
        +rm -f /usr/bin/sendmail /usr/sbin/sendmail
        +ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

        Configure qmail - specifically, run the config script to set up files in /var/qmail/control specifying the computer's identity and which addresses it should accept mail for. This command will automatically set up qmail correctly if you have correctly set a valid host nome. If not, you'll want to read /var/qmail/doc/INSTALL.ctl to find out how to configure qmail.

        [root qmail-1.03]# ./config-fast yourserver.test
         Your fully qualified host name is yourserver.test.
         Putting yourserver.test into control/me...
         Putting yourserver.test into control/defaultdomain...
        @@ -116,62 +116,62 @@
         Now qmail will refuse to accept SMTP messages except to yourserver.test.
         Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
         [root qmail-1.03]#
        -
        ./config-fast yourserver.test

        All incoming mail that isn't for a specific user is handled by the alias user. This includes all root mail. These commands prepare the alias user to receive mail.

        [root qmail-1.03]# cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
        +./config-fast yourserver.test

        All incoming mail that isn't for a specific user is handled by the alias user. This includes all root mail. These commands prepare the alias user to receive mail.

        [root qmail-1.03]# cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
         [root alias]# chmod 644 ~alias/.qmail*
         [root alias]# /var/qmail/bin/maildirmake ~alias/Maildir/
         [root alias]# chown -R alias.nofiles /var/qmail/alias/Maildir
         [root alias]#
        -
        cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root 
        +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.0.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
        +[root alias]# cp /tmp//packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
         [root alias]# chmod 755 /var/qmail/rc
         [root alias]# 
        -
        echo "./Maildir" > /var/qmail/bin/.qmail 
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc 
        +echo "./Maildir" > /var/qmail/bin/.qmail 
        +cp /tmp//packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc 
         chmod 755 /var/qmail/rc 
        -

        Set up the skeleton directory so that new users will +

        Set up the skeleton directory so that new users will be configured for qmail.

        [root root]# /var/qmail/bin/maildirmake /etc/skel/Maildir
         [root root]# echo "./Maildir/" > /etc/skel/.qmail
         [root root]# 
        -
        /var/qmail/bin/maildirmake /etc/skel/Maildir
        -echo "./Maildir/" > /etc/skel/.qmail

        As recommended, we will run qmail with daemontools +/var/qmail/bin/maildirmake /etc/skel/Maildir +echo "./Maildir/" > /etc/skel/.qmail

        As recommended, we will run qmail with daemontools control files. Create daemontools control directories, set up a daemontools control script, copy the supervise control files, and set permissions. The last line links the control directories to /service, which will cause supervise to detect them and execute the run files, causing qmail to start.

        [root root]# mkdir -p /var/qmail/supervise/qmail-send/log
         [root root]# mkdir -p /var/qmail/supervise/qmail-smtpd/log
         [root root]# mkdir /var/log/qmail
         [root root]# chown qmaill /var/log/qmail
        -[root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl
        +[root root]# cp /tmp//packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl
         [root root]# chmod 755 /var/qmail/bin/qmailctl
         [root root]# ln -s /var/qmail/bin/qmailctl /usr/bin
        -[root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run 
        -[root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run
        -[root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run
        -[root root]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run
        +[root root]# cp /tmp//packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run 
        +[root root]# cp /tmp//packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run
        +[root root]# cp /tmp//packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run
        +[root root]# cp /tmp//packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run
         [root root]# chmod 755 /var/qmail/supervise/qmail-send/run
         [root root]# chmod 755 /var/qmail/supervise/qmail-send/log/run
         [root root]# chmod 755 /var/qmail/supervise/qmail-smtpd/run
         [root root]# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
         [root root]# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
         [root root]# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
        -
        mkdir -p /var/qmail/supervise/qmail-send/log
        +mkdir -p /var/qmail/supervise/qmail-send/log
         mkdir -p /var/qmail/supervise/qmail-smtpd/log
         mkdir /var/log/qmail
         chown qmaill /var/log/qmail
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl
        +cp /tmp//packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl
         chmod 755 /var/qmail/bin/qmailctl
         ln -s /var/qmail/bin/qmailctl /usr/bin
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run
        -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run
        +cp /tmp//packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run
        +cp /tmp//packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run
        +cp /tmp//packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run
        +cp /tmp//packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run
         chmod 755 /var/qmail/supervise/qmail-send/run
         chmod 755 /var/qmail/supervise/qmail-send/log/run
         chmod 755 /var/qmail/supervise/qmail-smtpd/run
         chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
         ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
        -

        Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.

        [root root]# qmailctl stat
        +

        Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.

        [root root]# qmailctl stat
         /service/qmail-send: up (pid 32700) 430 seconds
         /service/qmail-send/log: up (pid 32701) 430 seconds
         /service/qmail-smtpd: up (pid 32704) 430 seconds
        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 -r1.13.2.10 -r1.13.2.11
        --- openacs-4/packages/acs-core-docs/www/install-redhat.html	21 Jan 2004 18:36:16 -0000	1.13.2.10
        +++ openacs-4/packages/acs-core-docs/www/install-redhat.html	2 Feb 2004 18:10:49 -0000	1.13.2.11
        @@ -1,7 +1,7 @@
        -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 +

        This section takes a blank PC and sets up some supporting software. You should do this section as-is if you have a machine you can reformat and you want to be sure that your installation works and is secure; it should take about an hour. (In my @@ -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

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

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

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

  • Choose your time zone and click Next.

  • Type in a root password, twice.

  • 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

  • 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

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

  • 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 @@ -153,10 +153,10 @@ [root root]# chkconfig --del pcmcia [root root]# chkconfig --del netfs [root root]# -

      service pcmcia stop
      +service pcmcia stop
       service netfs stop
       chkconfig --del pcmcia
      -chkconfig --del netfs

      If you installed PostgreSQL, do also +chkconfig --del netfs

      If you installed PostgreSQL, do also service postgresql start and chkconfig --add postgresql.

    2. Plug in the network cable.

    3. Verify that you have connectivity by going to another computer and ssh'ing to yourserver, logging in as @@ -197,7 +197,7 @@ The system is going down for reboot NOW! [root tmp]# -

      cd /tmp
      +cd /tmp
       wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm
       rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm
      -reboot
  • View comments on this page at openacs.org
    +reboot
    View comments on this page at openacs.org
    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 -r1.2.2.4 -r1.2.2.5 --- openacs-4/packages/acs-core-docs/www/install-resources.html 11 Jan 2004 12:45:46 -0000 1.2.2.4 +++ openacs-4/packages/acs-core-docs/www/install-resources.html 2 Feb 2004 18:10:49 -0000 1.2.2.5 @@ -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 -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 18 Jan 2004 17:07:13 -0000 1.1.2.1 +++ openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 2 Feb 2004 18:10:49 -0000 1.1.2.2 @@ -1,7 +1,7 @@ -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

      [service0 service0]# cd www
      +        

      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

      [service0 service0]# cd www
       [service0 www]# wget http://cesnet.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.2.tar.gz
       [service0 www]# tar xfz squirrelmail-1.4.2.tar.gz
       [service0 www]# mv squirrelmail-1.4.2 mail
      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 -r1.6.2.11 -r1.6.2.12
      --- openacs-4/packages/acs-core-docs/www/install-steps.html	24 Jan 2004 11:07:45 -0000	1.6.2.11
      +++ openacs-4/packages/acs-core-docs/www/install-steps.html	2 Feb 2004 18:10:49 -0000	1.6.2.12
      @@ -4,12 +4,12 @@
               Install PostgreSQL).

    • Install AOLserver (see Install AOLserver 3.3oacs1).

    • Create a unique database and system user. Install the OpenACS tarball, start and AOLserver instance, and use the OpenACS web pages to complete installation - (see Install OpenACS 5.0.0).

    There are specific instructions available for Mac OS X and + (see Install OpenACS ).

    There are specific instructions available for Mac OS X and Windows2000 available (see the section called “OpenACS Installation Guide for Mac OS X” or the section called “OpenACS Installation Guide for Windows2000” for those).

    Binaries and other shortcuts

    1. The patched version of AOLserver we use is not currently available in a precompiled binary.

    2. The packaged version of - PostgreSQL in Debian and Red Hat and FreeBSD ports works fine.

    3. An experimental script automates the OpenACS checkout and + PostgreSQL in Debian and Red Hat and FreeBSD ports works fine.

    4. An experimental script automates the OpenACS checkout and installation.

    System Requirements

    You will need a PC (or equivalent) with at least these minimum @@ -37,9 +37,9 @@ su - service0 svc -d /service/service0 dropdb service0 -createdb 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 serviceservice0
    OpenACS service accountservice0
    OpenACS database nameservice0
    Root of OpenACS service file tree (SERVERROOT)/var/lib/aolserver/service0
    Location of source code tarballs for new software/tmp
    The OpenACS tarball contains some files which +createdb 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 serviceservice0
    OpenACS service accountservice0
    OpenACS database nameservice0
    Root of OpenACS service file tree (SERVERROOT)/var/lib/aolserver/service0
    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.0.0/packages/acs-core-docs/www/files
    Database backup directory/var/lib/aolserver/service0/database-backup
    Service config files/var/lib/aolserver/service0/etc
    Service log files/var/lib/aolserver/service0/log
    Compile directory/usr/local/src
    PostgreSQL directory/usr/local/pgsql
    AOLserver directory/usr/local/aolserver

    + files are located at:

    /tmp//packages/acs-core-docs/www/files
    Database backup directory/var/lib/aolserver/service0/database-backup
    Service config files/var/lib/aolserver/service0/etc
    Service log files/var/lib/aolserver/service0/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 the values that we've chosen. The values that you'll probably want to change, such as service name, are 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 -r1.3.2.5 -r1.3.2.6 --- openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 11 Jan 2004 12:45:46 -0000 1.3.2.5 +++ openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 2 Feb 2004 18:10:49 -0000 1.3.2.6 @@ -1,8 +1,8 @@ -Install tclwebtest.

    Install tclwebtest.

    Download the tclwebtest +Install tclwebtest.

    Install tclwebtest.

    Download the tclwebtest source, unpack it, and put it an appropriate - place. As root:

    cd /tmp
    +      place.  As root:

    cd /tmp
     tar xvzf tclwebtest-0.3.tar.gz
     mv tclwebtest-0.3 /usr/local/
     ln -s /usr/local/tclwebtest-0.3 /usr/local/tclwebtest
     ln -s /usr/local/tclwebtest/tclwebtest /usr/local/bin
    -
    View comments on this page at openacs.org
    +
    View comments on this page at openacs.org
    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 -r1.1.4.9 -r1.1.4.10 --- openacs-4/packages/acs-core-docs/www/ix01.html 21 Jan 2004 18:36:16 -0000 1.1.4.9 +++ openacs-4/packages/acs-core-docs/www/ix01.html 2 Feb 2004 18:10:50 -0000 1.1.4.10 @@ -1,2 +1,2 @@ -Index

    Index

    A

    AOLserver
    configuration, Install from tarball
    Automated tests, Write automated tests

    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, 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 to 4.6.x

    X

    XML guidelines, Why DocBook?
    xref
    linkend, Links
    xreflabel, Headlines, Sections
    View comments on this page at openacs.org
    +Index

    Index

    A

    AOLserver
    configuration, Install from tarball
    Automated tests, Write automated tests

    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, 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 -r1.17.2.4 -r1.17.2.5 --- openacs-4/packages/acs-core-docs/www/kernel-doc.html 11 Jan 2004 12:45:46 -0000 1.17.2.4 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.html 2 Feb 2004 18:10:50 -0000 1.17.2.5 @@ -1 +1 @@ -Chapter�11.�Kernel Documentation
    View comments on this page at openacs.org
    +Chapter�11.�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 -r1.12.2.4 -r1.12.2.5 --- openacs-4/packages/acs-core-docs/www/kernel-overview.html 11 Jan 2004 12:45:46 -0000 1.12.2.4 +++ openacs-4/packages/acs-core-docs/www/kernel-overview.html 2 Feb 2004 18:10:50 -0000 1.12.2.5 @@ -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/maintenance-web.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-web.html,v diff -u -r1.14.2.10 -r1.14.2.11 --- openacs-4/packages/acs-core-docs/www/maintenance-web.html 21 Jan 2004 18:36:16 -0000 1.14.2.10 +++ openacs-4/packages/acs-core-docs/www/maintenance-web.html 2 Feb 2004 18:10:50 -0000 1.14.2.11 @@ -1,7 +1,7 @@ -Hosting Web Sites

        Hosting Web Sites

        By Joel Aufrecht


        +Operating an OpenACS Web Site

        Operating an OpenACS Web Site

        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.

        Keep AOLserver Alive

        Assuming AOLserver started cleanly in the previous step, we'll set it up so that it's always running, and automatically restarts whenever it dies or is stopped. This step is strongly recommended, even for development sites, because it makes install and maintenance much simpler.

        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 +

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

        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/service0/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. Daemontools then @@ -54,7 +54,7 @@ Most of this information comes from Tom Jackson's AOLserver+Daemontools Mini-HOWTO.

        AOLserver keepalive with inittab

        This is an alternative method for keeping the AOLserver - process running. The recommended method is to run AOLserver + process running. The recommended method is to run AOLserver supervised.

        This step should be completed as root. This can break every service on your machine, so proceed with caution. @@ -145,7 +145,7 @@ automated for startup and shutdown.

        Running AOLserver on Port 80

        If you want your webserver to be http://yourserver.com, it must run on port 80, the default HTTP port. You set this in the config.tcl file. You will need to start the service as root. If you follow the instructions - above for automating + above for automating startup, this will be taken care of, but if you ever start the server from the command line, be sure to su - first. @@ -159,7 +159,7 @@ able to exploit your web server to execute a command on your server, they would not be able to gain root access.

        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.0.0 replacing + ip, simply repeat Install OpenACS replacing service0, and change the

        set httpport              8000
         set httpsport             8443 

        @@ -182,8 +182,8 @@

      • Prepare a certificate directory for the service.

        [service0 etc]$ mkdir /var/lib/aolserver/service0/etc/certs
         [service0 etc]$ chmod 700 /var/lib/aolserver/service0/etc/certs
         [service0 etc]$ 
        -
        mkdir /var/lib/aolserver/service0/etc/certs
        -chmod 700 /var/lib/aolserver/service0/etc/certs
      • It takes two files to support an SSL connection. The certificate is the public half of the key pair - the server sends the certificate to browser requesting ssl. The key is the private half of the key pair. In addition, the certificate must be signed by Certificate Authority or browsers will protest. Each web browser ships with a built-in list of acceptable Certificate Authorities (CAs) and their keys. Only a site certificate signed by a known and approved CA will work smoothly. Any other certificate will cause browsers to produce some messages or block the site. Unfortunately, getting a site certificate signed by a CA costs money. In this section, we'll generate an unsigned certificate which will work in most browsers, albeit with pop-up messages.

        Use an OpenSSL perl script to generate a certificate and key.

        [service0 service0]$ cd /var/lib/aolserver/service0/etc/certs
        +mkdir /var/lib/aolserver/service0/etc/certs
        +chmod 700 /var/lib/aolserver/service0/etc/certs
      • It takes two files to support an SSL connection. The certificate is the public half of the key pair - the server sends the certificate to browser requesting ssl. The key is the private half of the key pair. In addition, the certificate must be signed by Certificate Authority or browsers will protest. Each web browser ships with a built-in list of acceptable Certificate Authorities (CAs) and their keys. Only a site certificate signed by a known and approved CA will work smoothly. Any other certificate will cause browsers to produce some messages or block the site. Unfortunately, getting a site certificate signed by a CA costs money. In this section, we'll generate an unsigned certificate which will work in most browsers, albeit with pop-up messages.

        Use an OpenSSL perl script to generate a certificate and key.

        [service0 service0]$ cd /var/lib/aolserver/service0/etc/certs
         [service0 certs]$ perl /usr/share/ssl/misc/CA -newcert
         Using configuration from /usr/share/ssl/openssl.cnf
         Generating a 1024 bit RSA private key
        @@ -211,12 +211,12 @@
         [service0 service0]$ cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg
         [service0 service0]$ mkdir www/log
         [service0 service0]$ cp -r /usr/share/analog-5.31/images www/log/
        -[service0 service0]$ 
        
        +[service0 service0]$ 
         su - service0
         cd /var/lib/aolserver/service0
         cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg
         mkdir www/log
        -cp -r /usr/share/analog-5.31/images www/log/

        Edit +cp -r /usr/share/analog-5.31/images www/log/

        Edit /var/lib/aolserver/service0/etc/analog.cfg and change the variable in HOSTNAME "[my organisation]" to reflect your website title. If you don't want the traffic log to be publicly visible, change Index: openacs-4/packages/acs-core-docs/www/maintenance.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/maintenance.html,v diff -u -r1.8.2.4 -r1.8.2.5 --- openacs-4/packages/acs-core-docs/www/maintenance.html 11 Jan 2004 12:45:46 -0000 1.8.2.4 +++ openacs-4/packages/acs-core-docs/www/maintenance.html 2 Feb 2004 18:10:50 -0000 1.8.2.5 @@ -1 +1 @@ -Chapter�6.�Maintenance

        Chapter�6.�Maintenance

        View comments on this page at openacs.org
        +Chapter�6.�Maintenance
        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 -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/acs-core-docs/www/nxml-mode.html 11 Jan 2004 12:45:46 -0000 1.1.2.3 +++ openacs-4/packages/acs-core-docs/www/nxml-mode.html 2 Feb 2004 18:10:51 -0000 1.1.2.4 @@ -1,7 +1,7 @@ -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. -

        +

        An alternative to psgml mode is nXML by James Clark, a new major mode for GNU Emacs for editing XML, and which features highlighting, indentation, and on the fly validation versus a RelaxNG Schema.

        • An 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/object-identity.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/object-identity.html 2 Feb 2004 18:10:51 -0000 1.22.2.11 @@ -1,18 +1,18 @@ -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.0.0 is the explicit representation +

          One of the major design features of OpenACS is the explicit representation of object identity. The reason I say "explicit representation" is because the concept of object identity has been around forever. It is inherent to our problem domain. Consider the example of 3.x style scoping. The 3.x data models use the triple (user_id, group_id, -scope) to identify an object. In the 5.0.0 data model this +scope) to identify an object. In the data model this object is explicitly represented by a single party_id.

          Another good example of this is can be found in the user groups data model. The 3.x user groups data model contains another example of an implied identity. Every mapping between a user and a group could have an arbitrary number of attached values (user_group_member_fields, etc.). In this case it is the pair (group_id, user_id) that implicitly refers to an -object (the person's membership in a group). In the 5.0.0 data model this +object (the person's membership in a group). In the data model this object identity is made explicit by adding an integer primary key to the table that maps users to groups.

          Coming from a purely relational world, this might seem slightly weird at first. The pair (group_id, user_id) is sufficient to uniquely identify the 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 -r1.16.2.4 -r1.16.2.5 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 11 Jan 2004 12:45:46 -0000 1.16.2.4 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 2 Feb 2004 18:10:51 -0000 1.16.2.5 @@ -1,7 +1,7 @@ -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

          Essentials

          Tcl Files

          Not yet linked.

          Requirements

          • Object 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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 11 Jan 2004 12:45:46 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 2 Feb 2004 18:10:52 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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 +

            I. Introduction

            A major goal in OpenACS 4 is to unify and normalize many of the core services of the system into a coherent common data model and API. In the past, these services were provided to applications in an ad-hoc and irregular fashion. Examples of such services include:

            • General Comments

            • User/groups

            • Attribute storage in user/groups

            • General Permissions

            • Site wide search

            • General Auditing

            All of these services involve relating extra information and services to 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 -r1.23.2.10 -r1.23.2.11 --- openacs-4/packages/acs-core-docs/www/objects.html 21 Jan 2004 18:36:16 -0000 1.23.2.10 +++ openacs-4/packages/acs-core-docs/www/objects.html 2 Feb 2004 18:10:51 -0000 1.23.2.11 @@ -1,8 +1,8 @@ -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

            -Developing data models in OpenACS 5.0.0 is much like developing data models +

            Overview

            +Developing data models in OpenACS is much like developing data models for OpenACS 3, save for the implementation. As usual, you need to examine how to model the information that the application must store and manipulate, and define a suitable set of SQL tables. In our Notes @@ -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 @@ -314,7 +314,7 @@ models that are meant to be integrated with the OpenACS object system.

            -There are two basic rules you should follow when designing OpenACS 5.0.0 data +There are two basic rules you should follow when designing OpenACS data models: @@ -369,7 +369,7 @@ requires a good amount of thought at design time even for simple applications.

            Summary

            -Hooking into the OpenACS 5.0.0 object system brings the application developer +Hooking into the OpenACS object system brings the application developer numerous benefits, and doing it involves only four easy steps: 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 -r1.13.2.4 -r1.13.2.5 --- openacs-4/packages/acs-core-docs/www/openacs-overview.html 11 Jan 2004 12:45:46 -0000 1.13.2.4 +++ openacs-4/packages/acs-core-docs/www/openacs-overview.html 2 Feb 2004 18:10:52 -0000 1.13.2.5 @@ -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 -r1.8.2.7 -r1.8.2.8 --- openacs-4/packages/acs-core-docs/www/openacs-unpack.html 21 Jan 2004 18:36:16 -0000 1.8.2.7 +++ openacs-4/packages/acs-core-docs/www/openacs-unpack.html 2 Feb 2004 18:10:52 -0000 1.8.2.8 @@ -1,17 +1,17 @@ -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.0.0.tgz
            -
            cd /tmp
            -tar xzf openacs-5.0.0.tgz

            If you are installing from a different method and just need the configuration files, you can instead get them from CVS:

            [root root]# cd /tmp
            +[root tmp]# tar xzf .tgz
            +cd /tmp
            +tar xzf .tgz

            If you are installing from a different method and just need the configuration files, you can instead get them from CVS:

            [root root]# cd /tmp
             [root tmp]# cvs -d :pserver:anonymous@openacs.org:/cvsroot co openacs-4/packages/acs-core-docs/www/files/
             cvs checkout: warning: failed to open /root/.cvspass for reading: No such file or directory
             cvs server: Updating openacs-4/packages/acs-core-docs/www/files
             U openacs-4/packages/acs-core-docs/www/files/README.TXT
             (many lines omitted)
             U openacs-4/packages/acs-core-docs/www/files/template-ini.ini
             U openacs-4/packages/acs-core-docs/www/files/winnsd.txt
            -[root tmp]# mv openacs-4 openacs-5.0.0
            -
            cd /tmp
            +[root tmp]# mv openacs-4 
            +cd /tmp
             cvs -d :pserver:anonymous@openacs.org:/cvsroot co openacs-4/packages/acs-core-docs/www/files/
            -mv openacs-4 openacs-5.0.0a4
            View comments on this page at openacs.org
            +mv openacs-4 openacs-5.0.0a4
            View comments on this page at openacs.org
            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 -r1.22.2.11 -r1.22.2.12 --- openacs-4/packages/acs-core-docs/www/openacs.html 29 Jan 2004 10:43:05 -0000 1.22.2.11 +++ openacs-4/packages/acs-core-docs/www/openacs.html 2 Feb 2004 18:10:52 -0000 1.22.2.12 @@ -1,7 +1,7 @@ -Install OpenACS

            Install OpenACS

            by Vinod Kurup


            +Install OpenACS

            Install OpenACS

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

            Set up the file system for one or more OpenACS Sites

            For Linux Standard Base compliance and ease of backup, all of the files in each OpenACS site are stored in a subdirectory of /var/lib/aolserver, one @@ -10,9 +10,9 @@ [root root]# chgrp web /var/lib/aolserver [root root]# chmod 770 /var/lib/aolserver [root root]# -

            mkdir /var/lib/aolserver
            +mkdir /var/lib/aolserver
             chgrp web /var/lib/aolserver
            -chmod 770 /var/lib/aolserver

            Set up a user account for each site.

            +chmod 770 /var/lib/aolserver

            Set up a user account for each site.

            AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. It's @@ -80,12 +80,12 @@ [service0 aolserver]$ exit logout [root root]# -

            su - service0
            +su - service0
             cd /var/lib/aolserver
             tar xzf /tmp/.tgz
             mv  service0
             chmod -R 700 service0/
            -exit
          • Add the Service to CVS (OPTIONAL)

          • Prepare the database

            • Prepare Oracle for OpenACS.�If you won't be using Oracle, skip to Prepare PostgreSQL for an OpenACS Service

              +exit

            • Add the Service to CVS (OPTIONAL)

            • Prepare the database

              • Prepare Oracle for OpenACS.�If you won't be using Oracle, skip to Prepare PostgreSQL for an OpenACS Service

                You should be sure that your user account (e.g. service0) is in the dba group. @@ -217,16 +217,16 @@ [service0 service0]$ createdb -E UNICODE service0 CREATE DATABASE [service0 service0]$ -

                su - service0
                -createdb -E UNICODE service0
              • 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.

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

                Add this line to the file. 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.

                0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze service0
                +su - service0
                +createdb -E UNICODE service0
              • 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.

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

                Add this line to the file. 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.

                0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze service0
                 0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze service0
              • Add Full Text Search Support (OPTIONAL)

              • At this point the database should be ready for installing OpenACS.

          • Configure an AOLserver Service for OpenACS.�

            1. The AOLserver architecture lets you run an arbitrary number of virtual servers. A virtual server is an HTTP service running on a specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/service0/etc/config.tcl. - Open it in an editor to adjust the parameters.

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

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

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

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

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

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

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

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

            7. Set up database environment variables for the site user. These settings are 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/oracle.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/oracle.html 2 Feb 2004 18:10:53 -0000 1.22.2.11 @@ -1,10 +1,10 @@ -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. -

              Note

              +

              Note

              Skip this section if you're not interested in Oracle.

              - OpenACS 5.0.0 will install with Oracle 9i but has not been extensively tested so may still have bugs or tuning issues. + OpenACS will install with Oracle 9i but has not been extensively tested so may still have bugs or tuning issues.

              This document assumes that you'll be installing Oracle on the same 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 -r1.2.2.4 -r1.2.2.5 --- openacs-4/packages/acs-core-docs/www/os-install.html 11 Jan 2004 12:45:46 -0000 1.2.2.4 +++ openacs-4/packages/acs-core-docs/www/os-install.html 2 Feb 2004 18:10:53 -0000 1.2.2.5 @@ -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 -r1.2.2.4 -r1.2.2.5 --- openacs-4/packages/acs-core-docs/www/os-security.html 11 Jan 2004 12:45:46 -0000 1.2.2.4 +++ openacs-4/packages/acs-core-docs/www/os-security.html 2 Feb 2004 18:10:53 -0000 1.2.2.5 @@ -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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/packages.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/packages.html 2 Feb 2004 18:10:53 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

                +

                Overview

                This document is a guide on how to write a software package for OpenACS. OpenACS packages are installed and maintained with the OpenACS Package Manager (APM). This document presents reasons @@ -56,7 +56,7 @@ the pieces of each module are strewn all over the tree in at least 3 or 4 different areas.

                - Here is how an OpenACS 5.0.0 server is laid out: + Here is how an OpenACS server is laid out:

                 ROOT/
                     bin/
                @@ -123,7 +123,7 @@
                       sends to our server to the right page in the appropriate
                       package. While we're at it, this tool should also automate
                       package installation, dependency checking, upgrades, and package
                -      removal. In OpenACS 5.0.0, this tool is called the APM.
                +      removal. In OpenACS , this tool is called the APM.
                     

                The APM

                The APM is used to create, maintain, and install packages. It takes care of copying all of the files and registering the package in the @@ -145,7 +145,7 @@

                The following sections will show you how to make a package for the Notes application. In addition, they will discuss some new site - management features in OpenACS 5.0.0 that take advantage of the APM's package + management features in OpenACS that take advantage of the APM's package instance model. The two most important of these are subsites, and the site map tool, which can be used to map applications to one or more arbitrary URLs in a running site. @@ -433,7 +433,7 @@ map content that lived outside the page root into the site, and it was also hard to map mulitiple URLs to the same place in the file system.

                - In OpenACS 5.0.0, administrators can define an arbitrary mapping between the + In OpenACS , administrators can define an arbitrary mapping between the URLs the user types and the actual file in the file system that is served. This mapping is called the site map and entries in the site map are called site nodes. Each site node maps a URL to an 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/parties.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/parties.html 2 Feb 2004 18:10:53 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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 +

                Introduction

                While many applications must deal with individuals and many applications must deal with groups, most applications must deal with individuals or groups. It is often the case with such applications that in many respects both individuals and groups are treated in an identical manner. It 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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/permissions-design.html 11 Jan 2004 12:45:46 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/permissions-design.html 2 Feb 2004 18:10:53 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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

                Essentials

                Introduction

                The goal of the Permissions system is to provide generic means to both 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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/permissions-requirements.html 11 Jan 2004 12:45:46 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/permissions-requirements.html 2 Feb 2004 18:10:53 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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 +

                Introduction

                This document records requirements for the OpenACS 4 Permissions system, a component of the OpenACS 4 Kernel. The Permissions system is meant to unify and centralize the handling of access and control on a given OpenACS 4 system.

                Vision Statement

                Any multi-user software system must address the general problem of permissions, or "who can do what, on what." On web services, which 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 -r1.16.2.10 -r1.16.2.11 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 21 Jan 2004 18:36:16 -0000 1.16.2.10 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 2 Feb 2004 18:10:54 -0000 1.16.2.11 @@ -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�8.1.�Context Hierarchy Example

                A

                +

                Table�8.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�8.2.�acs_objects example data

                object_idcontext_id
                2010
                3010
                4020
                5020
                6030

                +

                Table�8.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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/permissions.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/permissions.html 2 Feb 2004 18:10:53 -0000 1.22.2.11 @@ -1,8 +1,8 @@ -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

                -The OpenACS 5.0.0 Permissions system allows developers and administrators to +

                Overview

                +The OpenACS Permissions system allows developers and administrators to set access control policies at the object level, that is, any application or system object represented by a row in the acs_objects table can be access-controlled via a simple @@ -13,7 +13,7 @@ Although this may all sound easy and wonderful, no developer or administrator would want to explicitly set access control rights for every user and every object on a -site. Therefore, OpenACS 5.0.0 has two auxiliary mechanisms for making this +site. Therefore, OpenACS has two auxiliary mechanisms for making this easier: First, the Groups system allows users to be grouped together in flexible ways. Second, the object model defines a notion of object context, which allows applications to group objects @@ -25,7 +25,7 @@ define simple groupings of users. Each group had a human readable name and unique ID, and there was a single mapping table that mapped users to groups. (The actual data model was more complicated because it -contained a meta-data system much like the OpenACS 5.0.0 object type system, +contained a meta-data system much like the OpenACS object type system, but that's not relevant right now.)

                The 3.x groups system, while very useful, was limited in few ways. The @@ -47,7 +47,7 @@ member of Greenpeace, its members are not necessarily members of Greenpeace.

                -OpenACS 5.0.0 solves both of these modeling problems by introducing a new +OpenACS solves both of these modeling problems by introducing a new abstraction called a party. Parties have a recursive definition, and we can illustrate how it works with the following simplified data model. First, we define the parties @@ -113,18 +113,18 @@ already know what parties and objects are, but we don't know what privileges are.

                -In OpenACS 5.0.0, a privilege models the right to perform some operation on +In OpenACS , a privilege models the right to perform some operation on some object. They are the basic units out of which we build access control policies. For example, in the Unix filesystem we typically implement access control by granting users some combination of -read. write or execute privileges on files and directories. In OpenACS 5.0.0, +read. write or execute privileges on files and directories. In OpenACS , the table of privileges is organized hierarchically so that developers can define privileges that aggregate some set of privileges together. For example, if we have read, write, create and delete privileges, it might be convenient to combine them into a new privilege called "admin". Then if we grant a user this privilege she is automatically granted all the child privileges that the privilege -contains. The OpenACS 5.0.0 kernel data model actually defines these +contains. The OpenACS kernel data model actually defines these privileges as follows:

                 
                @@ -164,7 +164,7 @@
                 permissions to large groups of objects in the site, all at once. We
                 use contexts to achieve this goal.
                 

                Object Context

                -In OpenACS 5.0.0, an object context is a generalization of the scoping +In OpenACS , an object context is a generalization of the scoping mechanism introduced in OpenACS 3.x. "Scoping" and "scope" are terms best explained by example: consider some hypothetical rows in the address_book table: @@ -179,7 +179,7 @@ person or a group of people or the general public (itself a group of people).

                -In OpenACS 5.0.0, rather than breaking the world into a limited set of scopes, +In OpenACS , rather than breaking the world into a limited set of scopes, every object lives in a single context. A context is just an another object that represents the security domain to which the object belongs. By convention, if an object A doesn't have any permissions @@ -196,7 +196,7 @@ application. With only row-level permissions it is not obvious how to reasonably initialize the access control list when creating a message. At best, we have to explicitly grant various read and write -privileges whenever we create a message, which is tedious. In OpenACS 5.0.0, +privileges whenever we create a message, which is tedious. In OpenACS , a reasonable thing to do is to create an object representing a forum, and point the context_id field of a new message at the forum. Then, suppose we grant every user in the system read-access to @@ -328,7 +328,7 @@

                This displays the title of the note as either a link or plain text depending on whether or not we have write privileges on the object. -The if tag is something that the OpenACS 5.0.0 template system +The if tag is something that the OpenACS template system defines for you to support conditional presentation. The templates developer guide provides more information about this.

                If you study the rest of the system, you will also notice that the @@ -342,7 +342,7 @@ permissions to notes that she wanted to make public or whatever. But that's beyond the scope of this example.

                Summary

                -OpenACS 5.0.0 defines three separate mechanisms for specifying access control +OpenACS defines three separate mechanisms for specifying access control in applications. The Groups data model allows you to define hierarchical organizations of users and groups of users. The Permissions data model allows you to define a hierarchy of user rights. Finally, 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 -r1.21.2.10 -r1.21.2.11 --- openacs-4/packages/acs-core-docs/www/postgres.html 21 Jan 2004 18:36:16 -0000 1.21.2.10 +++ openacs-4/packages/acs-core-docs/www/postgres.html 2 Feb 2004 18:10:54 -0000 1.21.2.11 @@ -1,7 +1,7 @@ -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.0.0 will run with PostgreSQL 7.2.x, 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.

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

                • Debian.�

                  Debian users can install the package and add some backwards-compatibility links:

                  apt-get install postgresql postgresql-dev postgresql-doc
                  +        

                Skip this section if you will run only Oracle.

                OpenACS will run with PostgreSQL 7.2.x, 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.

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

                • Debian.�

                  Debian users, especially Debian stable users, should install PostGreSQL from source as detailed below. Debian unstable users: the following process has been known to work:

                  apt-get install postgresql postgresql-dev postgresql-doc
                   ln -s /usr/include/postgresql/ /usr/include/pgsql
                   ln -s /var/lib/postgres /usr/local/pgsql
                   ln -s /usr/include/pgsql /usr/local/pgsql/include
                  @@ -23,21 +23,21 @@
                   [root root]# groupadd web
                   [root root]# su - postgres
                   -bash-2.05b$
                  -
                  
                  +
                   ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
                   ln -s /var/lib/pgsql /usr/local/pgsql
                   ln -s /usr/bin /usr/local/pgsql/bin
                   service postgresql start
                   echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile
                   echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile
                   groupadd web
                  -su - postgres

                  ... and then skip to 6. Something similar may work for other binary packages as well.

                1. Unpack PostgreSQL.�If you have not downloaded the postgresql tarball to +su - postgres

                  ... and then skip to 6. Something similar may work for other binary packages as well.

                1. Unpack PostgreSQL.�If you have not downloaded the postgresql tarball to /tmp/postgresql-7.3.4.tar.gz, get it.

                  [root root]# cd /usr/local/src
                   [root src]# tar xzf /tmp/postgresql-7.3.4.tar.gz
                   [root src]# 
                  -
                  cd /usr/local/src
                  -tar xzf /tmp/postgresql-7.3.4.tar.gz
                2. Create the Postgres user.� +cd /usr/local/src +tar xzf /tmp/postgresql-7.3.4.tar.gz

                3. Create the Postgres user.� Create a user and group (if you haven't done so before) for PostgreSQL. This is the account that PostgreSQL will run as since it will not run as root. Since nobody will log in @@ -48,11 +48,11 @@ [root src]# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.3.4 [root src]# chmod 750 /usr/local/pgsql [root src]# -

                  groupadd web
                  +groupadd web
                   useradd -g web -d /usr/local/pgsql postgres
                   mkdir -p /usr/local/pgsql
                   chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.3.4
                  -chmod 750 /usr/local/pgsql
                  • Mac OS X: Do instead:

                    sudo niutil -create / /groups/web
                    +chmod 750 /usr/local/pgsql
                    • Mac OS X: Do instead:

                      sudo niutil -create / /groups/web
                       sudo niutil - list / /groups

                      The second command returns a list of groups. The last entry should include the gid of the group web, which you will need in the next sequence:

                      sudo niutil -create / /users/postgres
                       sudo niutil -createprop / /users/postgres gid web's gid_number
                       sudo niutil -createprop / /users/postgres home /usr/local/pgsql
                      @@ -73,7 +73,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.
                       	

                      [root src]# su - postgres
                       [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4
                       [postgres postgresql-7.3.4]$ ./configure
                      @@ -94,11 +94,11 @@
                       (many lines omitted)
                       Thank you for choosing PostgreSQL, the most advanced open source database
                       engine.
                      -
                      su - postgres
                      +su - postgres
                       cd /usr/local/src/postgresql-7.3.4
                       ./configure
                       make all
                      -make install
                    • Start PostgreSQL.� +make install

                    • Start PostgreSQL.� The initdb command initializes the database. pg_ctl is used to start up PostgreSQL. @@ -111,8 +111,8 @@ [postgres tsearch]$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/server.log start postmaster successfully started [postgres tsearch]$ -

                      /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
                      -/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/server.log start

                      +/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data +/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/server.log start

                      PostgreSQL errors will be logged in /usr/local/pgsql/data/server.log

                    • Install Pl/pgSQL.�Set up plpgsq and allow your user to have @@ -128,8 +128,8 @@ (1 row) [postgres pgsql]$ -

                      createlang plpgsql template1
                      -createlang -l template1
                    • Test PostgreSQL (OPTIONAL).�Create a database and try some simple commands. The output should be as shown. +createlang plpgsql template1 +createlang -l template1

                    • Test PostgreSQL (OPTIONAL).�Create a database and try some simple commands. The output should be as shown.

                      [postgres pgsql]$ createdb mytestdb
                       CREATE DATABASE
                       [postgres pgsql]$ psql mytestdb
                      @@ -170,13 +170,13 @@
                               state. Red Hat and Debian and SuSE each work a little
                               differently.
                       	

                      • Red Hat RPM:

                        The init script is already installed; just turn it on for the appropriate run levels.

                        [root root]# chkconfig --level 345 postgresql on
                        -[root root]# 
                      • Red Hat from source:

                        [root src]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                        +[root root]# 
                      • Red Hat from source:

                        [root src]# cp /tmp//packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                         [root src]# chown root.root /etc/rc.d/init.d/postgresql
                         [root src]# chmod 755 /etc/rc.d/init.d/postgresql
                         [root src]# 
                        -
                        cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                        +cp /tmp//packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                         chown root.root /etc/rc.d/init.d/postgresql
                        -chmod 755 /etc/rc.d/init.d/postgresql

                        Test the script.

                        [root root]# service postgresql stop
                        +chmod 755 /etc/rc.d/init.d/postgresql

                        Test the script.

                        [root root]# service postgresql stop
                         Stopping PostgreSQL: ok
                         [root root]# 

                        If PostgreSQL successfully stopped, then use the following command to make sure that the script is run appropriately at boot @@ -190,16 +190,16 @@ [root root]# service postgresql start Starting PostgreSQL: ok [root root]# -

                        chkconfig --add postgresql
                        +chkconfig --add postgresql
                         chkconfig --level 345 postgresql on
                         chkconfig --list postgresql
                        -service postgresql start
                    • Debian:

                      [root ~]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                      +service postgresql start
                    • Debian:

                      [root ~]# cp /tmp//packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                       [root ~]# chown root.root /etc/init.d/postgresql
                       [root ~]# chmod 755 /etc/init.d/postgresql
                      -[root ~]# 
                      
                      -cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                      +[root ~]# 
                      +cp /tmp//packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
                       chown root.root /etc/init.d/postgresql
                      -chmod 755 /etc/init.d/postgresql

                      Test the script

                      [root ~]# /etc/init.d/postgresql stop
                      +chmod 755 /etc/init.d/postgresql

                      Test the script

                      [root ~]# /etc/init.d/postgresql stop
                       Stopping PostgreSQL: ok
                       [root ~]# 

                      If PostgreSQL successfully stopped, then use the following command to make sure that the script is run @@ -225,7 +225,7 @@ rc.d/ part in each of the following commands. -

                    [root ~]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql
                    +          

                  [root ~]# cp /tmp//packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql
                   [root ~]# chown root.root /etc/rc.d/init.d/postgresql
                   [root ~]# chmod 755 /etc/rc.d/init.d/postgresql

                  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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 2 Feb 2004 18:10:54 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

                  +

                  The global command

                  When using AOLserver, remember that there are effectively two types of global namespace, not one:

                  1. Server-global: As you'd expect, there is 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 -r1.13.2.10 -r1.13.2.11 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 21 Jan 2004 18:36:16 -0000 1.13.2.10 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 2 Feb 2004 18:10:54 -0000 1.13.2.11 @@ -1,8 +1,8 @@ -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 fixes the backspace -> help mis-mapping that often occurs in - terminals.

                    [root tmp]# cp /tmp/openacs-5.0.0/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs
                    +      terminals.

                    [root tmp]# cp /tmp//packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs
                     cp: overwrite `/etc/skel/.emacs'? y
                    -[root tmp]# 

                    Debian users:

                    apt-get install psgml

                    Note: The new nxml mode for emacs, when used in combination with psgml, provides a pretty good set of functionality that makes DocBook editing much less painless. In particular, nxml does syntax testing in real-time so that you can see syntax errors immediately instead of in the output of the xsltproc hours or days later. For debian, apt-get install nxml.

                    View comments on this page at openacs.org
                    +[root tmp]#

                    Debian users:

                    apt-get install psgml

                    Note: The new nxml mode for emacs, when used in combination with psgml, provides a pretty good set of functionality that makes DocBook editing much less painless. In particular, nxml does syntax testing in real-time so that you can see syntax errors immediately instead of in the output of the xsltproc hours or days later. For debian, apt-get install nxml.

                    View comments on this page at openacs.org
                    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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/psgml-mode.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/psgml-mode.html 2 Feb 2004 18:10:55 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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 +

                    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 can parse a DTD and help you insert the right tags in the right place, knows about tags' attributes and can tell you in which contexts a tag can be used. If you give it the right DTD, that is. But even without a DTD, 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 -r1.26.2.11 -r1.26.2.12 --- openacs-4/packages/acs-core-docs/www/release-notes.html 21 Jan 2004 18:36:16 -0000 1.26.2.11 +++ openacs-4/packages/acs-core-docs/www/release-notes.html 2 Feb 2004 18:10:55 -0000 1.26.2.12 @@ -1,4 +1,4 @@ -OpenACS Release Notes

                    OpenACS Release Notes

                    Version 5.0.0

                    +OpenACS Release Notes

                    OpenACS Release Notes

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

                    Please report bugs using our @@ -7,7 +7,7 @@

                    You may want to begin by reading our installation documentation for the section called “a Unix-like system”. Note that the Windows documentation is - not current for OpenACS 5.0.0, but an alternative is to use John + not current for OpenACS , but an alternative is to use John Sequeira's Oasis VM project.

                    @@ -95,4 +95,4 @@

                  2. 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.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs.html,v diff -u -r1.6.2.9 -r1.6.2.10 --- openacs-4/packages/acs-core-docs/www/releasing-openacs.html 21 Jan 2004 18:36:16 -0000 1.6.2.9 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs.html 2 Feb 2004 18:10:55 -0000 1.6.2.10 @@ -1,49 +1,49 @@ -Appendix�E.�How to package and release OpenACS

                Appendix�E.�How to package and release OpenACS

                1. Update documentation version numbers:

                  1. Update /packages/acs-core-docs/www/xml/variables.ent with the new version number and regenerate all HTML docs +Appendix�E.�How to package and release OpenACS

                    Appendix�E.�How to package and release OpenACS

                    1. Update documentation version numbers:

                      1. Update /packages/acs-core-docs/www/xml/variables.ent with the new version number and regenerate all HTML docs

                      2. Update /readme.txt with the new version number

                      3. Commit changes

                    2. Check out the whole cvs tree. The files must be checked out through a cvs account with write access and should be a checkout from the release branch. In this example, we are assuming this is being done as a local user on openacs.org (which make the - checkout and tagging operations much faster).

                      cd /var/tmp
                      -cvs -d /cvsroot checkout -r oacs-5-0 openacs-4

                      Repeat with the dotlrn cvs tree.

                      cd /var/tmp
                      +          checkout and tagging operations much faster).

                      cd /var/tmp
                      +cvs -d /cvsroot checkout -r oacs-5-0 openacs-4

                      Repeat with the dotlrn cvs tree.

                      cd /var/tmp
                       mkdir dotlrn-packages
                       cd dotlrn-packages
                       cvs -d /dotlrn-cvsroot checkout -r dotlrn-2-0 dotlrn-all
                      -
                    3. Tag the tree.

                      cd /var/tmp/openacs-4
                      +
                    4. Tag the tree.

                      cd /var/tmp/openacs-4
                       cvs tag -F openacs-5-0-0a1
                      -

                      Note that we use the

                      -F

                      flag which will force the tag to the new version (just in +

                      Note that we use the -F flag which will force the tag to the new version (just in case someone has created the tag already on another version). Excercise care when doing this since you don't want to inadvertently move a prior release tag. Also if the tagging goes horribly wrong for some reason you can delete the tag via "cvs tag -d <symbolic_tag>".

                      Tag dotLRN. Since the dotLRN packages aren't all in one module, we iterate through all of the modules. Log in first (cvs login) so that you don't have to log in for each - module.

                      cd /var/tmp/dotlrn-packages
                      +          module.

                      cd /var/tmp/dotlrn-packages
                       for dir in *; do ( cd $dir && cvs tag -F dotlrn-2-0-0a1 ); done
                      -
                    5. Make the tarball

                      • openacs-core.�

                        1. Go to a new working space and export the tagged files.

                          mkdir /var/tmp/tarball
                          +
                        2. Make the tarball

                          • openacs-core.�

                            1. Go to a new working space and export the tagged files.

                              mkdir /var/tmp/tarball
                               cd /var/tmp/tarball
                               cvs -d /cvsroot export -r openacs-5-0-0a1 acs-core
                              -
                            2. Generate the tarball.

                              cd /var/tmp/tarball
                              +
                            3. Generate the tarball.

                              cd /var/tmp/tarball
                               mv openacs-4 openacs-5.0.0a1
                               tar cz -f openacs-5.0.0a1.tar.gz openacs-5.0.0a1
                              -
                          • dotlrn.�

                            1. Go to a new working space and export the tagged +

                          • dotlrn.�

                            1. Go to a new working space and export the tagged files. (was getting errors here trying to use -d, so gave up and just moved things from openacs-4 to - openacs at the end)

                              mkdir /var/tmp/dotlrn-tarball
                              +                openacs at the end)

                              mkdir /var/tmp/dotlrn-tarball
                               cd /var/tmp/dotlrn-tarball
                               cvs -d /cvsroot export -r openacs-5-0-0a1 acs-core
                               cd /var/tmp/dotlrn-tarball/openacs-4/packages
                               cvs -d /cvsroot export -r openacs-5-0-0a1 dotlrn-prereq
                               cvs -d /dotlrn-cvsroot export -r dotlrn-2-0-0a1 dotlrn-core
                              -
                            2. Copy the dotlrn install.xml file, which controls +

                            3. Copy the dotlrn install.xml file, which controls which packages are installed on setup, to the root - location:

                              cp /var/tmp/dotlrn-tarball/openacs-4/packages/dotlrn/install.xml \
                              +                location:

                              cp /var/tmp/dotlrn-tarball/openacs-4/packages/dotlrn/install.xml \
                                  /var/tmp/dotlrn-tarball/openacs-4
                              -
                            4. Generate the tarball

                              cd /var/tmp/dotlrn-tarball
                              +
                            5. Generate the tarball

                              cd /var/tmp/dotlrn-tarball
                               mv openacs-4 dotlrn-2.0.0a1
                               tar cz -f dotlrn-2.0.0a1.tar.gz dotlrn-2.0.0a1
                              -
                        3. Test the new tarball

                        4. Update openacs.org frontpage, bug-tracker versions, project page, etc.

                        5. Clean up after yourself.

                          cd /var/tmp
                          -rm -rf tarball dotlrn-tarball dotlrn-packages openacs-5.0.0a1

                        +

                2. Test the new tarball

                3. Update openacs.org frontpage, bug-tracker versions, project page, etc.

                4. Clean up after yourself.

                  cd /var/tmp
                  +rm -rf tarball dotlrn-tarball dotlrn-packages openacs-5.0.0a1

                Here is a shell script that automates this whole process...

                #!/bin/bash
                 
                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 -r1.22.2.10 -r1.22.2.11
                --- openacs-4/packages/acs-core-docs/www/request-processor.html	21 Jan 2004 18:36:16 -0000	1.22.2.10
                +++ openacs-4/packages/acs-core-docs/www/request-processor.html	2 Feb 2004 18:10:55 -0000	1.22.2.11
                @@ -1,12 +1,12 @@
                -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

                -This document is a brief introduction to the OpenACS 5.0.0 Request Processor; +

                Overview

                +This document is a brief introduction to the OpenACS Request Processor; more details can be found in the OpenACS 4 Request Processor Design. Here we cover the high level concepts behind the system, and implications and usage for the application developer.

                Request Processor

                -The 5.0.0 Request Processor is a global filter and set of Tcl procs that +The Request Processor is a global filter and set of Tcl procs that respond to every incoming URL reaching the server. The following diagram summarizes the stages of the request processor assuming a URL request like http://someserver.com/notes/somepage.adp. @@ -35,7 +35,7 @@ extracts or sets up new session tokens for the user.

                Stage 3: Authorization

                Next, the Request Processor checks if the user has appropriate access -privileges to the requested part of the site. In OpenACS 5.0.0, access control +privileges to the requested part of the site. In OpenACS , access control is dictated by the permissions system. In this case, the RP checks if the user has "read" priviledges on the object in the site map specified by the URL. This object is typically 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/requirements-template.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/requirements-template.html 2 Feb 2004 18:10:55 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

                +

                Introduction

                Briefly explain to the reader what this document is for, whether it records the requirements for a new system, a client application, a toolkit subsystem, etc. Remember your audience: fellow programmers, 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 -r1.16.2.4 -r1.16.2.5 --- openacs-4/packages/acs-core-docs/www/rp-design.html 11 Jan 2004 12:45:47 -0000 1.16.2.4 +++ openacs-4/packages/acs-core-docs/www/rp-design.html 2 Feb 2004 18:10:55 -0000 1.16.2.5 @@ -1,7 +1,7 @@ -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

                Essentials

                • OpenACS 4 Request Processor Requirements

                • /packages/acs-tcl/tcl/request-processor-procs.tcl

                • /packages/acs-tcl/tcl/request-processor-init.tcl

                • /packages/acs-tcl/tcl/site-nodes-procs.tcl

                • 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 -r1.14.2.4 -r1.14.2.5 --- openacs-4/packages/acs-core-docs/www/rp-requirements.html 11 Jan 2004 12:45:47 -0000 1.14.2.4 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.html 2 Feb 2004 18:10:55 -0000 1.14.2.5 @@ -1,7 +1,7 @@ -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 +

                  Introduction

                  The following is a requirements document for the OpenACS 4.0 request processor. The major enhancements in the 4.0 version include a more sophisticated directory mapping system that allows package pageroots to be mounted at arbitrary urls, and tighter integration with the database to allow 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 -r1.16.2.4 -r1.16.2.5 --- openacs-4/packages/acs-core-docs/www/security-design.html 11 Jan 2004 12:45:47 -0000 1.16.2.4 +++ openacs-4/packages/acs-core-docs/www/security-design.html 2 Feb 2004 18:10:56 -0000 1.16.2.5 @@ -1,7 +1,7 @@ -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

                  +

                  Introduction

                  This document explains security model design for OpenACS 4. The security system with the OpenACS core must authenticate users in both secure and insecure environments. In addition, this subsystem provides sessions on top of the 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/security-notes.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/security-notes.html 2 Feb 2004 18:10:56 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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. -

                  +

                  The security system was designed for security. Thus, decisions requiring trade-offs between ease-of-use and security tend to result in a system that may not be as easy to use but is more secure. 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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/security-requirements.html 11 Jan 2004 12:45:48 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/security-requirements.html 2 Feb 2004 18:10:56 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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

                  +

                  Introduction

                  This document lists the requirements for the security system for the OpenACS.

                  Vision Statement

                  Virtually all web sites support personalized content based on user identity. 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 -r1.1.2.9 -r1.1.2.10 --- openacs-4/packages/acs-core-docs/www/style-guide.html 21 Jan 2004 18:36:16 -0000 1.1.2.9 +++ openacs-4/packages/acs-core-docs/www/style-guide.html 2 Feb 2004 18:10:56 -0000 1.1.2.10 @@ -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 -r1.16.2.4 -r1.16.2.5 --- openacs-4/packages/acs-core-docs/www/subsites-design.html 11 Jan 2004 12:45:48 -0000 1.16.2.4 +++ openacs-4/packages/acs-core-docs/www/subsites-design.html 2 Feb 2004 18:10:56 -0000 1.16.2.5 @@ -1,7 +1,7 @@ -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 +

                  *Note* This document has not gone through the any of the required QA process yet. It is being tagged as stable due to high demand.

                  Introduction

                  An OpenACS 4 subsite is a managed suite of applications that work together for a particular user community. This definition covers a very broad range of 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 -r1.15.2.4 -r1.15.2.5 --- openacs-4/packages/acs-core-docs/www/subsites-requirements.html 11 Jan 2004 12:45:48 -0000 1.15.2.4 +++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html 2 Feb 2004 18:10:56 -0000 1.15.2.5 @@ -1,7 +1,7 @@ -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 +

                  Introduction

                  The following is a requirements document for OpenACS 4 Subsites, part of the OpenACS 4 Kernel. The Subsites system allows one OpenACS server instance to serve multiple user communities, by enabling the suite of available OpenACS applications to be customized for defined user communities.

                  Vision Statement

                  Many online communities are also collections of discrete subcommunities, 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 -r1.22.2.10 -r1.22.2.11 --- openacs-4/packages/acs-core-docs/www/subsites.html 21 Jan 2004 18:36:16 -0000 1.22.2.10 +++ openacs-4/packages/acs-core-docs/www/subsites.html 2 Feb 2004 18:10:56 -0000 1.22.2.11 @@ -1,7 +1,7 @@ -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

                  +

                  Overview

                  In this document, we'll examine the user interface pages of the Notes application in more detail, covering two separate aspects of page development in OpenACS. First, we'll talk about the code needed to make @@ -253,15 +253,15 @@ visible to that user. The end result is a site where users can come and write notes to themselves.

                  -This is a good example of the leverage available in the OpenACS 5.0.0 +This is a good example of the leverage available in the OpenACS system. The code that we have written for Notes is not at all more complex than a similar application without access control or site map awareness. By adding a small amount of code, we have taken a small, simple, and special purpose application to something that has the potential to be a very useful, general-purpose tool, complete with multi-user features, access control, and centralized administration.

                  Summary

                  -In OpenACS 5.0.0, application pages and scripts can be aware of the package +In OpenACS , application pages and scripts can be aware of the package instance, or subsite in which they are executing. This is a powerful general purpose mechanism that can be used to structure web services in very flexible ways. 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 -r1.23.2.10 -r1.23.2.11 --- openacs-4/packages/acs-core-docs/www/tcl-doc.html 21 Jan 2004 18:36:16 -0000 1.23.2.10 +++ openacs-4/packages/acs-core-docs/www/tcl-doc.html 2 Feb 2004 18:10:56 -0000 1.23.2.11 @@ -1,7 +1,7 @@ -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 +

                  The Big Picture

                  In versions of the OpenACS prior to 3.4, the standard place to document Tcl files (both Tcl pages and Tcl library files) was in a comment at the top of the file:

                   #
                  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 -r1.22.2.10 -r1.22.2.11
                  --- openacs-4/packages/acs-core-docs/www/templates.html	21 Jan 2004 18:36:16 -0000	1.22.2.10
                  +++ openacs-4/packages/acs-core-docs/www/templates.html	2 Feb 2004 18:10:57 -0000	1.22.2.11
                  @@ -1,7 +1,7 @@
                  -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

                  +

                  Overview

                  The OpenACS Template System (ATS) is designed to allow developers to cleanly separate application logic from display logic. The intent is to have all of the logic related to 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 -r1.14.2.11 -r1.14.2.12 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 21 Jan 2004 18:36:16 -0000 1.14.2.11 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 2 Feb 2004 18:10:57 -0000 1.14.2.12 @@ -1,32 +1,27 @@ -Advanced Topics

                  Advanced Topics

                  Important

                  This section is a work in progress.

                  by Joel Aufrecht


                  +Advanced Topics

                  Advanced Topics

                  by Joel Aufrecht

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

                  Overview

                  This tutorial covers topics which are not essential to +

                  This tutorial covers topics which are not essential to creating a minimal working package. Each section can be used independently of all of the others; all sections assume that - you've completed the basic tutorial.

                  • 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 make your package send email notifications

                  • How to prepare pagelets for inclusion in other pages

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

                  • How to add general_comments to your pages

                  • More on ad_form - data validation, other stuff. - (plan to draw from Jon Griffin's doc)

                  • How and when to implement caching

                  • partialquery in xql

                  • How to use the html/text entry widget to get the - "does this look right" confirm page

                  • APM package dependencies

                  Write the Requirements and Design Specs

                  It's time to document. For the tutorial we'll use + you've completed the basic tutorial.

                  Write the Requirements and Design Specs

                  It's time to document. For the tutorial we'll use pre-written documentation. When creating a package from scratch, start by copying the documentation template from /var/lib/aolserver/openacs-dev/packages/acs-core-docs/xml/docs/xml/package-documentation-template.xml to - yourpackage/www/docs/xml/index.xml.

                  You then edit that file with emacs to write the + myfirstpackage/www/docs/xml/index.xml.

                  You then edit that file with emacs to write the requirements and design sections, generate the html, and start coding. Store any supporting files, like page maps or schema diagrams, in the www/doc/xml directory, and store png or jpg versions of supporting files in the www/doc directory.

                  For this tutorial, you should instead install the pre-written documentation files for the tutorial app. Log in as service0, create the standard - directories, and copy the prepared documentation:

                  [service0@yourserver service0]$ cd /var/lib/aolserver/service0/packages/samplenote/
                  -[service0@yourserver samplenote]$ mkdir -p www/doc/xml
                  -[service0@yourserver samplenote]$ cd www/doc/xml
                  -[service0@yourserver xml]$ cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/samplenote/* .
                  -[service0@yourserver xml]$

                  OpenACS uses DocBook for documentation. DocBook is + directories, and copy the prepared documentation:

                  [service0 service0]$ cd /var/lib/aolserver/service0/packages/myfirstpackage/
                  +[service0 myfirstpackage]$ mkdir -p www/doc/xml
                  +[service0 myfirstpackage]$ cd www/doc/xml
                  +[service0 xml]$ cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/myfirstpackage/* .
                  +[service0 xml]$

                  OpenACS uses DocBook for documentation. DocBook is an XML standard for semantic markup of documentation. That means that the tags you use indicate meaning, not intended appearance. The style sheet will determine appearance. You @@ -42,7 +37,7 @@ is stored in the www/docs/ directory. A Makefile is provided to generate html from the xml, and copy all of the supporting files. If Docbook is set up correctly, all you need - to do is:

                  [service0@yourserver xml]$ make
                  +      to do is:

                  [service0 xml]$ make
                   cd .. ; /usr/bin/xsltproc ../../../acs-core-docs/www/xml/openacs.xsl xml/index.xml
                   Writing requirements-introduction.html for sect1(requirements-introduction)
                   Writing requirements-overview.html for sect1(requirements-overview)
                  @@ -58,25 +53,25 @@
                   Writing admin-guide.html for chapter(admin-guide)
                   Writing bi01.html for bibliography
                   Writing index.html for book
                  -[service0@yourserver xml]$

                  Verify that the documentation was generated and reflects - your changes by browsing to http://yoursite:8000/samplenote/doc

                  Add the new package to CVS

                  Before you do any more work, make sure that your work is +[service0 xml]$

                  Verify that the documentation was generated and reflects + your changes by browsing to http://yoursite:8000/myfirstpackage/doc

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

                  [service0@yourserver xml]$ cd ..
                  -[service0@yourserver doc]$ cd ..
                  -[service0@yourserver www]$ cd ..
                  -[service0@yourserver samplenote]$ cd ..
                  -[service0@yourserver packages]$ cvs add samplenote/
                  -Directory /cvsroot/service0/packages/samplenote added to the repository
                  -[service0@yourserver packages]$ cd samplenote/
                  -[service0@yourserver samplenote]$ cvs add www
                  -Directory /cvsroot/service0/packages/samplenote/www added to the repository
                  -[service0@yourserver samplenote]$ cd www
                  -[service0@yourserver www]$ cvs add doc
                  -Directory /cvsroot/service0/packages/samplenote/www/doc added to the repository
                  -[service0@yourserver www]$ cd doc
                  -[service0@yourserver doc]$ cvs add *
                  +      CVS)

                  [service0 xml]$ cd ..
                  +[service0 doc]$ cd ..
                  +[service0 www]$ cd ..
                  +[service0 myfirstpackage]$ cd ..
                  +[service0 packages]$ cvs add myfirstpackage/
                  +Directory /cvsroot/service0/packages/myfirstpackage added to the repository
                  +[service0 packages]$ cd myfirstpackage/
                  +[service0 myfirstpackage]$ cvs add www
                  +Directory /cvsroot/service0/packages/myfirstpackage/www added to the repository
                  +[service0 myfirstpackage]$ cd www
                  +[service0 www]$ cvs add doc
                  +Directory /cvsroot/service0/packages/myfirstpackage/www/doc added to the repository
                  +[service0 www]$ cd doc
                  +[service0 doc]$ cvs add *
                   cvs add: cannot add special file `CVS'; skipping
                   cvs add: scheduling file `admin-guide.html' for addition
                   cvs add: scheduling file `bi01.html' for addition
                  @@ -99,120 +94,250 @@
                   cvs add: scheduling file `user-guide.html' for addition
                   cvs add: scheduling file `user-interface.dia' for addition
                   cvs add: scheduling file `user-interface.png' for addition
                  -Directory /cvsroot/service0/packages/samplenote/www/doc/xml added to the repository
                  +Directory /cvsroot/service0/packages/myfirstpackage/www/doc/xml added to the repository
                   cvs add: use 'cvs commit' to add these files permanently
                  -[service0@yourserver doc]$ cd xml
                  -[service0@yourserver xml]$ cvs add Makefile index.xml
                  +[service0 doc]$ cd xml
                  +[service0 xml]$ cvs add Makefile index.xml
                   cvs add: scheduling file `Makefile' for addition
                   cvs add: scheduling file `index.xml' for addition
                   cvs add: use 'cvs commit' to add these files permanently
                  -[service0@yourserver xml]$ cd ../../..
                  -[service0@yourserver samplenote]$ cvs commit -m "new package"
                  +[service0 xml]$ cd ../../..
                  +[service0 myfirstpackage]$ cvs commit -m "new package"
                   cvs commit: Examining .
                   cvs commit: Examining www
                   cvs commit: Examining www/doc
                   cvs commit: Examining www/doc/xml
                  -RCS file: /cvsroot/service0/packages/samplenote/www/doc/admin-guide.html,v
                  +RCS file: /cvsroot/service0/packages/myfirstpackage/www/doc/admin-guide.html,v
                   done
                   Checking in www/doc/admin-guide.html;
                  -/cvsroot/service0/packages/samplenote/www/doc/admin-guide.html,v  <--  admin-guide.html
                  +/cvsroot/service0/packages/myfirstpackage/www/doc/admin-guide.html,v  <--  admin-guide.html
                   initial revision: 1.1
                   done
                   (many lines omitted)
                  -[service0@yourserver samplenote]$

                  Delete with confirmation

                  We need a way to delete records. We'll create a - recursive confirmation page.

                  Add this column to the table_def in index.tcl

                  {delete "" {} {<td><a href="note-delete?note_id=$note_id">Delete</a></td>}}

                  Create the delete confirmation/execution page.

                  [service0@yourserver www]$ emacs note-delete.tcl
                  ad_page_contract {
                  -    A page that gets confirmation and then delete notes.
                  +[service0 myfirstpackage]$

                  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 + show them.

                  First, we need to generate a url for adding comments. In note-edit.tcl:

                  + set comment_add_url "[general_comments_package_url]comment-add?[export_vars {
                  +  { object_id $note_id } 
                  +  { object_name $title } 
                  +  { return_url "[ad_conn url]?[ad_conn query]"} 
                  + }]"
                  + 

                  This calls a global, public tcl function that the + general_comments package registered, to get its url. You then + embed in that url the id of the note and its title, and set the + return_url to the current url so that the user can return after + adding a comment.

                  We need to create html that shows any existing comments. + We do this with another general_comments function:

                  set comments_html [general_comments_get_comments
                  +     -print_content_p 1 $note_id]

                  First, we pass in an optional parameter that that says to actually + show the contents of the comments, instead of just the fact that + there are comments. Then you pass the note id, which is also the + acs_object id.

                  We put our two new variables in the note-edit.adp + page.

                  <a href="@comment_add_url@">Add a comment</a>
                  + @comments_html@

                  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. + For example, if admins have privilege to bulk-delete items you + could provide checkboxes next to every item seen on a list and the + Delete Selected button on the bottom of the list. +

                  • Dedicated admin pages. If you want admins to have + access to data that users aren't interested in or aren't allowed + to see you will need dedicated admin pages. The conventional + place to put those dedicated admin pages is in the + /var/lib/aolserver/service0/packages/myfirstpackage/www/admin + directory. +

                    [service0 www]$ mkdir admin
                    [service0 www]$ cd admin

                    + Even if your application doesn't need any admin pages of its own you will + usually need at least one simple page with a bunch of links to existing + administration UI such as Category Management or standard Parameters UI. + Adding the link to Category Management is described in the section on + categories. The listing below adds a link to the Parameters UI of our + package. +

                    [service0 admin]$ vi index.adp
                    +<master>
                    +<property name="title">@title;noquote@</property>
                    +<property name="context">@context;noquote@</property>
                     
                    -    @author joel@aufrecht.org
                    -    @creation-date 2003-02-12
                    -    @cvs-id $Id$
                    -} {
                    -    note_id:integer
                    -    confirm_p:optional
                    +<ul class="action-links">
                    +  <li><a href="@parameters_url@" title="Set parameters" class="action_link">Set parameters</a></li>
                    +</ul>
                    +
                    [service0 admin]$ vi index.tcl
                    +ad_page_contract {} {
                    +} -properties {
                    +    context_bar
                     }
                     
                    -set title "Delete Note"
                    +set package_id [ad_conn package_id]
                     
                    -if {![exists_and_not_null confirm_p]} {
                    -    # first pass, not confirmed.  Display a form for confirmation
                    -    set note_name [db_string get_name { *SQL }]
                    -    set title "Delete $note_name"
                    -    template::form::create note-del-confirm
                    -    template::element::create note-del-confirm note_id -value $note_id -widget hidden
                    -    template::element::create note-del-confirm confirm_p -value 1 -widget hidden
                    -    template::element::create note-del-confirm submit \
                    -      -label "Confirm deletion of $note_name" \
                    -      -widget submit
                    -} else {
                    -    # second pass, confirmed.  Call the database to delete the record
                    -    db_1row do_delete { *SQL* }
                    -    ad_returnredirect "index"
                    +set admin_p [ad_require_permission $package_id admin]
                    +
                    +set context [list]
                    +
                    +set title "Administration"
                    +
                    +set parameters_url [export_vars -base "/shared/parameters" {
                    +  package_id { return_url [ad_return_url] }
                    +}]
                    +
                    +

                    +Now that you have the first admin page it would be nice to have a link to it +somewhere in the system so that admins don't have to type in the +/admin every time they need to reach it. You +could put a static link to the toplevel +index.adp but that might be distracting for +people who are not admins. Besides, some people consider it impolite to first +offer a link and then display a nasty "You don't have permission to access this +page" message. +

                    +In order to display the link to the admin page only to users that have admin +privileges add the following code near the top of +/var/lib/aolserver/service0/packages/myfirstpackage/www/admin/index.tcl: +

                    +
                    +set package_id [ad_conn package_id]
                    +
                    +set admin_p [permission::permission_p -object_id $package_id \
                    +  -privilege admin -party_id [ad_conn untrusted_user_id]]
                    +
                    +if { $admin_p } {
                    +    set admin_url "admin"
                    +    set admin_title Administration
                    +}
                    +

                    +In +/var/lib/aolserver/service0/packages/myfirstpackage/www/admin/index.adp put: +

                    +<if @admin_p@ ne nil>
                    +  <a href="@admin_url@">@admin_title@</a>
                    +</if>
                    +

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

                  + We'll start by installing the Categories service. Go to + /acs/admin and install it. This step + won't be necessary for the users of your applications because you'll create + a dependency with the Package Manager which will take care that the + Categories service always gets installed when your application gets + installed. +

                  + Now that we have installed the Categories service we can proceed to + modifying our application so that it can take advantage of it. We'll do it + in three steps: +

                  1. + The Categories service provides a mechanism to associate one or + more category trees that are relevant to + your application. One example of such tree is a tree of + geographical locations. Continents are on the top of such tree, + each continent containing countries etc. Another tree might + contain market segments etc. Before users of your application + can take advantage of the Categories service there needs to be a + way for administrators of your application to choose which + category trees are applicable for the application. +

                    +

                    +

                    + The way to achieve this is is to provide a link + to the Category Management pages. Add the following snippet to your + /var/lib/aolserver/service0/packages/myfirstpackage/www/admin/index.tcl + file: +

                    +

                    +set category_map_url [export_vars -base \
                    +    "[site_node::get_package_url -package_key categories]cadmin/one-object" \
                    +        { { object_id $package_id } }]
                    +          

                    +

                    + and the following snippet to your + /var/lib/aolserver/service0/packages/myfirstpackage/www/admin/index.adp + file: +

                    +

                    +<li><a href="@category_map_url@"
                    +      class="action_link">Site-Wide Categories</a>
                    +          

                    + The link created by the above code will take the admin to the generic + admin UI where he can pick category trees that make sense for this + application. The same UI also includes facilities to build and edit + category trees. Notice that the only parameter in this example is + package_id so that category trees + will be associated with the object identified by this + package_id. The categorization + service is actually more general than that: instead of + package_id you could use an ID of + some other object that serves as a "container" in your application. + For example, if your discussion forums application supports multiple + forums you would use forum_id to + associate category trees with just that one forum rather than the + entire application instance. +

                  2. + Once the category trees have been selected users need a way + to categorize items. The easiest way to do this is by adding the + category widget type of the + form builder to note-edit.tcl. + To achieve this we'll need to use the -extend + switch to the ad_form command. Here's the "meat" of the + note-edit.tcl page: +

                    +ad_form -name note -form {
                    +    {item_id:key}
                    +    {title:text {label Title}}
                    +}
                    +
                    +set package_id [ad_conn package_id]
                    +
                    +set category_trees [category_tree::get_mapped_trees $package_id]
                    +
                    +foreach tree $category_trees {
                    +    foreach { tree_id name subtree_id } $tree {}
                    +    ad_form -extend -name note -form \
                    +        [list [list category_id_${tree_id}:integer(category),optional \
                    +                   {label $name} \
                    +                   {html {single single}} \
                    +                   {category_tree_id $tree_id} \
                    +                   {category_subtree_id $subtree_id} \
                    +                   {category_object_id {[value_if_exists entry_id]}}]]
                    +}
                    +
                    +ad_form -extend \
                    +  -name note \
                    +  -new_request {
                    +    permission::require_permission -object_id [ad_conn package_id] -privilege create
                    +    set page_title "Add a Note"
                    +    set context [list $page_title]
                    +} -edit_request {
                    +    permission::require_write_permission -object_id $item_id
                    +    mfp::note::get \
                    +    -item_id $item_id \
                    +    -array note_array
                    +
                    +    set title $note_array(title)
                    +
                    +    set page_title "Edit a Note"
                    +    set context [list $page_title]
                    +} -new_data {
                    +    mfp::note::add \
                    +    -title $title
                    +} -after_submit {
                    +    ad_returnredirect "."
                         ad_script_abort
                    -}

                    This page requires a -note_id to determine which record -should be deleted. It also looks for a confirmation variable, which -should initially be absert. If it is absent, we create a form to -allow the user to confirm the deletion. Note that in -entry-edit.tcl we used ad_form to access the Form Template -commands; here, we call them directly because we don't need the extra -features of ad_form. The form calls itself, but -with hidden variables carrying both -note_id and -confirm_p. If confirm_p is present, -we delete the record, set redirection back to the index, and abort -script execution.

                    The database commands:

                    [service0@yourserver www]$ emacs note-delete.xql
                    <?xml version="1.0"?>
                    -<queryset>
                    -  <fullquery name="do_delete">
                    -    <querytext>
                    -      select samplenote__delete(:note_id)
                    -    </querytext>
                    -  </fullquery>
                    -  <fullquery name="get_name">
                    -    <querytext>
                    -      select samplenote__name(:note_id)
                    -    </querytext>
                    -  </fullquery>
                    -</queryset>

                    And the adp page:

                    [service0@yourserver www]$ emacs note-delete.adp
                    <master>
                    -<property name="title">@title@</property>
                    -<property name="context">{@title@}</property>
                    -<h2>@title@</h2>
                    -<formtemplate id="note-del-confirm"></formtemplate>
                    -</form>

                    The ADP is very simple. The -formtemplate tag outputs the HTML -form generated by the ad_form command with the matching name. Test it by adding the new files in the APM and then deleting a few samplenotes.

                  General_comments

                  You can track comments for any ACS Object. Here we'll track - comments for notes. On the notes.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 - show them.

                  First, we need to generate a url for adding comments. In notes.tcl:

                  -set comment_add_url "[general_comments_package_url]comment-add?[export_vars {
                  - { object_id $note_id } 
                  - { object_name $title } 
                  - { return_url "[ad_conn url]?[ad_conn query]"} 
                  -}]"
                  -

                  This calls a global, public tcl function that the - general_comments package registered, to get its url. You then - embed in that url the id of the note and its title, and set the - return_url to the current url so that the user can return after - adding a comment.

                  We need to create html that shows any existing comments. - We do this with another general_comments function:

                  set comments_html [general_comments_get_comments
                  -    -print_content_p 1 $note_id]

                  First, we pass in an optional parameter that that says to actually - show the contents of the comments, instead of just the fact that - there are comments. Then you pass the note id, which is also the - acs_object id.

                  We put our two new variables in the notes.adp - page.

                  <a href="@comment_add_url@">Add a comment</a>
                  -@comments_html@

                  Prepare the package for distribution.

                  Browse to the package manager. Click on +} +

                +

                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.

                -

                Notifications

                by David Bell and Simon Carstensen


                + /tmp.

                +

                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 +

                The notifications package allows you to send notifications through any defined communications medium (e.g. email, sms) upon some event occuring within the system.

                This tutorial steps through the process of integrating the notifications package with your package.

                First step is to create the notification types. To do this a script similar @@ -316,4 +441,9 @@ parameter is what appears at the end of the text returned (i.e. "... request notification</a> for pretty_name"), The url parameter should be set to the address we want the user to be redirected to after they have finished the subscription process.

                This should be all you need to implement a notification system. For more examples - look at the forums package.

                View comments on this page at openacs.org
                + look at the forums package.

                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. + (plan to draw from Jon Griffin's doc)

                • How and when to implement caching

                • partialquery in xql

                • How to use the html/text entry widget to get the + "does this look right" confirm page

                • APM package dependencies

                See also the OpenACS Programming FAQ

                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 -r1.14.2.10 -r1.14.2.11 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 21 Jan 2004 18:36:16 -0000 1.14.2.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 2 Feb 2004 18:10:57 -0000 1.14.2.11 @@ -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.) -

                The top of each sql file has some +

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

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

                Paste this into the file and save and close.

                Figure�7.2.�Database Creation Script - master create file

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

                Paste this into the file and save and close.

                Figure�7.3.�Database Creation Script - master create file

                -- creation script
                 --
                 -- @author joel@aufrecht.org
                 -- @cvs-id &Id:$
                @@ -62,7 +62,7 @@
                     First Package," 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.

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

                Figure�7.3.�Database deletion script

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

                Figure�7.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 -r1.14.2.10 -r1.14.2.11
                --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	21 Jan 2004 18:36:16 -0000	1.14.2.10
                +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	2 Feb 2004 18:10:57 -0000	1.14.2.11
                @@ -1,64 +1,46 @@
                -Debugging and Automated Testing

                Debugging and Automated Testing

                Important

                This section is a work in progress.

                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 in and out.

                PostgreSQL.�You can work directly with the database to do debugging steps like looking directly at tables and testing stored - procedures. Start emacs. Type + procedures. Start emacs. Type M-x sql-postgres. Press enter for - server name and use openacs-dev for + server name and use service0 for database name. You can use C-(up arrow) and C-(down arrow) - for command history. + for command history.

                Hint: "Parse error near *" usually means that an xql file wasn't recognized, because the tcl file is choking on the *SQL* - placeholder that it falls back on.

                Watching the server log.�NOTE: explain how to add tcl to directly write your own - log output

                To set up real-time monitoring of the AOLserver error - log, type

                less /usr/local/aolserver/log/openacs-dev-error.log

                -

                F�to�show�new�log�entries�in�real�time�(like�tail�-f)
                + placeholder that it falls back on.

                Watching the server log.�

                To set up real-time monitoring of the AOLserver error + log,

                less /var/lib/aolserver/service0/log/error.log

                F�to�show�new�log�entries�in�real�time�(like�tail�-f)
                C-c�to�stop�and�F�to�start�it�up�again.�
                G�goes�to�the�end.
                ?�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.

                Other things to test: try to delete someone else's + 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


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

                I just wrote a test script for the acs-service-contract package and -thought I'd might as well post a step-by-step run-through, since some -people have been asking for this. Here goes. -

                1. Create the directory that will contain the test - script(s):

                  -$ cd /web/simon/packages/acs-service-contract/tcl
                  -$ mkdir test
                  -
                2. Create the .tcl library that holds the test - procs:

                  -$ cd test
                  -$ emacs acs-service-contract-procs.tcl
                  -
                3. Write the tests. This is obviously the big step - :)

                  -The script should first call ad_library like any normal -procs.tcl file: -

                  ad_library {
                  +        

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

                [service0 www]$ mkdir /var/lib/aolserver/service0/packages/myfirstpackage/tcl/test
                +[service0 www]$ cd /var/lib/aolserver/service0/packages/myfirstpackage/tcl/test
                +[service0 test]$ emacs myfirstpackages-procs.tcl

                Write the tests. This is obviously the big step :) The script should first call ad_library like any normal -procs.tcl file:

                ad_library {
                     ...
                 }
                 

                To create a test case you call aa_register_case test_case_name.. Once you've created the test case you start writing the needed logic. -Let's say you just wrote an API for adding and deleting notes in the +We'll use the tutorial package, "myfirstpackage," as an example. +Let's say you just wrote an API for adding and deleting notes in the notes packages and wanted to test that. You'd probably want to write a test that first creates a note, then verifies that it was inserted, then perhaps deletes it again, and finally verifies that it is @@ -69,61 +51,42 @@ call to aa_run_with_teardown which basically means that all the inserts, deletes, and updates will be rolled back once the test has been executed. A very useful feature. Instead of inserting bogus data -like: set name "Simon", I tend to generate a random script in order avoid inserting a value that's already in the database: -

                set name [ad_generate_random_string]
                -

                -Here's how the test case looks so far: - -

                aa_register_case acs_sc_impl_new_from_spec {
                -
                -   aa_run_with_teardown \
                +like:        set name "Simon", I tend to generate a random script in order avoid inserting a value that's already in the database:

                set name [ad_generate_random_string]
                +
                Here's how the test case looks so far:
                aa_register_case mfp_basic_test {
                +    My test
                +} {
                +    aa_run_with_teardown \
                        -rollback \
                -       -testcode  {
                -          ... logic ...
                +       -test_code  {
                +
                        }
                 }
                 

                Now let's look at the actual test code. That's the code that -goes inside -testcode {}. -In my case I had added a new column to acs_sc_impls (pretty_name), -which meant that I had to change the datamodel and the Tcl API to -support this new change. To make sure I didn't screw up, I wrote a test -that created a new service contract, then a new implementation of that -contract, and called acs_sc::impl::get to check that the data in the -new column had been added correctly and then finally verified that the -pretty_name was actually what I had tried to insert. It looked -something like this: -

                set spec {
                -     name "foo_contract"
                -     description "Blah blah"
                -     ...
                +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.

                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.

                Now we can add the rest of the API tests. The complete test looks like:

                ad_library {
                +    Test cases for my first package.
                 }
                 
                -# Create service contract
                -acs_sc::contract::new_from_spec -spec $spec
                +aa_register_case mfp_basic_test {
                +    Test One
                +} {
                +   aa_run_with_teardown \
                +       -rollback \
                +       -test_code  {
                +           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]
                 
                -set spec {
                -     name "foo_impl"
                -     description "Blah blah blah"
                -     pretty_name "Foo Implementation"
                -     ...
                -}
                +           mfp::note::get -item_id $new_id -array note_array
                +           aa_true "Note contains correct title" [string equal $note_array(title) $name]
                 
                -# Create implementation
                -set impl_id [acs_sc::impl::new_from_spec -spec $spec]
                +           mfp::note::delete -item_id $new_id
                 
                -# Get the values of the implementation we just created
                -acs_sc::impl::get -impl_id $impl_id -array impl
                +           set get_again [catch {mfp::note::get -item_id $new_id -array note_array}]
                +           aa_false "After deleting a note, retrieving it fails" [expr $get_again == 0]
                +       }
                +}
                 
                -#Verify that the pretty_name column has the correct value
                -aa_equals "did column pretty_name get set correctly?" $impl(pretty_name) "Foo Implementation"
                -

                Now you might not know how acs-service-contract works, but that -doesn't matter. I'm basically inserting data into the database, then -querying for the database to check that it got inserted and then -finally, using aa_equals, I compare the result with what I inserted to -verify that everything is correct.

                -There are number of other useful procs for determening whether a test case was successful or not, namely: -

                aa_true "is this true?" [expr ![empty_string $foo]]
                -aa_false "is this true?" [empty_string $foo]
                -

                There a number of other useful procs and I will encourage you to -look at the few packages for which tests have already been implemented. -That is perhaps the best documentation we have so far. See also the section called “Automated Testing”.

                View comments on this page at openacs.org
                +

                See also the section called “Automated Testing”.

                View comments on this page at openacs.org
                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 -r1.14.2.10 -r1.14.2.11 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 21 Jan 2004 18:36:17 -0000 1.14.2.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 2 Feb 2004 18:10:57 -0000 1.14.2.11 @@ -1,7 +1,7 @@ -Creating a Package

                Creating a Package

                by Joel Aufrecht


                +Creating a Package

                Creating a 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 +

                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 @@ -21,11 +21,11 @@

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

                Figure�7.1.�Assumptions in this section

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

                Use the APM to initialize a new package

                We use the ACS Package Manager (APM) to add, remove, and +standard OpenACS distribution. +

                Figure�7.1.�Assumptions in this section

                Fully qualified domain name of your serveryourserver.test
                URL of your serverhttp://yourserver.test:8000
                Name of development accountservice0
                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 @@ -54,7 +54,7 @@

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

                Mount the package in the site map

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

                Mount the package in the site map

                In order to see your work in progress, you must create a map between the URL space of incoming requests and the package. You do this by mounting the package in the Site Map. This creates a link between the incoming URL and an 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 -r1.14.2.10 -r1.14.2.11 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 21 Jan 2004 18:36:17 -0000 1.14.2.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 2 Feb 2004 18:10:57 -0000 1.14.2.11 @@ -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/service0/packages/acs-core-docs/www/files/note-procs.tcl /var/lib/aolserver/service0/packages/myfirstpackage/tcl/

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

                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/service0/packages/acs-core-docs/www/files/note-procs.tcl /var/lib/aolserver/service0/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�7.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 @@ -12,7 +12,7 @@ and -oracle.xql files contains database-specific SQL. The default page in any directory is index, so we'll build that - first, starting with the tcl file:

                [service0 postgresql]$ cd /var/lib/aolserver/service0/myfirstpackages/www
                +      first, starting with the tcl file:

                [service0 postgresql]$ cd /var/lib/aolserver/service0/packages/myfirstpackages/www
                 [service0 www]$ emacs index.tcl

                Paste this into the file.

                ad_page_contract {
                     This is the main page for the package.  It displays all of the Notes and provides links to edit them and to create new Notes.
                 
                @@ -21,9 +21,12 @@
                 }
                 
                 set page_title [ad_conn instance_name]
                -set context [list]
                -
                -template::list::create \
                +set context [list]

                Now index.adp:

                <master>
                +  <property name="title">@page_title;noquote@</property>
                +  <property name="context">@context;noquote@</property>
                +<include src="/packages/myfirstpackage/lib/note-list">

                You can test your work by viewing the page.

                The index page includes the list page, which we put in /lib instead of /www to designate that it's available for reuse by other packages.

                [service0 www]$ mkdir /var/lib/aolserver/service0/packages/myfirstpackage/lib
                +[service0 www]$ cd /var/lib/aolserver/service0/packages/myfirstpackage/lib
                +[service0 lib]$ emacs note-list.tcl
                template::list::create \
                     -name notes \
                     -multirow notes \
                     -actions { "Add a Note" note-edit} \
                @@ -60,17 +63,10 @@
                     } {
                 	set edit_url [export_vars -base "note-edit" {item_id}]
                 	set delete_url [export_vars -base "note-delete" {item_id}]
                -    }
                -

                Now index.adp:

                -<master>
                -  <property name="title">@page_title;noquote@</property>
                -  <property name="context">@context;noquote@</property>
                -<listtemplate name="notes"></listtemplate>
                -    

                Now we create the add/edit page. If note_id is passed in, - it edits that note. Otherwise, it presents a form for adding - notes. Edit - note-edit.tcl:

                ad_page_contract {
                -    This is the main page for the package.  It displays all of the Notes and provides links to edit them and to create new Notes.
                +    }
                [service0 lib]$ emacs note-list.adp
                <listtemplate name="notes"></listtemplate>

                Create the add/edit page. If note_id is passed in, + it display that note, and can change to edit mode if appropriate. Otherwise, it presents a form for adding notes.

                [service0 lib]$ cd /var/lib/aolserver/service0/packages/myfirstpackage/www
                +[service0 www]$ emacs note-edit.tcl
                ad_page_contract {
                +    This is the view-edit page for notes.
                 
                     @author Your Name (you@example.com)
                     @cvs-id $Id$
                @@ -107,14 +103,13 @@
                 } -after_submit {
                     ad_returnredirect "."
                     ad_script_abort
                -}

                And note-edit.adp:

                <master>
                +}
                [service0 www]$ emacs note-edit.adp
                <master>
                   <property name="title">@page_title;noquote@</property>
                   <property name="context">@context;noquote@</property>
                   <property name="focus">note.title</property>
                   
                 <formtemplate id="note"></formtemplate>

                And the delete page. Since it has no UI, there is only a - tcl page, and no adp page. Edit -note-delete.tcl:

                ad_page_contract {
                +     tcl page, and no adp page.

                [service0 www]$ emacs note-delete.tcl
                ad_page_contract {
                     This deletes a note
                 
                     @author Your Name (you@example.com)
                @@ -126,7 +121,10 @@
                 }
                 
                 permission::require_write_permission -object_id $item_id
                -
                +set title [item::get_title $item_id]
                 mfp::note::delete -item_id $item_id
                 
                -ad_returnredirect "."
                View comments on this page at openacs.org
                +ad_returnredirect "." +# stop running this code, since we're redirecting +abort +
                View comments on this page at openacs.org
                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 -r1.7.2.4 -r1.7.2.5 --- openacs-4/packages/acs-core-docs/www/tutorial.html 11 Jan 2004 12:45:48 -0000 1.7.2.4 +++ openacs-4/packages/acs-core-docs/www/tutorial.html 2 Feb 2004 18:10:57 -0000 1.7.2.5 @@ -1 +1 @@ -Chapter�7.�Development Tutorial
                View comments on this page at openacs.org
                +Chapter�7.�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 -r1.7.2.10 -r1.7.2.11 --- openacs-4/packages/acs-core-docs/www/unix-installation.html 21 Jan 2004 18:36:17 -0000 1.7.2.10 +++ openacs-4/packages/acs-core-docs/www/unix-installation.html 2 Feb 2004 18:10:57 -0000 1.7.2.11 @@ -1,7 +1,7 @@ -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 +

                a Unix-like system

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

                and optionally these programs, which are included in most distributions:

                • emacs

                • cvs (and initialize it)

                • ImageMagick

                • DocBook and supporting software (and install emacs keybindings for 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 -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 11 Jan 2004 12:45:48 -0000 1.1.2.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 2 Feb 2004 18:10:58 -0000 1.1.2.4 @@ -1,15 +1,15 @@ -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 4.6 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 - service0
                    +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 4.6 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 - service0
                               [service0 aolserver]$ cd /var/lib/aolserver
                               [service0 web]$ tar xzf /tmp/openacs-4-6.tgz
                               [service0 web]$ cp -r openacs-4-6/* openacs-4
                               [service0 openacs-upgrade]$ exit
                               [root root]#
                      -        
                      su - service0
                      +        su - service0
                               cd /var/lib/aolserver
                               tar xzf /tmp/openacs-4-6.tgz
                               cp -r openacs-4-6/* openacs-4
                      -        exit
                    • - Upgrading files for a site which is in a CVS repository + exit

                  • + Upgrading files for a site in a private CVS repository

                    1. Unpack the new files into a working directory.

                      [root root]# su - service0
                                   [service0 aolserver]$ cd /tmp
                                   [service0 tmp]$ tar xzf openacs-4-6.tgz
                      @@ -18,22 +18,27 @@
                                   [service0 tmp]$ mkdir openacs-upgrade
                                   [service0 tmp]$ cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs > cvs.txt 2>&1
                                   (CVS feedback here)
                      -            
                      su - service0
                      +            su - service0
                                   cd /tmp
                                   tar xzv openacs-4-6.tgz
                                   cd openacs-4.6
                                   cvs import -m "upgrade to OpenACS 4.6" openacs OpenACS openacs-4-6
                                   cd /tmp
                                   mkdir openacs-upgrade
                      -            cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs > cvs.txt 2>&1
                    2. The file /tmp/openacs-upgrade/cvs.txt contains the results of the upgrade. If you changed files that are part of the OpenACS tarball and those changes conflict with the 4.5-4.6 upgrade, you'll have to manually reconcile them. Use the emacs command M-x sort-lines and then, for each line that starts with a C, open that file and manually resolve the conflict by deleting the excess lines. When you're finished, or if there aren't any conflicts, save and exit.

                    3. Once you've fixed any conflicts, commit the new code + cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs > cvs.txt 2>&1

                    4. The file /tmp/openacs-upgrade/cvs.txt contains the results of the upgrade. If you changed files that are part of the OpenACS tarball and those changes conflict with the 4.5-4.6 upgrade, you'll have to manually reconcile them. Use the emacs command M-x sort-lines and then, for each line that starts with a C, open that file and manually resolve the conflict by deleting the excess lines. When you're finished, or if there aren't any conflicts, save and exit.

                    5. Once you've fixed any conflicts, commit the new code to your local tree.

                      [service0 tmp]$ cd openacs-upgrade
                                   [service0 openacs-upgrade]$ cvs commit -m "Upgraded to 4.6"
                      -            
                      cd openacs-upgrade
                      -            cvs commit -m "Upgraded to 4.6"
                    6. Update your working tree with the new files. The CVS flags ensure that new directories are created and pruned directories destroyed.

                      [service0 openacs-upgrade]$ cd /var/lib/aolserver/service0
                      +            cd openacs-upgrade
                      +            cvs commit -m "Upgraded to 4.6"
                    7. Update your working tree with the new files. The CVS flags ensure that new directories are created and pruned directories destroyed.

                      [service0 openacs-upgrade]$ cd /var/lib/aolserver/service0
                                   [service0 service0]$ cvs up -Pd
                                   (CVS feedback)
                                   [service0 service0]$ exit
                                   [root root]#
                      -            
                      cd /var/lib/aolserver/service0
                      +            cd /var/lib/aolserver/service0
                                   cvs up -Pd
                      -            exit
                  View comments on this page at openacs.org
                  + exit
              • + Upgrading files for a site using the OpenACS.org CVS repository +

                1. [service0 ~]$ cd /var/lib/aolserver/service0
                  +            [service0 service0]$ cvs up -Pd
                  +            (CVS feedback)
                  +            [service0 service0]$
              • View comments on this page at openacs.org
                Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/upgrade-openacs.html,v diff -u -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs.html 21 Jan 2004 18:36:17 -0000 1.1.2.6 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs.html 2 Feb 2004 18:10:58 -0000 1.1.2.7 @@ -1,4 +1,4 @@ -Upgrading OpenACS

                Upgrading OpenACS

                Upgrading 4.5 to 4.6.x

                The required platform for OpenACS 4.6 is the same as +Upgrading OpenACS

                Upgrading OpenACS

                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.

                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/service0
                4. Upgrade the file system.�the section called “Upgrading the OpenACS files”

                5. @@ -8,9 +8,8 @@ upgrade, plus any new packages you want. It's safest to upgrade the kernel by itself, and then come back and upgrade the rest of the - desired packages in a second pass.

                6. On the next screen, click Install Packages

                7. When prompted, restart the server:

                  [root root]# restart-aolserver service0
                8. Wait a minute, then browse to the package manager, http://yourserver/acs-admin/apm.

                9. Check that the kernel upgrade worked by clicking All and making sure that acs-kernel version is 5.0.0.

              • Rollback.�If anything goes wrong, roll back to the backup snapshot.

              • 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, or Oracle, to upgrade OpenACS beyond 4.6.3. (OpenACS 5.0 requires PostGreSQL 7.3; OpenACS versions prior to 4.6.3 do not support PostGreSQL 7.3; only OpenACS 4.6.3 supports both 7.2 and 7.3. Upgrade PostGreSQL to 7.3) -

                  1. Back up the database and file system.

                  2. Upgrade the kernel manually:

                    [root root]# su - service0
                    +              desired packages in a second pass.

                  3. On the next screen, click Install Packages

                  4. When prompted, restart the server:

                    [root root]# restart-aolserver service0
                  5. Wait a minute, then browse to the package manager, http://yourserver/acs-admin/apm.

                  6. Check that the kernel upgrade worked by clicking All and making sure that acs-kernel version is .

                • Rollback.�If anything goes wrong, roll back to the backup snapshot.

                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 - service0
                     [service0 aolserver]$ cd /var/lib/aolserver/ service0/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 service0. Run the scripts in this order (order is tentative, not verified):

                    psql -f upgrade-4.6.3-4.6.4.sql service0
                    @@ -26,7 +25,9 @@
                     psql -f upgrade-5.0.0a4-5.0.0a5.sql service0
                     psql -f upgrade-5.0.0b1-5.0.0b2.sql service0
                     psql -f upgrade-5.0.0b2-5.0.0b3.sql service0
                    -psql -f upgrade-5.0.0b3-5.0.0b4.sql service0
                  4. Load acs-authentication data model.

                    psql -f /var/lib/aolserver/service0/openacs-5/packages/acs-authentication/sql/postgresql/acs-authentication-create.sql service0
                  5. Load acs-lang data model.

                    psql -f /var/lib/aolserver/service0/packages/acs-lang/sql/postgresql/acs-lang-create.sql service0
                  6. Create a file which will be executed on startup which takes care of a few issues with authentication and internationalization: create service0/tcl/zzz-postload.tcl containing:

                    if {![apm_package_installed_p acs-lang]} {
                    +psql -f upgrade-5.0.0b3-5.0.0b4.sql service0
                  7. Upgrade ACS Service Contracts manually:

                    [service0 aolserver]$ cd /var/lib/aolserver/ service0/packages/acs-service-contracts/sql/postgresql/upgrade
                    +psql -f upgrade-4.7d2-4.7d3.sql service0
                    +
                  8. Load acs-authentication data model.

                    psql -f /var/lib/aolserver/service0/openacs-5/packages/acs-authentication/sql/postgresql/acs-authentication-create.sql service0
                  9. Load acs-lang data model.

                    psql -f /var/lib/aolserver/service0/packages/acs-lang/sql/postgresql/acs-lang-create.sql service0
                  10. (This step may overlap with the two previous steps, but I think it's harmless?) Create a file which will be executed on startup which takes care of a few issues with authentication and internationalization: create service0/tcl/zzz-postload.tcl containing:

                    if {![apm_package_installed_p acs-lang]} {
                     apm_package_install -enable -mount_path acs-lang [acs_root_dir]/packages/acs-lang/acs-lang.info
                     lang::catalog::import -locales [list "en_US"]
                     }
                    @@ -43,4 +44,4 @@
                     parameter::set_value -package_id [ad_acs_kernel_id] -parameter UsePasswordWidgetForUsername -value 0
                     }
                  11. If you can login, visit /acs-admin/apm and upgrade acs-kernel and acs-service-contract and uncheck the data model scripts. Restart. If everything is still working, make another backup of the database.

                  12. Upgrade other packages via the APM

                  - See also this forum post: Forum OpenACS Development: 4.6.3 upgrade to 5-HEAD: final results.

                View comments on this page at openacs.org
                + See also these forum posts: Forum OpenACS Development: 4.6.3 upgrade to 5-HEAD: final results, OpenACS 5.0 Upgrade Experiences.

                View comments on this page at openacs.org
                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 -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 21 Jan 2004 18:36:17 -0000 1.1.2.6 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 2 Feb 2004 18:10:58 -0000 1.1.2.7 @@ -1,9 +1,9 @@ -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.

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

                OpenACS consists of files and a database schema. The files in a new tarball include database upgrade scripts. To start the upgrade, replace your existing files with the new files and then browse to the APM, which will detect the new packages and offer to run the appropriate database upgrade scripts. After restarting the server again, the upgrade is - complete.

                Table�5.1.�Assumptions in this section

                name of OpenACS userservice0
                OpenACS server nameservice0
                Root of OpenACS file tree/var/lib/aolserver/service0
                Database backup directory/var/lib/aolserver/service0/database-backup
                View comments on this page at openacs.org
                + complete.

                Table�5.1.�Assumptions in this section

                name of OpenACS userservice0
                OpenACS server nameservice0
                Root of OpenACS file tree/var/lib/aolserver/service0
                Database backup directory/var/lib/aolserver/service0/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 -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 11 Jan 2004 12:45:48 -0000 1.1.2.2 +++ openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 2 Feb 2004 18:10:58 -0000 1.1.2.3 @@ -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 service0 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 service0 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/
                      @@ -27,10 +27,10 @@
                                 (~30 more lines)
                                 [service0 dev]$ exit
                                 [root root]# 
                      -          
                      su - service0
                      +          su - service0
                                 psql service0 -f /usr/local/pgsql/share/contrib/openfts.sql
                                 psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
                      -          exit
                    3. OPTIONAL: Install the new OpenFTS Engine.�If you want to upgrade the OpenFTS Engine, do these + exit

                    4. OPTIONAL: Install the new OpenFTS Engine.�If you want to upgrade the OpenFTS Engine, do these steps. (You must have already upgraded the OpenFTS driver to 0.3.2.)

                      1. Browse to http://yourserver/admin/site-map

                      2. On the openfts line, click on set parameters.

                      3. Change the value of openfts_tcl_src_path from /usr/local/src/Search-OpenFTS-tcl-0.2/ to /usr/local/src/Search-OpenFTS-tcl-0.3.2/

                      4. Click Set Parameters

                      5. [root root]# restart-aolserver service0
                      6. Browse to http://yourserver/openfts

                      7. Click Administration.

                      8. Click Initialize OpenFTS Engine

                    Upgrading from PostGreSQL 7.2 to 7.3

                    An OpenACS database created in PostGreSQL 7.2 will not work correctly in PostGreSQL 7.3. This is because 7.2 truncates function names to 31 characters, but 7.3 does not. This does not cause problems in 7.2, because truncation occurs both at function creation and at function calling, so they still match. But if you use a database created in 7.2 in 7.3, the function names in the database remain truncated but the function calls are not, and so they don't match. Also some functions use casting commands that no longer work in 7.3 and these functions must be recreated.

                    To upgrade an OpenACS site from PostGreSQL 7.2 to 7.3, first upgrade the kernel to 4.6.3. Then, dump the database, run the upgrade script /var/lib/aolserver/service0/bin/pg_7.2to7.3_upgrade_helper.pl on the dump file, and reply the dump. See Forum OpenACS Q&A: PG 7.2->7.3 upgrade gotcha?. Example:

                    1. Back up the database as per PostgreSQL.

                    2. Run the upgrade script on the backup file.

                      [root root]# su - service0
                      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 -r1.1.2.9 -r1.1.2.10
                      --- openacs-4/packages/acs-core-docs/www/variables.html	21 Jan 2004 18:36:17 -0000	1.1.2.9
                      +++ openacs-4/packages/acs-core-docs/www/variables.html	2 Feb 2004 18:10:58 -0000	1.1.2.10
                      @@ -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, +

                      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�9.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�9.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 -r1.22.2.10 -r1.22.2.11
                      --- openacs-4/packages/acs-core-docs/www/win2k-installation.html	21 Jan 2004 18:36:17 -0000	1.22.2.10
                      +++ openacs-4/packages/acs-core-docs/www/win2k-installation.html	2 Feb 2004 18:10:58 -0000	1.22.2.11
                      @@ -1,11 +1,11 @@
                      -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 +

                      NOTE: These instructions were valid for ACS v4, but have not been tested with OpenACS and the ArsDigita binary distributions are no longer available. Currently - (10/2003), the best option to get OpenACS 5.0.0 running on Windows + (10/2003), the best option to get OpenACS running on Windows is to use VMware and John Sequeira's Oasis VM distribution @@ -249,4 +249,4 @@

                      In the services control panel you should see two services: AOLserver-lintcollectors and AOLserver-iguanasdirect. -

                      ($Id$)
                      View comments on this page at openacs.org
                      +

                      ($Id$)
                      View comments on this page at openacs.org