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.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 20 Feb 2004 15:13:40 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 27 Feb 2004 11:20:44 -0000 1.26 @@ -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.1.0d1
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading OpenACS
Upgrading the OpenACS files
Upgrading Platform components
6. Production Environments
Starting and Stopping an OpenACS instance.
AOLserver keepalive with inittab
Running multiple services on one machine
High Availability/High Performance Configurations
Staged Deployment for Production Networks
Installing SSL Support
Set up Log Analysis Reports
External uptime validation
Diagnosing Performance Problems
7. Database Management
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
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
3. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 4
Install OpenACS 5.1.0d1
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading OpenACS
Upgrading the OpenACS files
Upgrading Platform components
6. Production Environments
Starting and Stopping an OpenACS instance.
AOLserver keepalive with inittab
Running multiple services on one machine
High Availability/High Performance Configurations
Staged Deployment for Production Networks
Installing SSL Support
Set up Log Analysis Reports
External uptime validation
Diagnosing Performance Problems
7. Database Management
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
Install AOLserver 3.3oacs1
A. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
View comments on this page at openacs.org
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.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/aolserver.html 24 Feb 2004 17:42:24 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 27 Feb 2004 11:20:44 -0000 1.31 @@ -1,7 +1,14 @@ -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
    +        

We recommend the use of AOLserver 4.0.1 or later. These instructions are retained as a resource.

