Index: openacs-4/packages/acs-core-docs/www/acs-package-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-package-dev.html,v diff -u -N -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/acs-package-dev.html 18 Feb 2004 14:43:02 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/acs-package-dev.html 24 Feb 2004 17:42:24 -0000 1.15 @@ -1,2 +1,2 @@ Part�III.�For OpenACS Package Developers

For OpenACS Package Developers

Tutorials and reference material for creating new OpenACS packages. -

View comments on this page at openacs.org
+

Table of Contents

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
View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/acs-plat-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-plat-dev.html,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 20 Feb 2004 15:13:40 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 24 Feb 2004 17:42:24 -0000 1.17 @@ -1 +1 @@ -Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

14. 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
15. Internationalization
Translator's Guide
Introduction to Developing Internationalized Packages
Internationalizing Existing Packages
Design Notes
View comments on this page at openacs.org
+Part�IV.�For OpenACS Platform Developers

For OpenACS Platform Developers

Table of Contents

15. Kernel Documentation
Overview
Object Model Requirements
Object Model Design
Permissions Requirements
Permissions Design
Groups Requirements
Groups Design
Subsites Requirements
Subsites Design Document
Package Manager Requirements
Package Manager Design
Database Access API
OpenACS Internationalization Requirements
Security Requirements
Security Design
Security Notes
Request Processor Requirements
Request Processor Design
Documenting Tcl Files: Page Contracts and Libraries
Bootstrapping OpenACS
External Authentication Requirements
16. How to package and release OpenACS
How to Update the OpenACS.org repository
How to Update the translations
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 -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/aolserver4.html 20 Feb 2004 15:13:41 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/aolserver4.html 24 Feb 2004 17:42:24 -0000 1.6 @@ -20,7 +20,6 @@ [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r2 aolserver [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nscache -[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsrewrite [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nspostgres [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nssha1 [root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsoracle @@ -33,7 +32,6 @@ cd aolserver40r2 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v40_r2 aolserver cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nscache -cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsrewrite cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nspostgres cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nssha1 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsoracle @@ -47,8 +45,7 @@ make install ln -s /usr/local/aolserver40r2 /usr/local/aolserver

If this is the only version of AOLserver in use, or is the default version, create a symlink. If not, then be sure to use /usr/local/aolserver40r2 instead of /usr/local/aolserver in future steps.

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

    1. Install nscache

      [root aolserver]# cd /usr/local/src/aolserver40r2/nscache
      -[root nscache]# make install
    2. Install nsrewrite

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

      [root nscache]# cd ../nsoracle
      +[root nscache]# make install
    4. Install nsoracle (if you want to use Oracle)

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

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

      If you get errors like:

      nspostgres.c: In function `Ns_PgTableList':
       nspostgres.c:679: warning: passing arg 3 of `Tcl_DStringAppend' as signed due to prototype

      then PostGreSQL is probably not in the standard location. The location of PostGreSQL is very dependent on which method was used to install it. To correct the problem, replace LSB with the path to the path to your PostGreSQL installation. Often this is /usr/local/pgsql.

      If you run into problems with libpq.a do the following (and repeat the step above)

      [root nspostgres]# ranlib /usr/local/pgsql/lib/libpq.a

      If you run into problems with the linker, edit the Makefile. Add -lnsdb to the MODLIBS var.

      MODLIBS = -L$(PGLIB) -lpq -lnsdb
    6. Install nssha1

      [root nsrewrite]# cd ../nssha1
      Index: openacs-4/packages/acs-core-docs/www/apm-design.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v
      diff -u -N -r1.26 -r1.27
      --- openacs-4/packages/acs-core-docs/www/apm-design.html	18 Feb 2004 14:43:02 -0000	1.26
      +++ openacs-4/packages/acs-core-docs/www/apm-design.html	24 Feb 2004 17:42:24 -0000	1.27
      @@ -1,4 +1,4 @@
      -Package Manager Design

      Package Manager Design

      By Bryan Quinn

      +Package Manager Design

      Package Manager Design

      By Bryan Quinn

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

      Essentials

      • OpenACS Administrator directory

      • Package Manager Requirements

      • Packages

      • ER diagram

      • Tcl API

        An installation of the OpenACS includes the OpenACS Kernel, some services that extend the kernel's functionality, and some applications intended for end-users. Packages function as individual pieces of subsites. A subsite can contain multiple Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 18 Feb 2004 14:43:02 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 24 Feb 2004 17:42:24 -0000 1.22 @@ -1,4 +1,4 @@ -Package Manager Requirements

        Package Manager Requirements

        By Bryan Quinn and Todd Nightingale

        +Package Manager Requirements

        Package Manager Requirements

        By Bryan Quinn and Todd Nightingale

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

        Introduction

        The following is a requirements document for the OpenACS Package Manager Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -N -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 20 Feb 2004 15:13:41 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 24 Feb 2004 17:42:24 -0000 1.23 @@ -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 -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 20 Feb 2004 15:13:41 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 24 Feb 2004 17:42:24 -0000 1.29 @@ -1,4 +1,4 @@ -Bootstrapping OpenACS

        Bootstrapping OpenACS

        By Jon Salz

        +Bootstrapping OpenACS

        Bootstrapping OpenACS

        By Jon Salz

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

        This document describes the startup (bootstrapping) process for an AOLserver Index: openacs-4/packages/acs-core-docs/www/ch10s06.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/ch10s06.html,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/ch10s06.html 20 Feb 2004 15:13:41 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/ch10s06.html 24 Feb 2004 17:42:24 -0000 1.3 @@ -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/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 20 Feb 2004 15:13:41 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 24 Feb 2004 17:42:24 -0000 1.13 @@ -1,7 +1,7 @@ -Appendix�D.�Using CVS with an OpenACS Site

        Appendix�D.�Using CVS with an OpenACS Site

        By Joel Aufrecht

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

        Appendix�D.�Using CVS with an OpenACS Site

        By Joel Aufrecht

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

        Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add +

        Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add it to a CVS repository.

        1. Create and set permissions on a subdirectory in the local cvs repository.

          [root root]# mkdir /cvsroot/service0
           [root root]# chown service0.service0 /cvsroot/service0
          @@ -59,4 +59,4 @@
           su - service0
           cd /var/lib/aolserver
           cvs checkout service0
          -exit
        2. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

        View comments on this page at openacs.org
        +exit
    7. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/db-api-detailed.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api-detailed.html,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 20 Feb 2004 15:13:41 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 24 Feb 2004 17:42:24 -0000 1.29 @@ -1,4 +1,4 @@ -Database Access API

    Database Access API

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

    +Database Access API

    Database Access API

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

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

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

    The Big Picture

    Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 20 Feb 2004 15:13:41 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 24 Feb 2004 17:42:24 -0000 1.30 @@ -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 -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 20 Feb 2004 15:13:41 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 24 Feb 2004 17:42:24 -0000 1.18 @@ -1,4 +1,4 @@ -External Authentication Requirements

    External Authentication Requirements

    Vision

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

    External Authentication Requirements

    Vision

    People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.

    Besides, administrators have better things to do than create @@ -44,7 +44,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.

  • Authentication Driver API: The service contract which authentication drivers implement.

  • Conceptual Pictures

    Authentication:

    -

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

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

    Login

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

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

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

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

    Login

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

    Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.

    Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the @@ -376,4 +376,4 @@ PAM specification

  • Draft Proposal by Andrew Grumet.

  • Yale CAS, a centrl authentication service a' la - Passport.

  • Revision History

    Document Revision #Action Taken, NotesWhen?By Whom?
    1Updated work-in-progress for consortium-sponsored ext-auth work at Collaboraid.20 Aug 2003Joel Aufrecht
    View comments on this page at openacs.org
    + Passport.

    Revision History

    Document Revision #Action Taken, NotesWhen?By Whom?
    1Updated work-in-progress for consortium-sponsored ext-auth work at Collaboraid.20 Aug 2003Joel Aufrecht
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/form-builder.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/form-builder.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/form-builder.html 20 Feb 2004 15:13:41 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 24 Feb 2004 17:42:24 -0000 1.8 @@ -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/groups-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/groups-design.html 18 Feb 2004 14:43:02 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 24 Feb 2004 17:42:24 -0000 1.21 @@ -1,4 +1,4 @@ -Groups Design

      Groups Design

      By Rafael H. Schloming and Mark Thomas

      +Groups Design

      Groups Design

      By Rafael H. Schloming and Mark Thomas

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

      Essentials

      • User directory

      • Sitewide administrator directory

      • Subsite administrator directory

      • TCL script directory

      • OpenACS 4 Groups Requirements

      • Data model

      • PL/SQL file

        • Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 18 Feb 2004 14:43:02 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 24 Feb 2004 17:42:24 -0000 1.21 @@ -1,4 +1,4 @@ -Groups Requirements

          Groups Requirements

          By Rafael H. Schloming, Mark Thomas

          +Groups Requirements

          Groups Requirements

          By Rafael H. Schloming, Mark Thomas

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

          Introduction

          Almost all database-backed websites have users, and need to model the Index: openacs-4/packages/acs-core-docs/www/high-avail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.html,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/high-avail.html 20 Feb 2004 15:13:41 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 24 Feb 2004 17:42:24 -0000 1.3 @@ -1 +1 @@ -High Availability/High Performance Configurations

          High Availability/High Performance Configurations

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

          Figure�6.1.�Multiple-server configuration

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

          High Availability/High Performance Configurations

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

          Figure�6.1.�Multiple-server configuration

          Multiple-server configuration
          View comments on this page at openacs.org
          Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 20 Feb 2004 15:13:41 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 24 Feb 2004 17:42:24 -0000 1.6 @@ -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
          +

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

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

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

        Figure�4.1.�Site Templates

        Site Templates
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/i18n-convert.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 20 Feb 2004 15:14:31 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 24 Feb 2004 17:42:24 -0000 1.2 @@ -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-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-design.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/i18n-design.html 20 Feb 2004 15:14:31 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/i18n-design.html 24 Feb 2004 17:42:24 -0000 1.2 @@ -1,2 +1,2 @@ -Design Notes

        Design Notes

        User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:

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

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

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

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

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

        6. default to en_US

        For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is -found, then that locale is offered instead.

        View comments on this page at openacs.org
        +Design Notes

        Design Notes

        User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:

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

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

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

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

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

        6. default to en_US

        For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is +found, then that locale is offered instead.

        View comments on this page at openacs.org
        Index: openacs-4/packages/acs-core-docs/www/i18n-introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 20 Feb 2004 15:14:31 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 24 Feb 2004 17:42:24 -0000 1.2 @@ -1,4 +1,4 @@ -Introduction to Developing Internationalized Packages

        Introduction to Developing Internationalized Packages

        +Introduction to Developing Internationalized Packages

        Introduction to Developing Internationalized Packages

        This document describes how to develop internationalized OpenACS packages, including writing new packages with internationalization and converting old packages. Text that @@ -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/i18n-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-overview.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/i18n-overview.html 20 Feb 2004 15:14:31 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.html 24 Feb 2004 17:42:24 -0000 1.2 @@ -1 +1 @@ -

        Table�15.1.�Internationalization and Localization

        StageTaskWho
        InternationalizationPackage Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information)Package Developer
        Release ManagementThe newly internationalized package is released.Package Developer
        The translation server is updated with the new package.Translation server maintainers
        LocalizationTranslators work in their respective locales to write text for each message key. (More information)Translators
        Release ManagementThe translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server.Translation server maintainers
        The catalog files are committed to the OpenACS code base.Translation server maintainers
        A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository.Release Manager
        UpgradingSite Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators
        Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten.Site Administrators
        View comments on this page at openacs.org
        +

        Table�14.1.�Internationalization and Localization

        StageTaskWho
        InternationalizationPackage Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information)Package Developer
        Release ManagementThe newly internationalized package is released.Package Developer
        The translation server is updated with the new package.Translation server maintainers
        LocalizationTranslators work in their respective locales to write text for each message key. (More information)Translators
        Release ManagementThe translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server.Translation server maintainers
        The catalog files are committed to the OpenACS code base.Translation server maintainers
        A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository.Release Manager
        UpgradingSite Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators
        Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten.Site Administrators
        View comments on this page at openacs.org
        Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 20 Feb 2004 15:13:41 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 24 Feb 2004 17:42:24 -0000 1.13 @@ -1,4 +1,4 @@ -OpenACS Internationalization Requirements

        OpenACS Internationalization Requirements

        by Henry Minsky, +OpenACS Internationalization Requirements

        OpenACS Internationalization Requirements

        by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, @@ -93,7 +93,7 @@ Analysis

        Other application servers: ATG Dyanmo, Broadvision, Vignette, ... ? Anyone know how they deal with i18n ?

        Related Links

        • System/Package "coversheet" - where all -documentation for this software is linked off of

        • Design document

        • Developer's guide

        • User's guide

        • Other-cool-system-related-to-this-one +documentation for this software is linked off of

        • Design document

        • Developer's guide

        • User's guide

        • Other-cool-system-related-to-this-one document

          LI18NUX 2000 Globalization Specification: http://www.li18nux.net/

          Mozilla Index: openacs-4/packages/acs-core-docs/www/i18n-translators.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-translators.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/i18n-translators.html 20 Feb 2004 15:14:31 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.html 24 Feb 2004 17:42:24 -0000 1.2 @@ -1 +1 @@ -Translator's Guide

          Translator's Guide

          Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.

          The basic steps for translators:

          • Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.

          • Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.

            While in Translator mode, a list of all message keys appears at the bottom of each page.

          • Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.

          View comments on this page at openacs.org
          +Translator's Guide

          Translator's Guide

          Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.

          The basic steps for translators:

          • Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.

          • Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.

            While in Translator mode, a list of all message keys appears at the bottom of each page.

          • Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.

          View comments on this page at openacs.org
          Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/i18n.html 20 Feb 2004 15:13:41 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/i18n.html 24 Feb 2004 17:42:24 -0000 1.20 @@ -1,7 +1,7 @@ -Chapter�15.�Internationalization

          Chapter�15.�Internationalization

          +Chapter�14.�Internationalization

          Chapter�14.�Internationalization

          By Peter Marklund and Lars Pind

          OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -
          View comments on this page at openacs.org
          +
          View comments on this page at openacs.org
          Index: openacs-4/packages/acs-core-docs/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.adp,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/index.adp 11 Dec 2003 21:39:47 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/index.adp 24 Feb 2004 17:42:24 -0000 1.18 @@ -3,21 +3,34 @@
          -Full index - -
          -Errata and Corrections -

          Getting Started +

          Core Documentation with shortcuts

          Primers and References
            -
          • Developer Tutorial +
          • OpenACS FAQs
          • OpenACS CVS Browser
          • Learning OpenACS Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/index.html 20 Feb 2004 15:13:41 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/index.html 24 Feb 2004 17:42:24 -0000 1.31 @@ -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
            D. Using CVS with an OpenACS Site
            E. How to package and release OpenACS
            How to Update the OpenACS.org repository
            How to Update the translations
            IV. For OpenACS Platform Developers
            14. 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
            15. Internationalization
            Translator's Guide
            Introduction to Developing Internationalized Packages
            Internationalizing Existing Packages
            Design Notes
            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 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
            Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 20 Feb 2004 15:13:41 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 24 Feb 2004 17:42:25 -0000 1.19 @@ -1,4 +1,4 @@ -Initialize CVS (OPTIONAL)

            Initialize CVS (OPTIONAL)

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

            Initialize CVS (OPTIONAL)

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

            [root tmp]# mkdir /cvsroot
             [root tmp]# cvs -d /cvsroot init
             [root tmp]#
            Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html
            ===================================================================
            RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v
            diff -u -N -r1.19 -r1.20
            --- openacs-4/packages/acs-core-docs/www/install-daemontools.html	20 Feb 2004 15:13:41 -0000	1.19
            +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html	24 Feb 2004 17:42:25 -0000	1.20
            @@ -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 -N -r1.17 -r1.18
                    --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html	20 Feb 2004 15:13:41 -0000	1.17
                    +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html	24 Feb 2004 17:42:25 -0000	1.18
                    @@ -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-openacs-keepalive.html
              ===================================================================
              RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html,v
              diff -u -N -r1.2 -r1.3
              --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html	20 Feb 2004 15:13:41 -0000	1.2
              +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html	24 Feb 2004 17:42:25 -0000	1.3
              @@ -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 -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 20 Feb 2004 15:13:41 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 24 Feb 2004 17:42:25 -0000 1.20 @@ -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 
          • Install Qmail.�

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

          • 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 -N -r1.19 -r1.20
            --- openacs-4/packages/acs-core-docs/www/install-redhat.html	20 Feb 2004 15:13:41 -0000	1.19
            +++ openacs-4/packages/acs-core-docs/www/install-redhat.html	24 Feb 2004 17:42:25 -0000	1.20
            @@ -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

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

          • Click Next on the boot loader screen

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

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

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

          • Choose your time zone and click Next.

          • Type in a root password, twice.

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

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

            At the bottom, check Select Individual Packages and click Next

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

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

            At the bottom, check Select Individual Packages and click Next

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

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

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

          • Lock down SSH

            1. - + SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming Index: openacs-4/packages/acs-core-docs/www/install-steps.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/install-steps.html 20 Feb 2004 15:13:41 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 24 Feb 2004 17:42:25 -0000 1.13 @@ -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 -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/ix01.html 20 Feb 2004 15:13:41 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/ix01.html 24 Feb 2004 17:42:25 -0000 1.8 @@ -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 - 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

            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/kernel-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.html,v diff -u -N -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/kernel-doc.html 20 Feb 2004 15:13:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.html 24 Feb 2004 17:42:25 -0000 1.24 @@ -1 +1 @@ -Chapter�14.�Kernel Documentation
            View comments on this page at openacs.org
            +Chapter�15.�Kernel Documentation
            View comments on this page at openacs.org
            Index: openacs-4/packages/acs-core-docs/www/kernel-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-overview.html,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/kernel-overview.html 18 Feb 2004 14:43:02 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/kernel-overview.html 24 Feb 2004 17:42:25 -0000 1.18 @@ -1,4 +1,4 @@ -Overview

            Overview

            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 -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/maint-performance.html 20 Feb 2004 15:13:41 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/maint-performance.html 24 Feb 2004 17:42:25 -0000 1.8 @@ -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 -N -r1.2 -r1.3
              --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html	20 Feb 2004 15:13:41 -0000	1.2
              +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html	24 Feb 2004 17:42:25 -0000	1.3
              @@ -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/object-system-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 18 Feb 2004 14:43:02 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -1,4 +1,4 @@ -Object Model Design

            Object Model Design

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

            +Object Model Design

            Object Model Design

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

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

            Essentials

            Data Model

            • Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 18 Feb 2004 14:43:02 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -1,4 +1,4 @@ -Object Model Requirements

              Object Model Requirements

              By Pete Su

              +Object Model Requirements

              Object Model Requirements

              By Pete Su

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

              I. Introduction

              A major goal in OpenACS 4 is to unify and normalize many of the core services Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/objects.html 20 Feb 2004 15:13:41 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/objects.html 24 Feb 2004 17:42:25 -0000 1.30 @@ -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 -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/openacs.html 20 Feb 2004 15:13:41 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/openacs.html 24 Feb 2004 17:42:25 -0000 1.29 @@ -220,15 +220,15 @@ CREATE DATABASE [service0 service0]$ su - service0 -createdb -E UNICODE service0

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

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

              Add 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
            • 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
            • Add Full Text Search Support (OPTIONAL)

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

          • Configure an AOLserver Service for OpenACS.�

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

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

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

              Index: openacs-4/packages/acs-core-docs/www/permissions-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/permissions-design.html 18 Feb 2004 14:43:03 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/permissions-design.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -1,4 +1,4 @@ -Permissions Design

              Permissions Design

              By John Prevost and Rafael H. Schloming

              +Permissions Design

              Permissions Design

              By John Prevost and Rafael H. Schloming

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

              Essentials

              • Tcl in packages/acs-kernel

              • OpenACS 4 Permissions Requirements

              • Index: openacs-4/packages/acs-core-docs/www/permissions-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-requirements.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/permissions-requirements.html 18 Feb 2004 14:43:03 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/permissions-requirements.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -1,4 +1,4 @@ -Permissions Requirements

                Permissions Requirements

                By John McClary Prevost

                +Permissions Requirements

                Permissions Requirements

                By John McClary Prevost

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

                Introduction

                This document records requirements for the OpenACS 4 Permissions system, a Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -N -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 20 Feb 2004 15:13:42 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 24 Feb 2004 17:42:25 -0000 1.23 @@ -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 -N -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/postgres.html 20 Feb 2004 15:13:42 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/postgres.html 24 Feb 2004 17:42:25 -0000 1.28 @@ -92,7 +92,7 @@ Change to the postgres user and run ./configure to set the compilation options automatically. This is the point at which you can configure PostgreSQL in various ways. For example, if you want to enable - Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help. + Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help.

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

                [root src]# su - postgres
                 [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4
                 [postgres postgresql-7.3.4]$ ./configure --with-includes=/sw/include/ --with-libraries=/sw/lib --enable-locale --enable-multibyte \
                Index: openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html
                ===================================================================
                RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html,v
                diff -u -N -r1.19 -r1.20
                --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html	20 Feb 2004 15:13:42 -0000	1.19
                +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html	24 Feb 2004 17:42:25 -0000	1.20
                @@ -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 -N -r1.32 -r1.33 --- openacs-4/packages/acs-core-docs/www/release-notes.html 20 Feb 2004 15:13:42 -0000 1.32 +++ openacs-4/packages/acs-core-docs/www/release-notes.html 24 Feb 2004 17:42:25 -0000 1.33 @@ -1,4 +1,4 @@ -OpenACS Release Notes

                OpenACS Release Notes

                Version 5.0.0

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

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

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

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

                ($Id$)
                View comments on this page at openacs.org
                Index: openacs-4/packages/acs-core-docs/www/releasing-openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs.html,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/releasing-openacs.html 20 Feb 2004 15:13:42 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs.html 24 Feb 2004 17:42:25 -0000 1.14 @@ -1,4 +1,4 @@ -Appendix�E.�How to package and release OpenACS

                Appendix�E.�How to package and release OpenACS

                1. Update documentation version numbers:

                  1. Update /packages/acs-core-docs/www/xml/variables.ent with the new version number and regenerate all HTML docs +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. Commit changes

                    2. Check out the whole cvs tree. The files must be checked @@ -126,4 +126,4 @@ # Clean up after ourselves... cd $BASE && rm -rf dotlrn-tarball tarball openacs-4 dotlrn-packages -

                ($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/requirements-template.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/requirements-template.html,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/requirements-template.html 20 Feb 2004 15:13:42 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/requirements-template.html 24 Feb 2004 17:42:25 -0000 1.29 @@ -1,4 +1,4 @@ -System/Application Requirements Template

                System/Application Requirements Template

                By You

                +System/Application Requirements Template

                System/Application Requirements Template

                By You

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

                Introduction

                @@ -80,4 +80,4 @@ pre-existing system or prototype first, and thus you may want to write some thoughts on implementation, for aiding and guiding yourself or other programmers. -

                Revision History

                Document Revision #Action Taken, NotesWhen?By Whom?
                0.3Edited further, incorporated feedback from Michael Yoon9/05/2000Kai Wu
                0.2Edited8/22/2000Kai Wu
                0.1Created8/21/2000Josh Finkler, Audrey McLoghlin
                ($Id$)
                View comments on this page at openacs.org
                +

                Revision History

                Document Revision #Action Taken, NotesWhen?By Whom?
                0.3Edited further, incorporated feedback from Michael Yoon9/05/2000Kai Wu
                0.2Edited8/22/2000Kai Wu
                0.1Created8/21/2000Josh Finkler, Audrey McLoghlin
                ($Id$)
                View comments on this page at openacs.org
                Index: openacs-4/packages/acs-core-docs/www/rp-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/rp-design.html 18 Feb 2004 14:43:03 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/rp-design.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -1,4 +1,4 @@ -Request Processor Design

                Request Processor Design

                By Rafael H. Schloming

                +Request Processor Design

                Request Processor Design

                By Rafael H. Schloming

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

                Essentials

                • OpenACS 4 Request Processor Requirements

                • Index: openacs-4/packages/acs-core-docs/www/rp-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/rp-requirements.html 18 Feb 2004 14:43:03 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.html 24 Feb 2004 17:42:25 -0000 1.20 @@ -1,4 +1,4 @@ -Request Processor Requirements

                  Request Processor Requirements

                  By Rafael H. Schloming

                  +Request Processor Requirements

                  Request Processor Requirements

                  By Rafael H. Schloming

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

                  Introduction

                  The following is a requirements document for the OpenACS 4.0 request Index: openacs-4/packages/acs-core-docs/www/security-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/security-design.html 18 Feb 2004 14:43:03 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/security-design.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -1,4 +1,4 @@ -Security Design

                  Security Design

                  By Richard Li and Archit Shah

                  +Security Design

                  Security Design

                  By Richard Li and Archit Shah

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

                  Introduction

                  Index: openacs-4/packages/acs-core-docs/www/security-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.html,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/security-notes.html 20 Feb 2004 15:13:42 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/security-notes.html 24 Feb 2004 17:42:25 -0000 1.29 @@ -1,4 +1,4 @@ -Security Notes

                  Security Notes

                  By Richard Li

                  +Security Notes

                  Security Notes

                  By Richard Li

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

                  Index: openacs-4/packages/acs-core-docs/www/security-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-requirements.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/security-requirements.html 20 Feb 2004 15:13:42 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/security-requirements.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -1,4 +1,4 @@ -Security Requirements

                  Security Requirements

                  By Richard Li

                  +Security Requirements

                  Security Requirements

                  By Richard Li

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

                  Introduction

                  Index: openacs-4/packages/acs-core-docs/www/subsites-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-design.html,v diff -u -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/subsites-design.html 18 Feb 2004 14:43:03 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/subsites-design.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -1,4 +1,4 @@ -Subsites Design Document

                  Subsites Design Document

                  By Rafael H. Schloming

                  +Subsites Design Document

                  Subsites Design Document

                  By Rafael H. Schloming

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

                  *Note* This document has not gone through the any of the Index: openacs-4/packages/acs-core-docs/www/subsites-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-requirements.html,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/subsites-requirements.html 18 Feb 2004 14:43:03 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -1,4 +1,4 @@ -Subsites Requirements

                  Subsites Requirements

                  By Rafael H. Schloming and Dennis Gregorovic

                  +Subsites Requirements

                  Subsites Requirements

                  By Rafael H. Schloming and Dennis Gregorovic

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

                  Introduction

                  The following is a requirements document for OpenACS 4 Subsites, part of the Index: openacs-4/packages/acs-core-docs/www/tcl-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tcl-doc.html,v diff -u -N -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/tcl-doc.html 20 Feb 2004 15:13:42 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/tcl-doc.html 24 Feb 2004 17:42:25 -0000 1.30 @@ -1,4 +1,4 @@ -Documenting Tcl Files: Page Contracts and Libraries

                  Documenting Tcl Files: Page Contracts and Libraries

                  By Jon Salz on 3 July 2000

                  +Documenting Tcl Files: Page Contracts and Libraries

                  Documenting Tcl Files: Page Contracts and Libraries

                  By Jon Salz on 3 July 2000

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

                  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 -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 20 Feb 2004 15:13:42 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -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 -N -r1.20 -r1.21
                  --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	20 Feb 2004 15:13:42 -0000	1.20
                  +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	24 Feb 2004 17:42:25 -0000	1.21
                  @@ -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 -N -r1.3 -r1.4
                  --- openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	20 Feb 2004 15:13:42 -0000	1.3
                  +++ openacs-4/packages/acs-core-docs/www/tutorial-distribute.html	24 Feb 2004 17:42:25 -0000	1.4
                  @@ -6,5 +6,5 @@
                           (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 -N -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 20 Feb 2004 15:13:42 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 24 Feb 2004 17:42:25 -0000 1.22 @@ -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 -N -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 20 Feb 2004 15:13:42 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 24 Feb 2004 17:42:25 -0000 1.21 @@ -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".

                  Build the "Index" page

                  Each user-visible page in your package has, typically, three parts. The tcl file holds the procedural logic for the page, including TCL and database-independent SQL code, and does things like Index: openacs-4/packages/acs-core-docs/www/update-repository.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-repository.html,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/update-repository.html 12 Feb 2004 13:51:40 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/update-repository.html 24 Feb 2004 17:42:25 -0000 1.4 @@ -1,4 +1,4 @@ -How to Update the OpenACS.org repository

                  How to Update the OpenACS.org repository

                  1. +How to Update the OpenACS.org repository

                    How to Update the OpenACS.org repository

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

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

                    3. @@ -13,4 +13,4 @@ The files will be stored on the server's hard drive in the directory specified by the 'repository_dir' variable in the page script, by default "[acs_root_dir]/www/repository/".

                  2. If you're on openacs.org, everything should now be fine. Otherwise, you need to move the entire directory tree to openacs.org:/web/openacs/www/repository, replacing what was already there. -

                  View comments on this page at openacs.org
                  +

                  View comments on this page at openacs.org
                  Index: openacs-4/packages/acs-core-docs/www/update-translations.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-translations.html,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-core-docs/www/update-translations.html 12 Feb 2004 13:51:40 -0000 1.1 +++ openacs-4/packages/acs-core-docs/www/update-translations.html 24 Feb 2004 17:42:25 -0000 1.2 @@ -1,6 +1,6 @@ -How to Update the translations

                  How to Update the translations

                  1. +How to Update the translations

                    How to Update the translations

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

                    2. Go to ACS Lang admin page and click "Import All Messages"

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

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

                    5. Run the acs-lang/bin/check-catalog.sh script. (This checks for keys no longer in use and some other things. Until it is rolled into the UI, do it manually and check the results and take whatever steps you can intuit you should do.) -

                    6. CVS commit the catalog files. Done

                    View comments on this page at openacs.org
                    +

                  2. CVS commit the catalog files. Done

                  View comments on this page at openacs.org
                  Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 20 Feb 2004 15:13:42 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 24 Feb 2004 17:42:25 -0000 1.6 @@ -10,7 +10,7 @@ cp -r openacs-4-6/* openacs-4 exit
                • Upgrading files for a site in a private CVS repository -

                  Figure�5.2.�Upgrading a local CVS repository

                  Upgrading a local CVS repository
                  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 -N -r1.5 -r1.6
                      --- openacs-4/packages/acs-core-docs/www/upgrade-openacs.html	20 Feb 2004 15:13:42 -0000	1.5
                      +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs.html	24 Feb 2004 17:42:25 -0000	1.6
                      @@ -1,4 +1,4 @@
                      -Upgrading OpenACS

                      Upgrading OpenACS

                      Upgrading 4.5 or higher to 4.6.3

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

                      Upgrading OpenACS

                      Upgrading 4.5 or higher to 4.6.3

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

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

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

                      3. Stop the server

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

                      5. Index: openacs-4/packages/acs-core-docs/www/upgrade-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-overview.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 20 Feb 2004 15:13:42 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 24 Feb 2004 17:42:25 -0000 1.6 @@ -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/upgrade-supporting.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-supporting.html,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 18 Feb 2004 14:43:03 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 24 Feb 2004 17:42:25 -0000 1.5 @@ -32,7 +32,16 @@ psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql exit
                    2. OPTIONAL: Install the new OpenFTS Engine.�If you want to upgrade the OpenFTS Engine, do these steps. (You must have already upgraded the OpenFTS driver to - 0.3.2.)

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

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

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

                      4. Click Set Parameters

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

                      7. Click Administration.

                      8. Click Initialize OpenFTS Engine

                  Upgrading from PostGreSQL 7.2 to 7.3

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

                  + 0.3.2.)

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

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

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

                  4. Click Set Parameters

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

                  7. Click Administration.

                  8. Click Initialize OpenFTS Engine

                • Upgrading from PostGreSQL 7.2 to 7.3

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

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

                  1. Back up the database as per PostgreSQL.

                  2. Run the upgrade script on the backup file.

                    [root root]# su - service0
                               [service0 service0]# cd /var/lib/aolserver/service0/bin
                               [service0 bin]$ ./pg_7.2to7.3_upgrade_helper.pl \
                    @@ -48,6 +57,20 @@
                               (many lines omitted)
                               [service0 bin]$
                               
                  3. Use perl to replace timestamp with timestamptz in the dump file.

                    find . -type f -name "*sql" | xargs perl -p -i.tmp -e "s/timestamp with time zone/timestamptz/g"
                    -          find . -type f -name "*sql" | xargs perl -p -i.tmp -e "s/\\wtimestamp[^t]/ timestamptz/g"
                  4. Install PostgreSQL 7.3.x. Note that you PostgreSQL + find . -type f -name "*sql" | xargs perl -p -i.tmp -e "s/\\wtimestamp[^t]/ timestamptz/g"

                  5. Create a new user for PostgreSQL 7.3.x, as per the + Postgres installation guide. Keep in mind that your + installation location is different, and your startup script + (/etc/init.d/postgres73 should be named differently. You + might even need to edit that file to make the paths correct) +

                  6. Install PostgreSQL 7.3.x. Note that you PostgreSQL must listen on a different port in order to work - correctly.

                  7. Restore the database from dump as per the recovery instructions.

                  View comments on this page at openacs.org
                  + correctly, so you'll need to edit the configuration file + (/usr/local/pgsql73/data/postgresql.conf) and + change the port (to 5433, say). create a second postgres + user to differentiate between the two postgres + installs. When you do ./configure, you'll need to include + --prefix=$HOME to ensure that it is installed in the + postgres73 user's home directory.

                • Change the path in + service0's .bashrc or + .bash_profile (or both) files to reflect the new postgres73 + user directory.

                • Restore the database from dump as per the recovery instructions.

                • View comments on this page at openacs.org
                  Index: openacs-4/packages/acs-core-docs/www/variables.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/variables.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/variables.html 20 Feb 2004 15:13:42 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/variables.html 24 Feb 2004 17:42:25 -0000 1.8 @@ -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 -N -r1.26 -r1.27
                  --- openacs-4/packages/acs-core-docs/www/xml/index.xml	20 Feb 2004 15:13:46 -0000	1.26
                  +++ openacs-4/packages/acs-core-docs/www/xml/index.xml	24 Feb 2004 17:42:26 -0000	1.27
                  @@ -296,12 +296,13 @@
                         
                       
                   
                  +      
                  +        Section missing
                  +      
                  +
                       
                         CVS Section missing
                       
                  -    
                  -      'Releasing OpenACS' missing
                  -    
                   
                     
                   
                  @@ -412,9 +413,9 @@
                           Section missing
                         
                       
                  -      
                  -        Section missing
                  -      
                  +    
                  +      'Releasing OpenACS' 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 -N -r1.10 -r1.11
                  --- openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml	12 Feb 2004 13:51:42 -0000	1.10
                  +++ openacs-4/packages/acs-core-docs/www/xml/releasing-openacs.xml	24 Feb 2004 17:42:26 -0000	1.11
                  @@ -1,12 +1,12 @@
                   
                  -
                   %myvars;
                   ]>
                   
                  -
                  +
                     How to package and release OpenACS
                       
                         
                  @@ -223,5 +223,5 @@
                             
                           
                       
                  -  
                  +
                     
                  \ No newline at end of file
                  Index: openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml
                  ===================================================================
                  RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml,v
                  diff -u -N -r1.13 -r1.14
                  --- openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml	26 Jan 2004 15:39:44 -0000	1.13
                  +++ openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml	24 Feb 2004 17:42:26 -0000	1.14
                  @@ -30,24 +30,54 @@
                   	  url="http://openacs.org/">OpenACS website.
                     
                       
                  -    
                  -  
                  -	You may want to begin by reading our installation documentation for
                  -	.  Note that the Windows documentation is
                  -	not current for OpenACS &version;, but an alternative is to use John
                  -	Sequeira's Oasis VM
                  -	project.
                  -  
                  -    
                  -    
                  -	After installation, the full documentation set can be found by visiting
                  -	http://yourserver/doc.
                  -  
                  -    
                     
                   END OF TEMPLATE -->
                   
                  +   
                  +     Version 5.1.0
                  + 
                  +       
                  +         
                  +        Under Development - update this no later than 5.1.0rc1
                  +      
                  +     
                  +     
                  +
                  +   
                  +     Version 5.0.2
                  + 
                  +       
                  +         
                  +         Bug fixes: #1495. Croatian enabled by default, #1496. APM automated install fails if files have spaces in their names, #1494. automated upgrade crashes (halting the upgrade process)
                  +         
                  +         
                  +           Complete Change list since 5.0.0 in Changelog
                  +         
                  +         
                  +         File tagging scheme in CVS changed to follow TIP #46: (Approved) Rules for Version Numbering and CVS tagging of Packages
                  +         
                  +     
                  +     
                  + 
                  +   
                  +     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