+ Debian users: we do not recommend installing Debian packages for + Aolserver or Postgres. Several people have + reported problems while trying to install using apt-get + instead of from source. If you have the time to debug these + and submit what you did, that's great, but if not, you + should stick to installing from source. +

  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'
    @@ -42,8 +49,9 @@
           Makefile needs to compile correctly and run
               conf, which compiles
               AOLserver, the default modules, and the database driver, and
    -          installs them.

    (Debian Users working with AOLserver 3.3+ad13 and - postgresql from apt-get may need to + installs them.

    Debian users, see + warning above, but if you do use apt-get for AOLserver + 3.3+ad13 and postgresql from apt-get may need to make these symlinks: ln -s /usr/include/postgresql/ /usr/include/pgsql and ln -s /usr/lib/postgresql /usr/local/pgsql)

    [root aolserver]# export POSTGRES=/usr/local/pgsql; ./conf
    @@ -74,17 +82,17 @@
     	  communicate with the database.  There is one script each for
     	  Oracle and PostgreSQL.  They don't conflict, so if you plan
     	  to use both databases, install both.

    • Oracle

      [root aolserver]# cd /usr/local/aolserver/bin
      -[root bin]# cp /tmp/openacs-5.1.0d1/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.1.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
      +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/openacs-5.1.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      +[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.1.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      +cp /tmp//packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
       chmod 755 nsd-postgres
  2. 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
    @@ -230,4 +238,4 @@
     set hostname        [ns_info hostname]
     #set address         [ns_info address]
     set address 0.0.0.0
  3. Install - Analog web file analyzer. (OPTIONAL)

($Id$)
View comments on this page at openacs.org
+ Analog web file analyzer. (OPTIONAL)

($Id$)
View comments on this page at openacs.org
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.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/aolserver4.html 24 Feb 2004 17:42:24 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/aolserver4.html 27 Feb 2004 11:20:44 -0000 1.7 @@ -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

    Remember that you have to be root if you want to follow these instructions. On Mac OS X type sudo su - to become root.

    Alternatively use curl -L -O instead of wget (especially on Mac OS X.

    [root root]# cd /usr/local/src
    @@ -70,4 +70,4 @@
     [root bin]#
     cd /usr/local/aolserver40r2/bin
     cp /tmp/openacs-5.1.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
    -chmod 755 nsd-postgres
  • Change startup script (optional).�If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the /var/lib/aolserver/service0/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)

  • Test AOLserver.

  • ($Id$)
    View comments on this page at openacs.org
    +chmod 755 nsd-postgres
  • Change startup script (optional).�If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the /var/lib/aolserver/service0/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)

  • Test AOLserver.

  • ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 24 Feb 2004 17:42:24 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 27 Feb 2004 11:20:46 -0000 1.24 @@ -7,4 +7,4 @@ probably need to create your own backup strategies (in particular full dumps from oracle, while easy to set up, are far from the best solution).

    There are three basic things which need to be backed up, the database data, the server - source tree, and the acs-content-repository (which is in the server source tree).

    Figure�8.1.�Backup and Recovery Strategy

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

    Figure�8.1.�Backup and Recovery Strategy

    Backup and Recovery Strategy
    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 24 Feb 2004 17:42:24 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 27 Feb 2004 11:20:46 -0000 1.30 @@ -7,7 +7,7 @@ Before OpenACS 3.3, the OpenACS startup process was extremely simple: after AOLserver performed its internal initialization (reading the configuration file, loading shared libraries and module code, etc.) it scanned through the Tcl -library directory (generally /web/yourservername/tcl), +library directory (generally /var/lib/aolserver/yourservername/tcl), sourcing each file in sequence.

    While this overall structure for initialization is still intact, package management has thrown a wrench into the works - there are a few extra things @@ -28,9 +28,9 @@

    Next AOLserver sources, in lexicographical order, each file in the /tcl directory. The first such file is 0-acs-init.tcl, which doesn't do much directly except to -determine the OpenACS path root (e.g., /web/yourservername) +determine the OpenACS path root (e.g., /var/lib/aolserver/yourservername) by trimming the final component from the path to the Tcl library directory -(/web/yourservername/tcl). But +(/var/lib/aolserver/yourservername/tcl). But 0-acs-init.tcl's has an important function, namely sourcing /packages/acs-core/bootstrap.tcl, which does the following:

    1. Initialize some NSVs used by the core. These NSVs are documented in /packages/acs-core/apm-procs.tcl - no need to Index: openacs-4/packages/acs-core-docs/www/ch10s06.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/ch10s06.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/ch10s06.html 24 Feb 2004 17:42:24 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/ch10s06.html 27 Feb 2004 11:20:46 -0000 1.4 @@ -1,4 +1,4 @@ -Categories

      Categories

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

      Categories

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

      Index: openacs-4/packages/acs-core-docs/www/complete-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/complete-install.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/complete-install.html 18 Feb 2004 14:43:02 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 27 Feb 2004 11:20:46 -0000 1.10 @@ -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.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/credits.html 24 Feb 2004 17:42:24 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/credits.html 27 Feb 2004 11:20:46 -0000 1.29 @@ -1,4 +1,4 @@ -Appendix�C.�Credits

      Appendix�C.�Credits

      By Vinod Kurup

      +Appendix�C.�Credits

      Appendix�C.�Credits

      By Vinod Kurup

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

      Vinod Kurup put @@ -32,4 +32,4 @@

      All questions and comments regarding this guide should be posted on the OpenACS forums. -

      ($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/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 24 Feb 2004 17:42:24 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 27 Feb 2004 11:20:46 -0000 1.14 @@ -1,7 +1,7 @@ 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.service0 /cvsroot/service0
        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.30 -r1.31
        --- openacs-4/packages/acs-core-docs/www/docbook-primer.html	24 Feb 2004 17:42:24 -0000	1.30
        +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html	27 Feb 2004 11:20:46 -0000	1.31
        @@ -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/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 24 Feb 2004 17:42:24 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 27 Feb 2004 11:20:46 -0000 1.19 @@ -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.

    2. 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/form-builder.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/form-builder.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/form-builder.html 24 Feb 2004 17:42:24 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 27 Feb 2004 11:20:46 -0000 1.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
        @@ -10,5 +10,5 @@
             }

        This will result in a single name/value pair coming back in the submitted form. Handle this within the same ad_form structure, in the -new_data and -edit_data. In the example, it is available as $foo

      See also the W3C spec for "The SELECT, OPTGROUP, and OPTION elements".

      Common Errors

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

      Error when selecting values

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

      Error when selecting values

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

      ($Id$)
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/high-avail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/high-avail.html 24 Feb 2004 17:42:24 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 27 Feb 2004 11:20:51 -0000 1.4 @@ -1 +1 @@ -High Availability/High Performance Configurations

      High Availability/High Performance Configurations

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

      Figure�6.1.�Multiple-server configuration

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

      High Availability/High Performance Configurations

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

      Figure�6.1.�Multiple-server configuration

      Multiple-server configuration
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 24 Feb 2004 17:42:24 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 27 Feb 2004 11:20:51 -0000 1.7 @@ -1,6 +1,6 @@ -How Do I?

      How Do I?

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

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

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

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

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

        • +

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

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

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

    4. 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-convert.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 24 Feb 2004 17:42:24 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 27 Feb 2004 11:20:51 -0000 1.3 @@ -1,12 +1,12 @@ -Internationalizing Existing Packages

    Internationalizing Existing Packages

    Internationalize Message text in ADP and TCL

    Acs-lang includes tools to automate some +Internationalizing Existing Packages

    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

    + 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" *
      +    

    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/i18n-introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 24 Feb 2004 17:42:24 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 27 Feb 2004 11:20:51 -0000 1.3 @@ -42,7 +42,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 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.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/index.html 24 Feb 2004 17:42:24 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/index.html 27 Feb 2004 11:20:51 -0000 1.32 @@ -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.1.0d1
      OpenACS Installation Guide for Windows2000
      OpenACS Installation Guide for Mac OS X
      4. Configuring a new OpenACS Site
      How Do I?
      5. Upgrading
      Overview
      Upgrading OpenACS
      Upgrading the OpenACS files
      Upgrading Platform components
      6. Production Environments
      Starting and Stopping an OpenACS instance.
      AOLserver keepalive with inittab
      Running multiple services on one machine
      High Availability/High Performance Configurations
      Staged Deployment for Production Networks
      Installing SSL Support
      Set up Log Analysis Reports
      External uptime validation
      Diagnosing Performance Problems
      7. Database Management
      Running a PostgreSQL database on another server
      Deleting a tablespace
      Vacuum Postgres nightly
      8. Backup and Recovery
      Backup Strategy
      Manual backup and recovery
      Automated Backup
      Using CVS for backup-recovery
      A. Install Red Hat 8/9
      B. Install additional supporting software
      Unpack the OpenACS tarball
      Initialize CVS (OPTIONAL)
      Add PSGML commands to emacs init file (OPTIONAL)
      Install Daemontools (OPTIONAL)
      Install qmail (OPTIONAL)
      Install Analog web file analyzer
      Install nspam
      Install Full Text Search
      Install nsopenssl
      Install tclwebtest.
      Install PHP for use in AOLserver
      Install Squirrelmail for use as a webmail system for OpenACS
      C. Credits
      Where did this document come from?
      Linux Install Guides
      Security Information
      Resources
      III. For OpenACS Package Developers
      9. Development Tutorial
      Creating a Package
      Setting Up Database Objects
      Creating Web Pages
      Debugging and Automated Testing
      10. Advanced Topics
      Write the Requirements and Design Specs
      Add the new package to CVS
      Adding Comments
      Admin Pages
      Categories
      Categories
      Prepare the package for distribution.
      Notifications
      Using .vuh files for pretty urls
      11. Development Reference
      OpenACS Packages
      OpenACS Data Models and the Object System
      The Request Processor
      The OpenACS Database Access API
      Using Templates in OpenACS
      Groups, Context, Permissions
      Writing OpenACS Application Pages
      Parties in OpenACS
      OpenACS Permissions Tediously Explained
      Object Identity
      Programming with AOLserver
      Using HTML Forms
      12. Engineering Standards
      OpenACS Style Guide
      Release Version Numbering
      Constraint naming standard
      ACS File Naming and Formatting Standards
      PL/SQL Standards
      Variables
      Automated Testing
      13. Documentation Standards
      OpenACS Documentation Guide
      Using PSGML mode in Emacs
      Using nXML mode in Emacs
      Detailed Design Documentation Template
      System/Application Requirements Template
      14. Internationalization
      Translator's Guide
      Introduction to Developing Internationalized Packages
      Internationalizing Existing Packages
      Design Notes
      D. Using CVS with an OpenACS Site
      IV. For OpenACS Platform Developers
      15. Kernel Documentation
      Overview
      Object Model Requirements
      Object Model Design
      Permissions Requirements
      Permissions Design
      Groups Requirements
      Groups Design
      Subsites Requirements
      Subsites Design Document
      Package Manager Requirements
      Package Manager Design
      Database Access API
      OpenACS Internationalization Requirements
      Security Requirements
      Security Design
      Security Notes
      Request Processor Requirements
      Request Processor Design
      Documenting Tcl Files: Page Contracts and Libraries
      Bootstrapping OpenACS
      External Authentication Requirements
      16. How to package and release OpenACS
      How to Update the OpenACS.org repository
      How to Update the translations
      Index
      View comments on this page at openacs.org
      +OpenACS Core Documentation

      OpenACS Core Documentation


      Table of Contents

      I. OpenACS For Everyone
      1. High level information: What is OpenACS?
      Overview
      OpenACS Release Notes
      II. Administrator's Guide
      2. Installation Overview
      Basic Steps
      Prerequisite Software
      3. Complete Installation
      Install a Unix-like system and supporting software
      Install Oracle 8.1.7
      Install PostgreSQL
      Install AOLserver 4
      Install OpenACS 5.1.0d1
      OpenACS Installation Guide for Windows2000
      OpenACS Installation Guide for Mac OS X
      4. Configuring a new OpenACS Site
      How Do I?
      5. Upgrading
      Overview
      Upgrading OpenACS
      Upgrading the OpenACS files
      Upgrading Platform components
      6. Production Environments
      Starting and Stopping an OpenACS instance.
      AOLserver keepalive with inittab
      Running multiple services on one machine
      High Availability/High Performance Configurations
      Staged Deployment for Production Networks
      Installing SSL Support
      Set up Log Analysis Reports
      External uptime validation
      Diagnosing Performance Problems
      7. Database Management
      Running a PostgreSQL database on another server
      Deleting a tablespace
      Vacuum Postgres nightly
      8. Backup and Recovery
      Backup Strategy
      Manual backup and recovery
      Automated Backup
      Using CVS for backup-recovery
      A. Install Red Hat 8/9
      B. Install additional supporting software
      Unpack the OpenACS tarball
      Initialize CVS (OPTIONAL)
      Add PSGML commands to emacs init file (OPTIONAL)
      Install Daemontools (OPTIONAL)
      Install qmail (OPTIONAL)
      Install Analog web file analyzer
      Install nspam
      Install Full Text Search
      Install nsopenssl
      Install tclwebtest.
      Install PHP for use in AOLserver
      Install Squirrelmail for use as a webmail system for OpenACS
      Install AOLserver 3.3oacs1
      A. Credits
      Where did this document come from?
      Linux Install Guides
      Security Information
      Resources
      III. For OpenACS Package Developers
      1. Development Tutorial
      Creating a Package
      Setting Up Database Objects
      Creating Web Pages
      Debugging and Automated Testing
      2. Advanced Topics
      Write the Requirements and Design Specs
      Add the new package to CVS
      Adding Comments
      Admin Pages
      Categories
      Categories
      Prepare the package for distribution.
      Notifications
      Using .vuh files for pretty urls
      3. Development Reference
      OpenACS Packages
      OpenACS Data Models and the Object System
      The Request Processor
      The OpenACS Database Access API
      Using Templates in OpenACS
      Groups, Context, Permissions
      Writing OpenACS Application Pages
      Parties in OpenACS
      OpenACS Permissions Tediously Explained
      Object Identity
      Programming with AOLserver
      Using HTML Forms
      4. Engineering Standards
      OpenACS Style Guide
      Release Version Numbering
      Constraint naming standard
      ACS File Naming and Formatting Standards
      PL/SQL Standards
      Variables
      Automated Testing
      5. Documentation Standards
      OpenACS Documentation Guide
      Using PSGML mode in Emacs
      Using nXML mode in Emacs
      Detailed Design Documentation Template
      System/Application Requirements Template
      6. Internationalization
      Translator's Guide
      Introduction to Developing Internationalized Packages
      Internationalizing Existing Packages
      Design Notes
      B. Using CVS with an OpenACS Site
      IV. For OpenACS Platform Developers
      7. Kernel Documentation
      Overview
      Object Model Requirements
      Object Model Design
      Permissions Requirements
      Permissions Design
      Groups Requirements
      Groups Design
      Subsites Requirements
      Subsites Design Document
      Package Manager Requirements
      Package Manager Design
      Database Access API
      OpenACS Internationalization Requirements
      Security Requirements
      Security Design
      Security Notes
      Request Processor Requirements
      Request Processor Design
      Documenting Tcl Files: Page Contracts and Libraries
      Bootstrapping OpenACS
      External Authentication Requirements
      8. How to package and release OpenACS
      How to Update the OpenACS.org repository
      How to Update the translations
      Index
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 24 Feb 2004 17:42:25 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 27 Feb 2004 11:20:51 -0000 1.20 @@ -1,4 +1,4 @@ -Initialize CVS (OPTIONAL)

      Initialize CVS (OPTIONAL)

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

      Initialize CVS (OPTIONAL)

      CVS is a source control system. Create and initialize a directory for a local cvs repository.

      [root tmp]# mkdir /cvsroot
       [root tmp]# cvs -d /cvsroot init
       [root tmp]#
      Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v
      diff -u -r1.20 -r1.21
      --- openacs-4/packages/acs-core-docs/www/install-daemontools.html	24 Feb 2004 17:42:25 -0000	1.20
      +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html	27 Feb 2004 11:20:51 -0000	1.21
      @@ -3,7 +3,7 @@
             installed in /package.  These commands install daemontools and
             svgroup.  svgroup is a script for granting permissions, to allow
             users other than root to use daemontools for specific
      -      services.

      1. Install Daemontools

        download daemontools and install it.

        • Red Hat 8

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

          1. Install Daemontools

            download daemontools and install it.

            • Red Hat 8

              [root root]# mkdir -p /package
               [root root]# chmod 1755 /package/
               [root root]# cd /package/
               [root package]# tar xzf /tmp/daemontools-0.76.tar.gz
              Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html
              ===================================================================
              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v
              diff -u -r1.18 -r1.19
              --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html	24 Feb 2004 17:42:25 -0000	1.18
              +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html	27 Feb 2004 11:20:51 -0000	1.19
              @@ -1,7 +1,7 @@
               Install Full Text Search

              Install Full Text Search

              By Joel Aufrecht and Malte Sussdorff

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

              Install OpenFTS module

              If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and +

              Install OpenFTS module

              If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the openfts tarball in /tmp.

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

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

              Install OpenFTS prerequisites in PostgreSQL instance

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

        Install OpenFTS prerequisites in PostgreSQL instance

        If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also install the PostgreSQL OpenFTS module and prerequisites.)

        [service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
        Index: openacs-4/packages/acs-core-docs/www/install-more-software.html
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v
        diff -u -r1.9 -r1.10
        --- openacs-4/packages/acs-core-docs/www/install-more-software.html	12 Feb 2004 13:51:40 -0000	1.9
        +++ openacs-4/packages/acs-core-docs/www/install-more-software.html	27 Feb 2004 11:20:51 -0000	1.10
        @@ -1,4 +1,4 @@
        -Appendix�B.�Install additional supporting software

        Appendix�B.�Install additional supporting software

        By Joel Aufrecht

        +Appendix�B.�Install additional supporting software

        Appendix�B.�Install additional supporting software

        By Joel Aufrecht

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

        This section assumes that the source tarballs for supporting Index: openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 24 Feb 2004 17:42:25 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 27 Feb 2004 11:20:51 -0000 1.4 @@ -1,6 +1,7 @@ Vacuum Postgres nightly

        Vacuum Postgres nightly

        - The "vacuum" command must be run periodically to reclaim space. The - "vacuum analyze" form additionally collects statistics on the + The "vacuum" command must be run periodically to reclaim space + in versions of PostgreSQL before 7.4. The "vacuum analyze" form + additionally collects statistics on the disbursion of columns in the database, which the optimizer uses when it calculates just how to execute queries. The availability of this data can make a tremendous difference in the execution speed of @@ -10,7 +11,8 @@ prefer it to happen immediately after (not before!) you've made a backup! The "vacuum" command is very reliable, but conservatism is the key to good system management. So, if you're using the export - procedure described above, you don't need to do this extra step. + 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
        Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 24 Feb 2004 17:42:25 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 27 Feb 2004 11:20:51 -0000 1.4 @@ -62,6 +62,6 @@ Most of this information comes from Tom Jackson's AOLserver+Daemontools Mini-HOWTO. -

      Table�6.1.�How it Works

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

      Table�6.1.�How it Works

      ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
      svscanboot init/etc/inittabps -auxw | grep readproctitlen/a
      aolserversupervise (a child of svscanboot)/service/service0/run/var/lib/aolserver/service0/log/error.log/var/lib/aolserver/service0/log/service0.logsvc -k /service/service0
      postgresqlRedhat init scripts during boot/etc/init.d/postgresql/usr/local/pgsql/data/server.logservice postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/install-qmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 24 Feb 2004 17:42:25 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 27 Feb 2004 11:20:51 -0000 1.21 @@ -29,7 +29,7 @@ tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program [root ucspi-tcp-0.88]# -

      +

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

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

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

    5. Install Qmail.�

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

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

      Replace sendmail with qmail's wrapper.

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

      Replace sendmail with qmail's wrapper.

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

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

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

      [root alias]# echo "./Maildir" > /var/qmail/bin/.qmail
       [root alias]# cp /tmp/openacs-5.1.0d1/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
       [root alias]# chmod 755 /var/qmail/rc
      Index: openacs-4/packages/acs-core-docs/www/install-redhat.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v
      diff -u -r1.20 -r1.21
      --- openacs-4/packages/acs-core-docs/www/install-redhat.html	24 Feb 2004 17:42:25 -0000	1.20
      +++ openacs-4/packages/acs-core-docs/www/install-redhat.html	27 Feb 2004 11:20:51 -0000	1.21
      @@ -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

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

    7. Click Next on the boot loader screen

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

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

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

    11. Choose your time zone and click Next.

    12. Type in a root password, twice.

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

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

    15. 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
    16. 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
    17. 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.

    18. Lock down SSH

      1. - + SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming Index: openacs-4/packages/acs-core-docs/www/install-squirrelmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-squirrelmail.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 12 Feb 2004 13:51:40 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 27 Feb 2004 11:20:51 -0000 1.4 @@ -1,4 +1,4 @@ -Install Squirrelmail for use as a webmail system for OpenACS

        Install Squirrelmail for use as a webmail system for OpenACS

        By Malte Sussdorff

        +Install Squirrelmail for use as a webmail system for OpenACS

        Install Squirrelmail for use as a webmail system for OpenACS

        By Malte Sussdorff

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

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

        [service0 service0]# cd www
        @@ -7,4 +7,4 @@
         [service0 www]# mv squirrelmail-1.4.2 mail
         [service0 www]# cd mail/config
         [service0 www]# ./conf.pl
        -      

        Now you are about to configure Squirrelmail. The configuration heavily depends on your setup, so no instructions are given here.

        View comments on this page at openacs.org
        +

        Now you are about to configure Squirrelmail. The configuration heavily depends on your setup, so no instructions are given here.

        View comments on this page at openacs.org
        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.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/install-steps.html 24 Feb 2004 17:42:25 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 27 Feb 2004 11:20:51 -0000 1.14 @@ -37,7 +37,7 @@ 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.1.0d1/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 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.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/ix01.html 24 Feb 2004 17:42:25 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/ix01.html 27 Feb 2004 11:20:51 -0000 1.9 @@ -1,2 +1,2 @@ -Index

      Index

      C

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

      D

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

      E

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

      G

      Graphics
      Images, Graphics

      I

      informaltable
      table, Tables

      L

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

      O

      OpenACS Package, What a Package Looks Like

      P

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

      Q

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

      T

      The publish point for new packages should be +Index

      Index

      C

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

      D

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

      E

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

      G

      Graphics
      Images, Graphics

      I

      informaltable
      table, Tables

      L

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

      O

      OpenACS Package, What a Package Looks Like

      P

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

      Q

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

      T

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

      U

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

      X

      XML guidelines, Why DocBook?
      xref
      linkend, Links
      xreflabel, Headlines, Sections
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/maint-performance.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maint-performance.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/maint-performance.html 24 Feb 2004 17:42:25 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/maint-performance.html 27 Feb 2004 11:20:52 -0000 1.9 @@ -1,7 +1,7 @@ Diagnosing Performance Problems

      Diagnosing Performance Problems

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

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

      • Isolating and solving database problems.

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

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

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

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

          3. Choose "ACS Developer Support">

          4. After install is complete, restart the server.

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

          6. Turn on Database statistics

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

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

            Figure�6.8.�Query Analysis example

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

          Log in to SQL*Plus as the admin:

          [service0 ~]$ svrmgrl
          +              

        • Turn on Database statistics

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

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

          Figure�6.8.�Query Analysis example

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

        Log in to SQL*Plus as the admin:

        [service0 ~]$ svrmgrl
         
         Oracle Server Manager Release 3.1.7.0.0 - Production
         
        Index: openacs-4/packages/acs-core-docs/www/maintenance-deploy.html
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.html,v
        diff -u -r1.3 -r1.4
        --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html	24 Feb 2004 17:42:25 -0000	1.3
        +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html	27 Feb 2004 11:20:52 -0000	1.4
        @@ -1,7 +1,7 @@
         Staged Deployment for Production Networks

        Staged Deployment for Production Networks

        By Joel Aufrecht

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

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

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

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

        Deployment with CVS

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

        +        

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

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

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

        Deployment with CVS

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

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

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

        A/B Deployment

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

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

        Simple A/B Deployment: Database is not changed

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

        Simple A/B Deployment - Step 1

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

        Simple A/B Deployment - Step 2

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

        Simple A/B Deployment - Step 3

        Complex A/B Deployment: Database is changed

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

        Complex A/B Deployment - Step 1

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

        Complex A/B Deployment - Step 2

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

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

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

      A/B Deployment

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

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

      Simple A/B Deployment: Database is not changed

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

      Simple A/B Deployment - Step 1

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

      Simple A/B Deployment - Step 2

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

      Simple A/B Deployment - Step 3

      Complex A/B Deployment: Database is changed

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

      Complex A/B Deployment - Step 1

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

      Complex A/B Deployment - Step 2

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

      Complex A/B Deployment - Step 3
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/objects.html 24 Feb 2004 17:42:25 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/objects.html 27 Feb 2004 11:20:52 -0000 1.31 @@ -78,7 +78,7 @@ Fire up your text editor and open the ROOT/packages/notes/sql/oracle/notes-create.sql (ROOT/packages/notes/sql/postgresql/notes-create.sql for the PG version) file created when we created the package. Then, do the following: -

      Describe the new type to the type system

      +

      Describe the new type to the type system

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

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

      Define a table in which to store your objects

      +

      Define a table in which to store your objects

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

      Define a package for type specific procedures

      +

      Define a package for type specific procedures

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

      Define a package body for type specific procedures

      +

      Define a package body for type specific procedures

      The PL/SQL package body contains the implementations of the procedures defined above. The only subtle thing going on here is that we must use acs_object.new to insert a row into Index: openacs-4/packages/acs-core-docs/www/openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/openacs.html 24 Feb 2004 17:42:25 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/openacs.html 27 Feb 2004 11:20:52 -0000 1.30 @@ -220,15 +220,15 @@ CREATE DATABASE [service0 service0]$ su - service0 -createdb -E UNICODE service0

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

      0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0
      +createdb -E UNICODE service0
    20. 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 these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type man 5 crontab for more information.

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

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

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

        @@ -352,7 +352,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. Depending on how you installed Oracle or PostGreSQL, these settings may be necessary for working with the database while logged in as the service user. They do not directly affect the service's run-time connection with the Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 24 Feb 2004 17:42:25 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 27 Feb 2004 11:20:52 -0000 1.24 @@ -100,7 +100,7 @@

      Context Hierarchy

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

      Table�11.1.�Context Hierarchy Example

      A

      +

      Table�11.1.�Context Hierarchy Example

      A

      object_id=10

      B

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

      Table�11.2.�acs_objects example data

      object_idcontext_id
      2010
      3010
      4020
      5020
      6030

      +

      Table�11.2.�acs_objects example data

      object_idcontext_id
      2010
      3010
      4020
      5020
      6030

      The first entry tells us that object 20 is the descendant of object 10, and the third entry shows that object 40 is the descendant of object 20. By running a CONNECT BY query, Index: openacs-4/packages/acs-core-docs/www/postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v diff -u -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/postgres.html 24 Feb 2004 17:42:25 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/postgres.html 27 Feb 2004 11:20:52 -0000 1.29 @@ -1,7 +1,11 @@ -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.

      See Table�2.2, “Version Compatibility Matrix” for version compatibility.

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

      • Special Notes for Debian.�

        Debian users, especially Debian stable users, should 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
        +        

      Skip this section if you will run only Oracle.

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

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

      • Special Notes for Debian.�

        Debian users, especially Debian stable users, should + install PostGreSQL from source as detailed below. Debian + unstable users: the following process has been known to work + (but you should double-check that the version of PostGreSQL is + 7.3 or above):

        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
        @@ -54,6 +58,9 @@
         	  PostgreSQL. This is the account that PostgreSQL will run as
         	  since it will not run as root.  Since nobody will log in
         	  directly as that user, we'll leave the password blank.
        +	

        + Debian users should probably use adduser instead of + useradd. Type man adduser

        [root src]# groupadd web
         [root src]# useradd -g web -d /usr/local/pgsql postgres
         [root src]# mkdir -p /usr/local/pgsql
        @@ -88,11 +95,12 @@
         LD_LIBRARY_PATH=:/usr/local/pgsql/lib
         PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin
         [postgres pgsql]$ exit
        -
      • Compile and install PostgreSQL.� +

        Don't continue unless you see correct output from + env | grep PATH

      • Compile and install PostgreSQL.� Change to the postgres user and run ./configure to set the compilation options automatically. This is the point at which you can configure PostgreSQL in various ways. For example, if you want to enable - Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help. + Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help.

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

        [root src]# su - postgres
         [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4
         [postgres postgresql-7.3.4]$ ./configure --with-includes=/sw/include/ --with-libraries=/sw/lib --enable-locale --enable-multibyte \
        @@ -306,7 +314,10 @@
         #       Write-ahead log (WAL)
         #
         checkpoint_segments = 3     # in logfile segments (16MB each), min 1
        -

        Restart postgres (Redhat: service postgresql restart. Many other systems: /etc/init.d/postgresql restart) so that the changes take effect.

      more information about PostgreSQL

      • +

        Restart postgres (service postgresql + restart) or + (/etc/init.d/postgres + restart) so that the changes take effect.

      more information about PostgreSQL

      ($Id$)
      View comments on this page at openacs.org
      + Tuning PostgreSQL for performance

      ($Id$)
      View comments on this page at openacs.org
      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.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 24 Feb 2004 17:42:25 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 27 Feb 2004 11:20:52 -0000 1.21 @@ -1,4 +1,4 @@ -Add PSGML commands to emacs init file (OPTIONAL)

      Add PSGML commands to emacs init file (OPTIONAL)

      +Add PSGML commands to emacs init file (OPTIONAL)

      Add PSGML commands to emacs init file (OPTIONAL)

      If you plan to write or edit any documentation with emacs, install a customized emacs configuration file with DocBook commands in the skeleton directory, so it will be used for all new users. The file also Index: openacs-4/packages/acs-core-docs/www/release-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.html,v diff -u -r1.33 -r1.34 --- openacs-4/packages/acs-core-docs/www/release-notes.html 24 Feb 2004 17:42:25 -0000 1.33 +++ openacs-4/packages/acs-core-docs/www/release-notes.html 27 Feb 2004 11:20:52 -0000 1.34 @@ -1,5 +1,5 @@ OpenACS Release Notes

      OpenACS Release Notes

      Version 5.1.0

      • Under Development - update this no later than 5.1.0rc1

      Version 5.0.1

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

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

      • Complete Change list since 5.0.0 in Changelog

      • Many documentation updates and doc bug fixes

      Version 5.0.0

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

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

    24. 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/* *~") -

    25. 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.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/releasing-openacs.html 24 Feb 2004 17:42:25 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs.html 27 Feb 2004 11:20:52 -0000 1.15 @@ -1,17 +1,39 @@ -Chapter�16.�How to package and release OpenACS

      Chapter�16.�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. +Chapter�16.�How to package and release OpenACS

          Chapter�16.�How to package and release OpenACS

          1. Update version numbers:

            1. Update /packages/acs-core-docs/www/xml/variables.ent with the new version number. +

            2. Add new section in /packages/acs-core-docs/www/xml/for-everyone/release-notes.xml +

            3. Regenerate all HTML docs

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

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

              #!/bin/sh
              +# run this file from ../packages to renumber all .info version numbers
              +
              +#---------------------------------------------------------------------
              +# here's what we're looking for
              +#---------------------------------------------------------------------
              +#   <version name="5.1.0d1" url="http:blahblah/acs-kernel-5.1.0d1.apm">
              +#      <provides url="acs-kernel" version="5.1.0d1"/>
              +#---------------------------------------------------------------------
              +# here's what we don't want to touch
              +#---------------------------------------------------------------------
              +#      <requires url="acs-kernel" version="5.0.0b4"/>
              +#---------------------------------------------------------------------
              +
              +for dir in `find -name *.info`
              +  do
              +  perl -p -i -e 's/name="5\.0\.0"/name="5\.1\.0d1"/' $dir
              +  perl -p -i -e 's/-5\.0\.0.apm"/-5\.1\.0d1.apm"/' $dir
              +  perl -p -i -e 's/(provides.*version)="5\.0\.0"/\1="5\.1\.0d1"/' $dir
              +done
            6. Rebuild the Changelog. I use a tool called cvs2cl. Run this command from the package root to automatically generate a Changelog file in the same dir:

              cd /var/log/aolserver/service0
              +perl /var/tmp/cvs2cl/cvs2cl.pl -F oacs-5-0 --delta openacs-5-0-0-final:oacs-5-0
            7. Commit changes -

          2. Check out the whole cvs tree. The files must be checked +

        4. Check out OpenACS Core. 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
          +cvs -d /cvsroot checkout -r oacs-5-0 acs-core

          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
          -
        5. Tag the tree.

          cd /var/tmp/openacs-4
          +
        6. Tag the tree. If it's a final release of core, move or create the appropriate openacs-major-minor-compat tag. (Ie, if releasing 5.0.3 final, move the openacs-5-0-compat flag.)

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

          Branching

          When we feature-freeze on HEAD as part of the release process, we are blocking new development. To avoid this, we branch the code at this point, so that new work can continue on HEAD while the branch is stabilized for release. However, branching means that bug fixes have to be synchronized between HEAD and the branch, and bug fixes tend to be more frequent right at this time. Therefore, our actual branch point is as late as possible - essentially, we do not branch until and unless new feature work is actively blocked by the feature freeze. Branching is almost the same as tagging, except for the flag and slightly different tag nomenclature. To see the list of old branches, cvs status -v somefile.

          cvs tag -b oacs-5-0

          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 @@ -22,8 +44,7 @@ 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>".

        7. 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 :pserver:anonymous@openacs.org:/cvsroot export -r openacs-5-0-0a1 acs-core
              -mv openacs-4 openacs
            2. Generate the tarball.

              cd /var/tmp/tarball
              +cvs -d /cvsroot export -r openacs-5-0-0a1 acs-core
            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 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.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/rp-design.html 24 Feb 2004 17:42:25 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/rp-design.html 27 Feb 2004 11:20:52 -0000 1.23 @@ -15,13 +15,13 @@ pageroot -- Any directory that contains scripts and/or static files intended to be served in response to HTTP requests. A typical OpenACS installation is required to serve files from multiple pageroots.

            2. global pageroot -(/web/servicename/www) -- Files appearing under +(/var/lib/aolserver/servicename/www) -- Files appearing under this pageroot will be served directly off the base url http://www.servicename.com/

            3. package root -(/web/servicename/packages) -- Each subdirectory of +(/var/lib/aolserver/servicename/packages) -- Each subdirectory of the package root is a package. A typical OpenACS installation will have several packages.

            4. package pageroot -(/web/servicename/packages/package_key/www) +(/var/lib/aolserver/servicename/packages/package_key/www) -- This is the pageroot for the package_key package.

            5. request environment (ad_conn) -- This is a global namespace containing variables associated with the current request.

            6. abstract URL -- A URL with no extension that doesn't 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.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/templates.html 24 Feb 2004 17:42:25 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/templates.html 27 Feb 2004 11:20:52 -0000 1.30 @@ -167,4 +167,4 @@ inserting properties into the text of the page. Later on we'll get into templates more deeply, and show how to use database queries as data sources. -

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

      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/tutorial-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-cvs.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 24 Feb 2004 17:42:25 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 27 Feb 2004 11:20:52 -0000 1.5 @@ -58,4 +58,4 @@ initial revision: 1.1 done (many lines omitted) -[service0 myfirstpackage]$

      Figure�10.1.�Upgrading a local CVS repository

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

      Figure�10.1.�Upgrading a local CVS repository

      Upgrading a local CVS repository
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/tutorial-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.html,v diff -u -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 24 Feb 2004 17:42:25 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 27 Feb 2004 11:20:52 -0000 1.22 @@ -1,7 +1,7 @@ Setting Up Database Objects

      Setting Up Database Objects

      by Joel Aufrecht

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

      Code the data model

      We create all database objects with scripts in the +

      Code the data model

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

      Figure�9.2.�Tutorial Data Model

      Tutorial Data Model

      The top of each sql file has some +

      Figure�9.2.�Tutorial Data Model

      Tutorial Data Model

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

      [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�9.3.�Database Creation Script - master create file

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

      Paste this into the file and save and close.

      Figure�9.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�9.4.�Database deletion script

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

      Figure�9.4.�Database deletion script

      -- drop script
       --
       -- @author joel@aufrecht.org
       -- @cvs-id &Id:$
      Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.html,v
      diff -u -r1.21 -r1.22
      --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	24 Feb 2004 17:42:25 -0000	1.21
      +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	27 Feb 2004 11:20:52 -0000	1.22
      @@ -1,7 +1,7 @@
       Debugging and Automated Testing

      Debugging and Automated Testing

      by Joel Aufrecht

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

      Debugging

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

      Debugging

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

      -

      Manual testing

      Make a list of basic tests to make sure it works

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

      Manual testing

      Make a list of basic tests to make sure it works

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

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

      Write automated tests

      by Simon Carstensen and Joel Aufrecht

      + Search for a note.

      Write automated tests

      by Simon Carstensen and Joel Aufrecht

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

      +

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

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

      [service0 www]$ mkdir /var/lib/aolserver/service0/packages/myfirstpackage/tcl/test
       [service0 www]$ cd /var/lib/aolserver/service0/packages/myfirstpackage/tcl/test
      Index: openacs-4/packages/acs-core-docs/www/tutorial-distribute.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-distribute.html,v
      diff -u -r1.4 -r1.5
      --- openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	24 Feb 2004 17:42:25 -0000	1.4
      +++ openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	27 Feb 2004 11:20:52 -0000	1.5
      @@ -2,9 +2,9 @@
               tutorialapp.

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

      Click on the file size +

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

      + /tmp.

      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 24 Feb 2004 17:42:25 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 27 Feb 2004 11:20:52 -0000 1.23 @@ -1,7 +1,7 @@ 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.1.0d1 distribution. -

      Figure�9.1.�Assumptions in this section

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

      Use the APM to initialize a new package

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

      Figure�9.1.�Assumptions in this section

      Fully qualified domain name of your serveryourserver.test
      URL of your serverhttp://yourserver.test:8000
      Name of development 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.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 24 Feb 2004 17:42:25 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 27 Feb 2004 11:20:52 -0000 1.22 @@ -1,8 +1,8 @@ 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�9.5.�Page Map

      Page Map

      Build the "Index" page

      Each user-visible page in your package has, typically, three parts. The tcl file holds the procedural logic for the page, including TCL and database-independent SQL code, and does things like @@ -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,64 +63,55 @@
           } {
       	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 {
      +    }
      [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$
      -
      + 
           @param item_id If present, assume we are editing that note.  Otherwise, we are creating a new note.
      -} { 
      +} {
           item_id:integer,optional
       }
       
       ad_form -name note -form {
           {item_id:key}
           {title:text {label Title}}
       } -new_request {
      +    auth::require_login
           permission::require_permission -object_id [ad_conn package_id] -privilege create
           set page_title "Add a Note"
           set context [list $page_title]
       } -edit_request {
      +    auth::require_login
           permission::require_write_permission -object_id $item_id
           mfp::note::get \
      -    -item_id $item_id \
      -    -array note_array
      +	-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 \
      -    -item_id $item_id
      -    set message "Note $title added"
      +	-title $title
       } -edit_data {
           mfp::note::edit \
      -    -item_id $item_id \
      -    -title $title
      -     set message "Note $title changed"
      +	-item_id $item_id \
      +	-title $title
       } -after_submit {
      -    ad_returnredirect -message $message "."
      +    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)
      @@ -131,6 +125,8 @@
       permission::require_write_permission -object_id $item_id
       set title [item::get_title $item_id]
       mfp::note::delete -item_id $item_id
      -ad_returnredirect -message "Item $title deleted." "."
       
      +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/upgrade-openacs-files.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 24 Feb 2004 17:42:25 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 27 Feb 2004 11:20:52 -0000 1.7 @@ -10,7 +10,7 @@ cp -r openacs-4-6/* openacs-4 exit
    26. Upgrading files for a site in a private CVS repository -

      Figure�5.2.�Upgrading a local CVS repository

      Upgrading a local CVS repository
      1. Unpack the new files into a working directory.

        [root root]# su - service0
        +        

        Figure�5.2.�Upgrading a local CVS repository

        Upgrading a local 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
                       [service0 tmp]$ cd openacs-4.6

          Import the new files into your cvs repository; where they match existing files, they will become the new version of the file.

          [service0 openacs-4.6]$  cvs import -m "upgrade to OpenACS 4.6" openacs 
          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.6 -r1.7
          --- openacs-4/packages/acs-core-docs/www/upgrade-openacs.html	24 Feb 2004 17:42:25 -0000	1.6
          +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs.html	27 Feb 2004 11:20:52 -0000	1.7
          @@ -1,5 +1,5 @@
          -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. +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.

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

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

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

            3. Stop the server

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

            5. Start the server @@ -44,4 +44,4 @@ parameter::set_value -package_id [ad_acs_kernel_id] -parameter UsePasswordWidgetForUsername -value 0 }

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

        3. Upgrade other packages via the APM

        - See also these forum posts: Forum OpenACS Development: 4.6.3 upgrade to 5-HEAD: final results, OpenACS 5.0 Upgrade Experiences.

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

      Upgrading 5.0.0 to 5.0.x

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

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

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

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

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

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

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

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

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

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

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

      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/upgrade-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-overview.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 24 Feb 2004 17:42:25 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 27 Feb 2004 11:20:53 -0000 1.7 @@ -3,4 +3,4 @@ or better, you should always be able to upgrade all of your core packages automatically. If you haven't changed anything, no manual intervention should be required. If you are running - OpenACS prior to 4.5, upgrading will require manual effort.

      If all of these conditions are true:

      • Your OpenACS Core is 5.0.0 or later

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

      • You do not have any custom code

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

      1. Browse to the Installer.

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

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

      Figure�5.1.�Upgrading with the APM

      Upgrading with the APM

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

      Table�5.1.�Assumptions in this section

      name of OpenACS 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
      + OpenACS prior to 4.5, upgrading will require manual effort.

      If all of these conditions are true:

      • Your OpenACS Core is 5.0.0 or later

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

      • You do not have any custom code

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

      1. Browse to the Installer.

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

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

      Figure�5.1.�Upgrading with the APM

      Upgrading with the APM

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

      Table�5.1.�Assumptions in this section

      name of OpenACS 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/variables.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/variables.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/variables.html 24 Feb 2004 17:42:25 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/variables.html 27 Feb 2004 11:20:53 -0000 1.9 @@ -3,7 +3,7 @@ by OpenACS documentation staff.

      Date and Time Variables

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

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

      db_multirow -extend { mydate_pretty } {
      +    ANSI format and then using lc_time_fmt to format it for display.

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

      db_multirow -extend { mydate_pretty } {
           select to_char(mydate, 'YYYY-MM-DD HH24:MI:SS') as mydate_ansi,
                 ...
           ...
      Index: openacs-4/packages/acs-core-docs/www/xml/index.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/index.xml,v
      diff -u -r1.27 -r1.28
      --- openacs-4/packages/acs-core-docs/www/xml/index.xml	24 Feb 2004 17:42:26 -0000	1.27
      +++ openacs-4/packages/acs-core-docs/www/xml/index.xml	27 Feb 2004 11:20:56 -0000	1.28
      @@ -129,10 +129,6 @@
               Section Missing
             
       
      -      
      -        Section Missing
      -      
      -
             
               Section Missing
             
      Index: openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml,v
      diff -u -r1.13 -r1.14
      --- openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml	26 Feb 2004 17:08:06 -0000	1.13
      +++ openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml	27 Feb 2004 11:20:57 -0000	1.14
      @@ -27,7 +27,7 @@
                   Update /readme.txt with the new version number
                 
                 
      -            Update version number in all of the core packages.  Here's a bash/perl script which works but could be made easier to use:
      +            Update version number in all of the core packages.  Here's a bash/perl script which works but could be made easier to use.  Run it from the tarball root:
                 #!/bin/sh
       # run this file from ../packages to renumber all .info version numbers
       
      @@ -50,8 +50,9 @@
       done
               
                 
      -            Rebuild the Changelog.  Using cvs2cl:
      -            perl /var/tmp/cvs2cl/cvs2cl.pl -F oacs-5-0 --delta openacs-5-0-0-final:oacs-5-0
      +            Rebuild the Changelog.  I use a tool called cvs2cl.  Run this command from the package root to automatically generate a Changelog file  in the same dir:
      +            cd /var/log/aolserver/service0
      +perl /var/tmp/cvs2cl/cvs2cl.pl -F oacs-5-0 --delta openacs-5-0-0-final:oacs-5-0
                 
                 
                   
      Index: openacs-4/packages/acs-core-docs/www/xml/variables.ent
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/variables.ent,v
      diff -u -r1.9 -r1.10
      --- openacs-4/packages/acs-core-docs/www/xml/variables.ent	18 Feb 2004 14:43:05 -0000	1.9
      +++ openacs-4/packages/acs-core-docs/www/xml/variables.ent	27 Feb 2004 11:20:57 -0000	1.10
      @@ -1,5 +1,5 @@
       
      -
      -
      +
      +
       
       
      Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/templates.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/templates.xml,v
      diff -u -r1.8 -r1.9
      --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/templates.xml	26 Feb 2004 15:28:37 -0000	1.8
      +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/templates.xml	27 Feb 2004 11:20:57 -0000	1.9
      @@ -241,7 +241,7 @@
       
       
       
      -
      +
       Documentation
       
       Templating system documentation
      Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml,v
      diff -u -r1.18 -r1.19
      --- openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml	26 Feb 2004 15:28:39 -0000	1.18
      +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml	27 Feb 2004 11:20:58 -0000	1.19
      @@ -1,5 +1,5 @@
       
      -
       %myvars;
      @@ -11,9 +11,9 @@
           by Vinod Kurup
         
       
      -
      +  We recommend the use of AOLserver 4.0.1 or later.  These instructions are retained as a resource.
         
      -    (Debian users: we do not recommend installing Debian packages for
      +    Debian users: we do not recommend installing Debian packages for
           Aolserver or Postgres. Several people have
           reported problems while trying to install using apt-get
           instead of from source. If you have the time to debug these
      Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml,v
      diff -u -r1.12 -r1.13
      --- openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml	15 Feb 2004 11:28:44 -0000	1.12
      +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml	27 Feb 2004 11:20:58 -0000	1.13
      @@ -1,5 +1,5 @@
       
      -
       %myvars;
      @@ -870,5 +870,8 @@
             
             Now you are about to configure Squirrelmail. The configuration heavily depends on your setup, so no instructions are given here.
           
      +    
      +      Section Missing
      +    
         
       
      Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml,v
      diff -u -r1.22 -r1.23
      --- openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml	26 Feb 2004 15:28:39 -0000	1.22
      +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml	27 Feb 2004 11:20:58 -0000	1.23
      @@ -125,11 +125,11 @@
       	  since it will not run as root.  Since nobody will log in
       	  directly as that user, we'll leave the password blank.
       	
      +      
               
       	  Debian users should probably use adduser instead of
       	  useradd. Type man adduser
       	
      -      
             [root src]# groupadd web
       [root src]# useradd -g web -d /usr/local/pgsql postgres
       [root src]# mkdir -p /usr/local/pgsql
      @@ -165,8 +165,8 @@
       chown -R postgres:web /usr/local/pgsql /usr/local/src/postgresql-7.4.1
       chmod 750 /usr/local/pgsql
               
      -      
      -
      +
      +    
           
             
               Set up postgres's environment variables
      @@ -527,9 +527,11 @@
               
             
           
      -  
      -  
      -  
      +  
      +
      +
      +
      +
           more information about PostgreSQL