Index: openacs-4/packages/acs-core-docs/www/acs-admin.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/acs-core-docs/www/acs-admin.html	30 Nov 2002 17:16:23 -0000	1.9
+++ openacs-4/packages/acs-core-docs/www/acs-admin.html	28 Feb 2003 05:36:03 -0000	1.10
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part�Part II.�For OpenACS Admins</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="release-notes.html" title="OpenACS 4.6 Release Notes"><link rel="next" href="unix-install.html" title="Chapter�2.�Installing on Unix/Linux"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="unix-install.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="acs-admin"></a>For OpenACS Admins</h1></div></div><div class="partintro"><div></div><p>Help to the folks keeping an OpenACS installation up and running.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="unix-install.html">Installing on Unix/Linux</a></dt><dd><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></dd><dt>3. <a href="win-install.html">Installing on Windows</a></dt><dd><dl><dt><a href="win-overview.html">Overview</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="unix-install.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Release Notes&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter�2.�Installing on Unix/Linux</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Part II. Administrator's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="release-notes.html" title="OpenACS 4.6 Release Notes"><link rel="next" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="unix-install.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="acs-admin"></a>Administrator's Guide</h1></div></div><div class="partintro"><div></div><p>Guide to installation, upgrade, and maintenance.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="unix-install.html">Installing on Unix/Linux</a></dt><dd><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></dd><dt>3. <a href="win-install.html">Installing on Windows</a></dt><dd><dl><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></dd><dt>4. <a href="mac-install.html">Installing on a Macintosh</a></dt><dd><dl><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading OpenACS 4.5 to 4.6</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="unix-install.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Release Notes&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 2. Installing on Unix/Linux</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/acs-dev.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/acs-dev.html,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/acs-core-docs/www/acs-dev.html	30 Nov 2002 17:16:23 -0000	1.9
+++ openacs-4/packages/acs-core-docs/www/acs-dev.html	28 Feb 2003 05:36:03 -0000	1.10
@@ -1,3 +1,3 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part�Part III.�For OpenACS Developers</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"><link rel="next" href="dev-guide.html" title="Chapter�4.�OpenACS Developer's Guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="win2k-installation.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dev-guide.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="acs-dev"></a>For OpenACS Developers</h1></div></div><div class="partintro"><div></div><p>This is the place to look if you want to extend OpenACS and build on top
-	of what's already here. Here you can find out about the guts of the system.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>4. <a href="dev-guide.html">OpenACS Developer's Guide</a></dt><dd><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS 4.6 Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt></dl></dd><dt>5. <a href="more-developer-info.html">Other Developer Resources</a></dt><dd><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>6. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>7. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="win2k-installation.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dev-guide.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Installation Guide for Windows2000&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter�4.�OpenACS Developer's Guide</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/acs-dev.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Part III. For OpenACS Developers</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="upgrade-4.5-to-4.6.html" title="Upgrading OpenACS 4.5 to 4.6"><link rel="next" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-4.5-to-4.6.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dev-guide.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="acs-dev"></a>For OpenACS Developers</h1></div></div><div class="partintro"><div></div><p>How to extend and customize OpenACS.  How to create your
+	own package.  How to contribute your work back to the community.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>6. <a href="dev-guide.html">OpenACS Developer's Guide</a></dt><dd><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="tutorial.html">OpenACS 4.6 Package Tutorial</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt><dt><a href="submissions.html">Contributions</a></dt><dt><a href="i18n.html">Internationalization</a></dt></dl></dd><dt>7. <a href="more-developer-info.html">Other Developer Resources</a></dt><dd><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>8. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>9. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="i18n-requirements.html">OpenACS 4.6 Internationalization Requirements</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-4.5-to-4.6.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dev-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Upgrading OpenACS 4.5 to 4.6&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 6. OpenACS Developer's Guide</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/acs-dev.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/aolserver.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/aolserver.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/aolserver.html	28 Feb 2003 05:36:03 -0000	1.9
@@ -1,91 +1,100 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install AOLserver 3.3+ad13</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="postgres.html" title="Install PostgreSQL 7.1.3"><link rel="next" href="openacs.html" title="Install OpenACS 4.5"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="postgres.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="openacs.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="aolserver"></a>Install AOLserver 3.3+ad13</h2></div></div><div class="authorblurb"><p>
-	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-download"></a>Download the Distribution</h3></div></div><p>
-	  Mat Kovach is graciously maintaining an AOLServer distribution that
-	  includes all the patches and modules needed to run OpenACS 4.5. These
-	  instructions will describe how to install using his source
-	  distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and
-	  perhaps more to come), currently located at <a href="http://uptime.openacs.org/aolserver-openacs/" target="_top">uptime.openacs.org</a>.
-	</p><p>
-	  It's also possible to download all the pieces and patches yourself:
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  AOLServer is available at <a href="http://aolserver.com" target="_top">aolserver.com</a> 
-		</p></li><li><p> 
-		  ArsDigita's AOLServer distribution (including
-		  internationalization patches, nscache, nsrewrite, nssha1 and the
-		  oracle driver) is available at <a href="http://www.arsdigita.com/acs-repository/download-verify?version_id=2081" target="_top">arsdigita.com</a>
-		  </p></li><li><p>
-		  The OpenACS PostgreSQL driver is available from <a href="http://openacs.org/software" target="_top">OpenACS</a>
-		</p></li><li><p>
-		  nsxml is available at <a href="http://acs-misc.sourceforge.net/dl/nsxml.tgz" target="_top">http://acs-misc.sourceforge.net</a>. 
-		</p></li><li><p>
-		  The patch that makes <tt>exec</tt> work
-		  on BSD is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=415475&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
-		</p></li><li><p>
-		  The patch that makes <tt>ns_uuencode</tt>
-		  work for binary files is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=474259&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
-		</p></li><li><p>
-		  The patch that makes AOLServer respect the
-		  <tt>-g</tt> flag is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=509413&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
-		</p></li></ul></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install AOLserver 3.3+ad13</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="postgres.html" title="Install PostgreSQL 7.2.3"><link rel="next" href="openacs.html" title="Install OpenACS 4.6"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="postgres.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="openacs.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="aolserver"></a>Install AOLserver 3.3+ad13</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-download"></a>Download the Distribution</h3></div></div><p>
+      Mat Kovach is graciously maintaining an AOLServer distribution that
+      includes all the patches and modules needed to run OpenACS 4.6. These
+      instructions will describe how to install using his source
+      distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and
+      perhaps more to come), currently located at <a href="http://uptime.openacs.org/aolserver-openacs/" target="_top">uptime.openacs.org</a>.
+    </p><p>
+      It's also possible to download all the pieces and patches yourself:
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          AOLServer is available at <a href="http://aolserver.com" target="_top">aolserver.com</a> 
+        </p></li><li><p> 
+          ArsDigita's AOLServer distribution (including
+          internationalization patches, nscache, nsrewrite, nssha1 and the
+          oracle driver) is available at <a href="http://www.arsdigita.com/acs-repository/download-verify?version_id=2081" target="_top">arsdigita.com</a>
+          </p></li><li><p>
 
-	  .... or just Download <a href="http://uptime.openacs.org/aolserver-openacs/aolserver3.3ad13-oacs1-beta-src.tar.gz" target="_top">Mat's
-	  AOLServer distribution</a> to
-	  <tt>/tmp</tt>
+          The OpenACS PostgreSQL driver (nspostgres.so) is available from
+          <a href="http://prdownloads.sourceforge.net/aolserver/nspostgres-3.5beta1.tar.gz?download" target="_top">SourceForge. If
+          you do decide to use nspostgres.so, you have to remember to
+          change the AOLserver config file to point to nspostgres.so
+          instead of postgres.so. This guide uses Mat Kovach's distro
+          (i.e. postgres.so)</a>
 
-	</p><pre class="programlisting">
+        </p></li><li><p>
+          nsxml is available at <a href="http://acs-misc.sourceforge.net/dl/nsxml.tgz" target="_top">http://acs-misc.sourceforge.net</a>. 
+        </p></li><li><p>
+          The patch that makes <tt>exec</tt> work
+          on BSD is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=415475&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
+        </p></li><li><p>
+          The patch that makes <tt>ns_uuencode</tt>
+          work for binary files is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=474259&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
+        </p></li><li><p>
+          The patch that makes AOLServer respect the
+          <tt>-g</tt> flag is available at <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=509413&amp;group_id=3152&amp;atid=303152" target="_top">sourceforge.net</a>
+        </p></li></ul></div><p>
+
+      .... or just Download <a href="http://uptime.openacs.org/aolserver-openacs/aolserver3.3ad13-oacs1-beta-src.tar.gz" target="_top">Mat's
+      AOLServer distribution</a> to
+      <tt>/tmp</tt>
+
+    </p><pre class="programlisting">
 joeuser:~$ cd /tmp
 joeuser:/tmp$ wget -c http://uptime.openacs.org/aolserver-openacs/aolserver3.3ad13-oacs1-beta-src.tar.gz
 joeuser:/tmp$ cd</pre><p>
 
-	  As <tt>root</tt>, untar
-	  <tt>aolserver3.3ad13-oacs1-beta-src.tar.gz</tt>
-	  into <tt>/usr/local/src</tt>
+      As <tt>root</tt>, untar
+      <tt>aolserver3.3ad13-oacs1-beta-src.tar.gz</tt>
+      into <tt>/usr/local/src</tt>
 
-	</p><pre class="programlisting">
+    </p><pre class="programlisting">
 joeuser:~$ su -
 Password: **********
-root:~$ cd /usr/local/src
-root:/usr/local/src# tar xzf /tmp/aolserver3.3ad13-oacs1-beta-src.tar.gz</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-user-accounts"></a>Create the nsadmin user</h3></div></div><p>
-	  You will need a special user account for running AOLServer. This user
-	  will be called <tt>nsadmin</tt> and belong
-	  to the special group <tt>web</tt>. 
-	  <tt>nsadmin</tt>'s home directory will
-	  be <tt>/usr/local/aolserver</tt>.You must
-	  execute these steps as <tt>root</tt>.
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  Run these commands: 
-		</p><pre class="programlisting">
+root:~# cd /usr/local/src
+root:/usr/local/src# tar xzf /tmp/aolserver3.3ad13-oacs1-beta-src.tar.gz
+root:/usr/local/src# chown -R root.root aolserver</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-user-accounts"></a>Set up your user account</h3></div></div><p>
+
+      AOLserver needs to be started as the root user if you want to use
+      port 80. Once it starts, though, it will drop the root privileges and
+      run as another user, which you must specify on the command line. It's
+      important that this user has as few privileges as possible. Why?
+      Because if an intruder somehow breaks in through AOLserver, you don't
+      want him to have any ability to do damage to the rest of your
+      server. At the same time, AOLserver needs to have write access to
+      some files on your system in order for OpenACS to function
+      properly. So, we'll run AOLserver as the
+      <tt>nobody</tt> user and the
+      <tt>web</tt> group. We'll add your regular
+      user account to the <tt>web</tt> group and
+      make sure that OpenACS files are group readable and writable.
+
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          Run these commands: 
+        </p><pre class="programlisting">
 root:/usr/local/src# cd
-root:~# groupadd nsadmin
 root:~# groupadd web
-root:~# useradd -g nsadmin -G web -d /usr/local/aolserver nsadmin
-root:~# passwd nsadmin
-; Set password for nsadmin
-       
-root:~# mkdir -p /web /usr/local/aolserver
-root:~# chown -R nsadmin.web /usr/local/aolserver /web /usr/local/src/aolserver
-root:~# chmod 775 /usr/local/aolserver /web
-root:~# exit</pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-env"></a>Set up nsadmin's environment variables</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p> At this point, you should customize the
-		  <tt>nsadmin</tt> login scripts. Login as
-		  <tt>nsadmin</tt> and add the following
-		  lines to your
-		  <tt>/usr/local/aolserver/.bash_profile</tt>:
-		</p><pre class="programlisting">
-joeuser:~$ su - nsadmin
-Password: ***********
-nsadmin:~$ emacs .bash_profile</pre><p>
-		  Add the first set of lines, if you're using Oracle. The 2nd set
-		  of lines, if you're using PostgreSQL.  <span class="emphasis"><em>Oracle
-		  Note:</em></span> These environment variables are specific for a
-		  local Oracle installation communicating via IPC. If you are
-		  connecting to a remote Oracle installation, you'll need to adjust
-		  these appropriately. Also, make sure that the '8.1.7' matches
-		  your Oracle version.
-		</p><pre class="programlisting">
+root:~# adduser <span class="emphasis"><em>joeuser</em></span> web
+root:~# exit</pre></li></ul></div><p>
+
+      Next, we'll set up our environment variables. Add the following lines
+      to your <tt>/home/joeuser/.bash_profile</tt>:
+
+    </p><pre class="programlisting">
+joeuser:~$ emacs .bash_profile</pre><p>
+
+      Add the first set of lines, if you're using Oracle. The 2nd set of
+      lines, if you're using PostgreSQL.  <span class="emphasis"><em>Oracle Note:</em></span>
+      These environment variables are specific for a local Oracle
+      installation communicating via IPC. If you are connecting to a remote
+      Oracle installation, you'll need to adjust these appropriately. Also,
+      make sure that the '8.1.7' matches your Oracle version.
+
+    </p><pre class="programlisting">
 # For Oracle
 export ORACLE_BASE=/ora8/m01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
@@ -98,136 +107,192 @@
 # For PostgreSQL
 export PATH=$PATH:/usr/local/pgsql/bin
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib</pre><p>
-		  Be absolutely certain that you have entered these lines correctly
-		  and that you have saved the file - a slight error in these lines
-		  can lead to many inscrutable error messages. Logout and log back
-		  in so these settings will take effect. Use the
-		  <tt>echo</tt> command to be sure that the
-		  environment variables have been properly assigned.
-		</p><pre class="programlisting">
-nsadmin:~$ exit
-joeuser:~$ su - nsadmin
+
+      Be absolutely certain that you have entered these lines correctly and
+      that you have saved the file - a slight error in these lines can lead
+      to many inscrutable error messages. Logout and log back in so these
+      settings will take effect. Use the
+      <tt>echo</tt> command to be sure that the
+      environment variables have been properly assigned.
+
+    </p><pre class="programlisting">
+joeuser:~$ exit
+LOGIN: joeuser
 Password: *********
-nsadmin:~$ echo $PATH
+joeuser:~$ echo $PATH
 ...some other directory paths...:/usr/local/pgsql/bin
-nsadmin:~$ echo $LD_LIBRARY_PATH
+joeuser:~$ echo $LD_LIBRARY_PATH
 :/usr/local/pgsql/lib</pre><p>
-		  Note: The result should be different if you're using Oracle. 
-		  <tt>/ora8/m01/app/oracle/product/8.1.7</tt>
-		  should have been in <tt>$PATH</tt>.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-libxml2"></a>Install libxml2 &amp; headers</h3></div></div><p>
 
-	  In order for nsxml to compile, you need libxml2
-	  (available from <a href="http://xmlsoft.org" target="_top">http://xmlsoft.org</a>). On Debian,
-	  this can be installed by doing <tt>apt-get install
-		libxml2-dev</tt>. Users of other distributions can
-	  download rpms from <a href="ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxml/" target="_top">ftp.gnome.org</a>. You'll
-	  need the <tt>libxml2</tt> and
-	  <tt>libxml2-devel</tt> packages.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-compile"></a>Compile and install AOLserver</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>Prepare the distribution</p><pre class="programlisting">
-nsadmin:~$ cd /usr/local/src/aolserver
-nsadmin:/usr/local/src/aolserver$ ./conf-clean
+      Note: The result should be different if you're using Oracle.
+      <tt>/ora8/m01/app/oracle/product/8.1.7</tt>
+      should have been in <tt>$PATH</tt>.
+
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-libxml2"></a>Install libxml2 &amp; headers</h3></div></div><p>
+
+      In order for nsxml to compile, you need libxml2
+      (available from <a href="http://xmlsoft.org" target="_top">http://xmlsoft.org</a>). On Debian,
+      this can be installed by doing <tt>apt-get install
+        libxml2-dev</tt>. Users of other distributions can
+      download rpms from <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2" target="_top">rpmfind.net</a>. You'll
+      need the <tt>libxml2</tt> and
+      <tt>libxml2-devel</tt> packages.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-compile"></a>Compile and install AOLserver</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>Prepare the distribution. You need to be root.</p><pre class="programlisting">
+joeuser:~$ su -p
+Password: ********
+root:~# mkdir -p /usr/local/aolserver
+root:~# cd /usr/local/src/aolserver
+root:/usr/local/src/aolserver# ./conf-clean
 cat: BUILD-MODULES: No such file or directory
 Done.</pre></li><li><p>
 
-		  Put the name of the driver(s) that you want into
-		  <tt>conf-db</tt>. This can be
-		  <tt>&quot;postgresql&quot;</tt>,
-		  <tt>&quot;oracle&quot;</tt>, or the word
-		  <tt>&quot;both&quot;</tt> if you want both drivers
-		  installed.
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/aolserver$ echo &quot;postgresql&quot; &gt; conf-db</pre></li><li><p>
+          Put the name of the driver(s) that you want into
+          <tt>conf-db</tt>. This can be
+          <tt>&quot;postgresql&quot;</tt>,
+          <tt>&quot;oracle&quot;</tt>, or the word
+          <tt>&quot;both&quot;</tt> if you want both drivers
+          installed.
 
-		  <tt>conf-inst</tt> should contain the
-		  location where AOLserver is to be installed. This defaults to
-		  <tt>/usr/local/aolserver</tt>, so we
-		  don't need to change it.
+        </p><pre class="programlisting">
+root:/usr/local/src/aolserver# echo &quot;postgresql&quot; &gt; conf-db</pre></li><li><p>
 
-		</p></li><li><p>
+          <tt>conf-inst</tt> should contain the
+          location where AOLserver is to be installed. This defaults to
+          <tt>/usr/local/aolserver</tt>, so we
+          don't need to change it.
 
-		  <tt>conf-make</tt> should contain the
-		  name of the GNU Make command on your system. It defaults to
-		  <tt>gmake</tt>. You may need to change
-		  this to <tt>make</tt>.
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/aolserver$ echo &quot;make&quot; &gt; conf-make</pre></li><li><p>
-		  If you're going to be installing the Postgresql driver, you'll
-		  have to adjust the makefile first. This will hopefully be cleaned
-		  up in future versions of this distribution.
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/aolserver$ emacs pgdriver/makefile</pre><p>
-		  Edit the lines containing PGLIB and PGINC so they look like this:
-		</p><pre class="programlisting">
+        </p></li><li><p>
+
+          <tt>conf-make</tt> should contain the
+          name of the GNU Make command on your system. It defaults to
+          <tt>gmake</tt>. You may need to change
+          this to <tt>make</tt>.
+        </p><pre class="programlisting">
+root:/usr/local/src/aolserver# echo &quot;make&quot; &gt; conf-make</pre></li><li><p>
+          If you're going to be installing the Postgresql driver, you'll
+          have to adjust the makefile first. This will hopefully be cleaned
+          up in future versions of this distribution.
+        </p><pre class="programlisting">
+root:/usr/local/src/aolserver# emacs pgdriver/makefile</pre><p>
+          Edit the lines containing PGLIB and PGINC so they look like this:
+        </p><pre class="programlisting">
 PGINC=/usr/local/pgsql/include
 
 PGLIB=/usr/local/pgsql/lib</pre></li><li><p>Compile and install AOLserver and modules</p><pre class="programlisting">
-nsadmin:/usr/local/src/aolserver$ ./conf</pre><p>
-		  This takes about 5 minutes. All of the results are logged to
-		  files in
-		  <tt>/usr/local/src/aolserver/log</tt>. Make
-		  sure to check these files to see if any errors occurred.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-test"></a>Test AOLserver</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p> 
-		  You will now test to ensure AOLserver is running correctly. We'll
-		  use the sample config file provided with AOLserver. This file
-		  will attempt to guess your IP address and hostname. It will then
-		  set up the server at port 8000 of that IP address. 
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/aolserver$ cd
-nsadmin:~$ ./bin/nsd -t sample-config.tcl</pre><p>
-		  As the AOLserver daemon starts up, you should see a few normal
-		  warnings (listed below), which are safe to ignore. 
-		</p><pre class="programlisting">
+root:/usr/local/src/aolserver# ./conf</pre><p>
+
+          This takes about 5 minutes. All of the results are logged to
+          files in
+          <tt>/usr/local/src/aolserver/log</tt>. Make
+          sure to check these files to see if any errors occurred.
+
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-permissions"></a>Set File Permissions</h3></div></div><p>
+
+      In order to test AOLserver, we'll run it using the sample-config.tcl
+      file provided in the AOLserver distribution. We need to adjust
+      permissions a little since AOLserver needs to be able to write its
+      logs properly.
+
+      <pre class="programlisting">
+root:/usr/local/src/aolserver# cd /usr/local/aolserver
+root:/usr/local/aolserver# chown -R root.web log servers
+root:/usr/local/aolserver# chmod -R g+w log servers
+root:/usr/local/aolserver# ls -l
+  drwxr-sr-x    8 root     staff        1024 Nov 12 01:35 .
+  drwxrwsr-x   12 root     staff        1024 Nov 12 01:25 ..
+  drwxr-xr-x    2 root     staff        1024 Nov 12 01:36 bin
+  drwxr-xr-x    2 root     staff        1024 Jun 11  2001 include
+  drwxr-xr-x    3 root     staff        1024 Nov 12 01:36 lib
+  drwxrwxr-x    2 root     web          1024 Nov 12 01:45 log
+  drwxr-xr-x    3 root     staff        1024 Nov 12 01:35 modules
+  -rw-r--r--    1 root     staff        7320 Mar 31  2001 sample-config.tcl
+  drwxrwxr-x    3 root     web          1024 Nov 12 01:35 servers</pre>
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-test"></a>Test AOLserver</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p> 
+
+          Now, we'll run a quick test to ensure AOLserver is running
+          correctly. We'll use the sample config file provided with
+          AOLserver. This file will attempt to guess your IP address and
+          hostname. It will then start up the server at port 8000 of that
+          IP address.
+
+        </p><pre class="programlisting">
+root:/usr/local/aolserver# ./bin/nsd -t sample-config.tcl -u nobody -g web</pre><p>
+
+          As the AOLserver daemon starts up, you should see a few normal
+          warnings (listed below), which are safe to ignore.
+
+        </p><pre class="programlisting">
 Warning: nsd.tcl: nsssl not loaded -- key/cert files do not exist.
-Warning: nsd.tcl: nscp not loaded -- user/password is not set.</pre><p>		  
-		  The first warning means that the server is missing files for
-		  running <tt>ssl</tt>, a necessary module
-		  for encrypted HTTPS. See Scott Goodwin's <a href="http://scottg.net/webtools/opennsd/modules/nsopenssl/" target="_top">excellent
-		  documentation</a> if you want to set up SSL. The second
-		  warning means that the AOLserver control panel, a special module
-		  for administering AOLserver, could not be loaded. If you're
-		  interested in configuring nscp, please see the <a href="http://www.aolserver.com/docs" target="_top">AOLserver
-		  documentation</a>.
-		</p></li><li><p>
-		  Test to see if AOLserver is working by starting
-		  <tt>Mozilla</tt> or
-		  <tt>Lynx</tt>, and surfing over to your
-		  web page: 
-		</p><pre class="programlisting">
-nsadmin:~$ lynx localhost:8000</pre><p>
-		  You should see a &quot;Welcome to AOLserver&quot; page. If this
-		  doesn't work, try going to
-		  <tt>http://127.0.0.1:8000/</tt>. If this
-		  still doesn't work, check out the <a href="aolserver.html#install-aolserver-troubleshooting">Troubleshooting AOLServer</a> section below.
-		  </p></li><li><p>
-		  Shutdown the test server: </p><pre class="programlisting">
-nsadmin:~$ killall nsd</pre><p>
-		  The <tt>killall</tt> command will kill
-		  all processes with the name <tt>nsd</tt>,
-		  but clearly this is not a good tool to use for managing your
-		  services in general. We cover this topic in the <a href="openacs.html#install-openacs-keepalive">Keep AOLServer alive</a> section.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-troubleshooting"></a>Troubleshooting the AOLserver Install</h3></div></div><p>If you can't view the welcome page, it's likely
-	  there's a problem with your server configuration. Start by
-	  viewing your AOLserver log, which is in
-	  <tt>/usr/local/aolserver/log/server.log</tt>.
-	  You should also try to find lines of the form:</p><pre class="programlisting">
+Warning: nsd.tcl: nscp not loaded -- user/password is not set.</pre><p>        
+
+          The first warning means that the server is missing files for
+          running <tt>ssl</tt>, a necessary module
+          for encrypted HTTPS. See Scott Goodwin's <a href="http://scottg.net/webtools/opennsd/modules/nsopenssl/" target="_top">excellent
+          documentation</a> if you want to set up SSL. The second
+          warning means that the AOLserver control panel, a special module
+          for administering AOLserver, could not be loaded. If you're
+          interested in configuring nscp, please see the <a href="http://www.aolserver.com/docs" target="_top">AOLserver
+          documentation</a>.
+
+        </p></li><li><p>
+
+          Test to see if AOLserver is working by starting
+          <tt>Mozilla</tt> or
+          <tt>Lynx</tt>, and surfing over to your
+          web page: 
+
+        </p><pre class="programlisting">
+root:~# lynx localhost:8000</pre><p>
+
+          You should see a &quot;Welcome to AOLserver&quot; page. If this
+          doesn't work, try going to
+          <tt>http://127.0.0.1:8000/</tt>. If this
+          still doesn't work, check out the <a href="aolserver.html#install-aolserver-troubleshooting">Troubleshooting AOLServer</a> section below.
+
+        </p></li><li><p>
+
+          Shutdown the test server: 
+
+        </p><pre class="programlisting">
+root:~# killall nsd</pre><p>
+
+          The <tt>killall</tt> command will kill
+          all processes with the name <tt>nsd</tt>,
+          but clearly this is not a good tool to use for managing your
+          services in general. We cover this topic in the <a href="openacs.html#install-openacs-keepalive">Keep AOLServer alive</a> section.
+
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-aolserver-troubleshooting"></a>Troubleshooting the AOLserver Install</h3></div></div><p>
+
+      If you can't view the welcome page, it's likely there's a
+      problem with your server configuration. Start by viewing your
+      AOLserver log, which is in
+      <tt>/usr/local/aolserver/log/server.log</tt>.
+      You should also try to find lines of the form:
+
+    </p><pre class="programlisting">
 [01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: nssock: listening on http://localhost.localdomain:8000 (127.0.0.1:8000)
-[01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: accepting connections</pre><p>If you can find these lines, try entering the URL the server is
-	  listening on. If you cannot find these lines, there must be an error
-	  somewhere in the file. Search for lines beginning with the word
-	  <tt>Error</tt> instead of
-	  <tt>Notice</tt>.</p><p>The <tt>sample-config.tcl</tt> file grabs
-	  your address and hostname from your OS settings. </p><pre class="programlisting">
+[01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: accepting connections</pre><p>
+
+      If you can find these lines, try entering the URL the server is
+      listening on. If you cannot find these lines, there must be an error
+      somewhere in the file. Search for lines beginning with the word
+      <tt>Error</tt> instead of
+      <tt>Notice</tt>.
+
+    </p><p>
+
+      The <tt>sample-config.tcl</tt> file grabs
+      your address and hostname from your OS settings.
+
+    </p><pre class="programlisting">
 set hostname        [ns_info hostname]
-set address         [ns_info address]</pre><p>If you get an error that nssock can't get the requested address,
-	  you can set these manually:</p><pre class="programlisting">
-#set hostname        [ns_info hostname]
-set hostname 127.0.0.1
+set address         [ns_info address]</pre><p>
+
+      If you get an error that nssock can't get the requested address, you
+      can set these manually. If you type 0.0.0.0, AOLserver will try to
+      listen on all available addresses.
+
+    </p><pre class="programlisting">
+set hostname        [ns_info hostname]
 #set address         [ns_info address]
-set address 127.0.0.1</pre><p>
-	  If you get an error that nssock can't assign the requested port,
-	  then that port may already be taken by another service. Try specifying
-	  a different port in the config file.
-	</p></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="postgres.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Install PostgreSQL 7.1.3&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install OpenACS 4.5</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+set address 0.0.0.0</pre></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="postgres.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Install PostgreSQL 7.2.3&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install OpenACS 4.6</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/aolserver.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/apm-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/apm-design.html	30 Nov 2002 17:16:23 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/apm-design.html	28 Feb 2003 05:36:03 -0000	1.8
@@ -1,31 +1,31 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4.6 Package Manager Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="apm-requirements.html" title="OpenACS 4.6 Package Manager Requirements"><link rel="next" href="security-requirements.html" title="OpenACS 4 Security Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="apm-design"></a>OpenACS 4.6 Package Manager Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Package Manager Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="apm-requirements.html" title="OpenACS 4.6 Package Manager Requirements"><link rel="next" href="security-requirements.html" title="OpenACS 4 Security Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="apm-design"></a>OpenACS 4.6 Package Manager Design</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:bquinn@arsdigita.com" target="_top">Bryan Quinn</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
-        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-essentials"></a>Essentials</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="/acs-admin/apm" target="_top">OpenACS Administrator directory</a></p></li><li><p><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></p></li><li><p><a href="packages.html">Packages</a></p></li><li><p><a href="images/apm.pdf" target="_top">ER diagram</a></p></li><li><p>Tcl API </p><div class="itemizedlist"><ul type="circle"><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dkernel%2ftcl%2fapm%2dprocs%2etcl" target="_top">
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-essentials"></a>Essentials</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="/acs-admin/apm" target="_top">OpenACS Administrator directory</a></p></li><li><p><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></p></li><li><p><a href="packages.html">Packages</a></p></li><li><p><a href="images/apm.pdf" target="_top">ER diagram</a></p></li><li><p>Tcl API </p><div class="itemizedlist"><ul type="round"><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dkernel%2ftcl%2fapm%2dprocs%2etcl" target="_top">
 apm-procs.tcl</a></p></li><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dkernel%2ftcl%2fapm%2dinstall%2dprocs%2etcl" target="_top">
 apm-install-procs.tcl</a> (Supports installation of packages)</p></li><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dkernel%2ftcl%2f20%2dapm%2dload%2dprocs%2etcl" target="_top">
 20-apm-load-procs.tcl</a> (Bootstraps APM for server startup)</p></li><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dkernel%2ftcl%2fapm%2dadmin%2dprocs%2etcl" target="_top">
-apm-admin-procs.tcl</a> (Supports APM UI)</p></li></ul></div></li><li><p>PL/SQL file </p><div class="itemizedlist"><ul type="circle"><li><p><a href="/doc/sql/display-sql?url=apm-create.sql&amp;package_key=acs-kernel" target="_top">apm-create.sql</a></p></li></ul></div></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-intro"></a>Introduction</h3></div></div><p>
-In general terms, a <span class="strong">package</span> is a unit of software that
+apm-admin-procs.tcl</a> (Supports APM UI)</p></li></ul></div></li><li><p>PL/SQL file </p><div class="itemizedlist"><ul type="round"><li><p><a href="/doc/sql/display-sql?url=apm-create.sql&amp;package_key=acs-kernel" target="_top">apm-create.sql</a></p></li></ul></div></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-intro"></a>Introduction</h3></div></div><p>
+In general terms, a <span class="strong"><em>package</em></span> is a unit of software that
 serves a single well-defined purpose. That purpose may be to provide a
 service directly to one or more classes of end-user, (e.g., discussion forums
 and file storage for community members, user profiling tools for the site
 publisher), or it may be to act as a building block for other packages (e.g.,
 an application programming interface (API) for storing and querying access
 control rules, or an API for scheduling email alerts). Thus, packages fall
 into one of two categories: 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">OpenACS Applications:</span> a &quot;program or group of programs
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>OpenACS Applications:</em></span> a &quot;program or group of programs
 designed for end users&quot; (the <a href="http://www.pcwebopaedia.com/TERM/a/application.html" target="_top">Webopedia
 definition</a>); also known as <span class="emphasis"><em>modules</em></span>, for historical reasons.
 Examples of applications include <a href="/doc/bboard" target="_top">Bboard</a> and <a href="/doc/news" target="_top">News</a>. 
 
 
-</p></li><li><p><span class="strong">OpenACS Services:</span> the aforementioned building blocks.
+</p></li><li><p><span class="strong"><em>OpenACS Services:</em></span> the aforementioned building blocks.
 Examples of services include the <a href="/doc/acs-content-repository" target="_top">OpenACS
 Content Repository</a>, the <a href="/doc/acs-templating" target="_top">OpenACS Templating
-System</a>, and the <a href="kernel-doc.html" title="Chapter�7.�Kernel Documentation">OpenACS Kernel</a>, which includes
+System</a>, and the <a href="kernel-doc.html" title="Chapter 9. Kernel Documentation">OpenACS Kernel</a>, which includes
 APM.</p></li></ul></div><p>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 <a href="subsites-design.html" title="OpenACS 4 Subsites Design Document">subsites</a>. A subsite can contain multiple
@@ -89,21 +89,21 @@
 packages for other ACS users to download and install.</p><p>For a simple illustration of the difference between ACS without APM
 (pre-3.3) and ACS with APM (3.3 and beyond), consider a hypothetical ACS
 installation that uses only two of the thirty-odd modules available circa ACS
-3.2 (say, bboard and e-commerce):</p><div class="mediaobject"><img src="images/acs-without-apm-vs-with-apm.png" align="center" longdesc="ld-id2850596.html"><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-id2850596.html" target="longdesc">D</a>]</span></div></div><p>APM itself is part of a package, the <span class="strong">OpenACS Kernel</span>, an OpenACS
+3.2 (say, bboard and e-commerce):</p><div class="mediaobject"><img src="images/acs-without-apm-vs-with-apm.png" align="center" longdesc="ld-id2887772.html"><div class="longdesc-link" align="right"><br clear="all"><span style="font-size: 8pt;">[<a href="ld-id2887772.html" target="longdesc">D</a>]</span></div></div><p>APM itself is part of a package, the <span class="strong"><em>OpenACS Kernel</em></span>, an OpenACS
 service that is the only mandatory component of an OpenACS installation.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-competitors"></a>Competitive Analysis</h3></div></div><p>The OpenACS is a platform for web-based application software, and any software
 platform has the potential to develop problems like those described above.
 Fortunately, there are many precedents for systematic solutions,
 including:</p><div class="itemizedlist"><ul type="disc"><li><p><a href="http://www.debian.org/" target="_top">Debian GNU/Linux</a> and the <a href="http://www.debian.org/doc/packaging-manuals/packaging.html/" target="_top">Debian
 Packaging manual</a></p></li><li><p><a href="http://www.freebsd.org/" target="_top">FreeBSD</a> has <a href="http://www.freebsd.org/handbook/ports.html" target="_top">the Ports
 collection</a></p></li><li><p><a href="http://www.redhat.com/" target="_top">Red Hat Linux</a> has <a href="http://rpm.redhat.com/" target="_top">the Red Hat Package Manager (RPM)</a></p></li></ul></div><p>Borrowing from all of the above, OpenACS 3.3 introduces its own package
-management system, the OpenACS Package Manager (APM), which consists of:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">a standard format for APM packages</span> (also called
-&quot;OpenACS packages&quot;), including: </p><div class="itemizedlist"><ul type="circle"><li><p>version numbering, independent of any other package and the OpenACS as a
-whole</p></li><li><p>specification of the package interface</p></li><li><p>specification of dependencies on other packages (if any)</p></li><li><p>attribution (who wrote it) and ownership (who maintains it)</p></li></ul></div></li><li><p><span class="strong">web-based tools for package management:</span> </p><div class="itemizedlist"><ul type="circle"><li><p>obtaining packages from a remote distribution point</p></li><li><p>installing packages, if and only if: </p><div class="orderedlist"><ol type="1"><li><p>all prerequisite packages are installed</p></li><li><p>no conflicts will be created by the installation</p></li></ol></div></li><li><p>configuring packages (obsoleting the monolithic OpenACS configuration
-file)</p></li><li><p>upgrading packages, without clobbering local modifications</p></li><li><p>uninstalling unwanted packages</p></li></ul></div></li><li><p><span class="strong">a registry of installed packages</span>, database-backed and
+management system, the OpenACS Package Manager (APM), which consists of:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>a standard format for APM packages</em></span> (also called
+&quot;OpenACS packages&quot;), including: </p><div class="itemizedlist"><ul type="round"><li><p>version numbering, independent of any other package and the OpenACS as a
+whole</p></li><li><p>specification of the package interface</p></li><li><p>specification of dependencies on other packages (if any)</p></li><li><p>attribution (who wrote it) and ownership (who maintains it)</p></li></ul></div></li><li><p><span class="strong"><em>web-based tools for package management:</em></span> </p><div class="itemizedlist"><ul type="round"><li><p>obtaining packages from a remote distribution point</p></li><li><p>installing packages, if and only if: </p><div class="orderedlist"><ol type="1"><li><p>all prerequisite packages are installed</p></li><li><p>no conflicts will be created by the installation</p></li></ol></div></li><li><p>configuring packages (obsoleting the monolithic OpenACS configuration
+file)</p></li><li><p>upgrading packages, without clobbering local modifications</p></li><li><p>uninstalling unwanted packages</p></li></ul></div></li><li><p><span class="strong"><em>a registry of installed packages</em></span>, database-backed and
 integrated with filesystem-based version control 
 
 
-</p></li><li><p><span class="strong">web-based tools for package development:</span> </p><div class="itemizedlist"><ul type="circle"><li><p>creating new packages locally</p></li><li><p>releasing new versions of locally-created packages</p></li></ul></div></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-design-tradeoffs"></a>Design Tradeoffs</h3></div></div><p>
+</p></li><li><p><span class="strong"><em>web-based tools for package development:</em></span> </p><div class="itemizedlist"><ul type="round"><li><p>creating new packages locally</p></li><li><p>releasing new versions of locally-created packages</p></li></ul></div></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-design-tradeoffs"></a>Design Tradeoffs</h3></div></div><p>
 The design chosen for APM was meant to satisfy the following constraints: 
 </p><div class="itemizedlist"><ul type="disc"><li><p>The process of authoring a package must be as simple as possible.</p></li><li><p>Strict conventions must be established that provide a set of canonical
 locations and names for files and patterns, for OpenACS application
@@ -124,7 +124,7 @@
 subsites across the system, and be available for distribution to other OpenACS
 installations without doing a monolithic upgrade or reinstall.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-api"></a>API</h3></div></div><p>The APM is composed of systems for accomplishing a set of package-related
 tasks. Each of these tasks comprise a feature area that has an API, data
-model, and a UI:</p><div class="itemizedlist"><ul type="disc"><li><p>Authoring a Package</p></li><li><p>Maintaining Multiple Versions of a Package</p></li><li><p>Creating Instances of the Package</p></li><li><p>Specifying Configuration Parameters for each Instance</p></li></ul></div><p><span class="strong">Authoring a Package</span></p><p>Full instructions on how to prepare an OpenACS package are available in <a href="packages.html">Packages</a>. The API here can be invoked manually by a package's data model
+model, and a UI:</p><div class="itemizedlist"><ul type="disc"><li><p>Authoring a Package</p></li><li><p>Maintaining Multiple Versions of a Package</p></li><li><p>Creating Instances of the Package</p></li><li><p>Specifying Configuration Parameters for each Instance</p></li></ul></div><p><span class="strong"><em>Authoring a Package</em></span></p><p>Full instructions on how to prepare an OpenACS package are available in <a href="packages.html">Packages</a>. The API here can be invoked manually by a package's data model
 creation script, but need not to be used. This API is part of the <a href="/api-doc/plsql-subprogram-one?type=PACKAGE&amp;name=APM" target="_top">APM PL/SQL
 package</a>.</p><pre class="programlisting">
 
@@ -165,7 +165,7 @@
     package_key     in apm_package_types.package_key%TYPE
 ) return integer;
 
-</pre><p><span class="strong">Maintaining Multiple Versions of a Package</span></p><p>While the package authoring API provides a means for registering a
+</pre><p><span class="strong"><em>Maintaining Multiple Versions of a Package</em></span></p><p>While the package authoring API provides a means for registering a
 package, some information about a package is version dependent. For example,
 between versions, the owner of a package, its vendor, its URI, and its
 dependency information may change. The API for package versions allows this
@@ -245,7 +245,7 @@
 );
 
 </pre><p>Files associated with a version can be added and removed. The path is
-relative to the <span class="strong">package-root</span> which is
+relative to the <span class="strong"><em>package-root</em></span> which is
 <tt>acs-server-root/packages/package-key</tt>.</p><pre class="programlisting">
 -- Add a file to the indicated version. 
 function add_file(
@@ -327,7 +327,7 @@
     version_name_two        in apm_package_versions.version_name%TYPE
 ) return integer;
 
-</pre><p><span class="strong">Creating Instances of a Package</span></p><p>Once a package is registered in the system, it is possible to create
+</pre><p><span class="strong"><em>Creating Instances of a Package</em></span></p><p>Once a package is registered in the system, it is possible to create
 instances of it. Each instance can maintain its own content and
 parameters.</p><pre class="programlisting">
 
@@ -382,7 +382,7 @@
 show errors
 
 
-</pre><p><span class="strong">Specifying Configuration Parameters for each Instance</span></p><p>A parameter is a setting that can be changed on a package instance basis.
+</pre><p><span class="strong"><em>Specifying Configuration Parameters for each Instance</em></span></p><p>A parameter is a setting that can be changed on a package instance basis.
 Parameters are registered on each <tt>package_key</tt>, and the values
 are associated with each instance. Parameters can have default values and can
 be of type 'string' or 'number.' There is support with this
@@ -513,14 +513,14 @@
 site-wide administration.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-config"></a>Configuration/Parameters</h3></div></div><p>APM has two parameters for configuring how it interacts with the UNIX
 filesystem, accessible via the <a href="/admin/site-map/" target="_top">Site Map admin</a>
 page. These parameters need not be changed under most circumstances, but may
-need to be tweaked for Windows compatibility.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">GzipExecutableDirectory</span>
+need to be tweaked for Windows compatibility.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>GzipExecutableDirectory</em></span>
  This directory points to where the <tt>gunzip</tt> program can be found
 for uncompressing <tt>gzip</tt> archives. This is needed for the
 installation of <tt>.apm</tt> files which are simply <tt>gzip</tt>ed
 tarballs. Default is <tt>/usr/local/bin</tt> 
 
 
-</p></li><li><p><span class="strong">InfoFilePermissionsMode</span>
+</p></li><li><p><span class="strong"><em>InfoFilePermissionsMode</em></span>
  This sets the default UNIX permissions used when creating files using the
 APM. Default is 775.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-future"></a>Future Improvements/Areas of Likely Change</h3></div></div><p>APM has been in production since OpenACS 3.3, and as of version 4.0 offers a
 stable set of features. One major feature planned is integration with the OpenACS
@@ -542,4 +542,4 @@
 all of this functionality in one interface and it can be confusing from a
 usability perspective.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-authors"></a>Authors</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>System creator: Bryan Quinn, Jon Salz, Michael Yoon, Lars Pind, Todd
 Nightingale.</p></li><li><p>System owner: Bryan Quinn</p></li><li><p>Documentation author: Bryan Quinn, building from earlier versions by Jon
-Salz, Michael Yoon, and Lars Pind.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/25/2000</td><td>Bryan Quinn</td></tr><tr><td>0.8</td><td>Ready for QA</td><td>9/29/2000</td><td>Bryan Quinn</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release</td><td>10/02/2000</td><td>Kai Wu</td></tr><tr><td>1.0</td><td>Edited for OpenACS 4.6 Beta release</td><td>03/02/2002</td><td>Roberto Mello</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="security-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Package Manager Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Security Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/apm-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
+Salz, Michael Yoon, and Lars Pind.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/25/2000</td><td>Bryan Quinn</td></tr><tr><td>0.8</td><td>Ready for QA</td><td>9/29/2000</td><td>Bryan Quinn</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release</td><td>10/02/2000</td><td>Kai Wu</td></tr><tr><td>1.0</td><td>Edited for OpenACS 4.6 Beta release</td><td>03/02/2002</td><td>Roberto Mello</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="security-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Package Manager Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Security Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/apm-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/apm-requirements.html	30 Nov 2002 17:16:23 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/apm-requirements.html	28 Feb 2003 05:36:03 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4.6 Package Manager Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="subsites-design.html" title="OpenACS 4 Subsites Design Document"><link rel="next" href="apm-design.html" title="OpenACS 4.6 Package Manager Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apm-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="apm-requirements"></a>OpenACS 4.6 Package Manager Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Package Manager Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="subsites-design.html" title="OpenACS 4 Subsites Design Document"><link rel="next" href="apm-design.html" title="OpenACS 4.6 Package Manager Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apm-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="apm-requirements"></a>OpenACS 4.6 Package Manager Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:bquinn@arsdigita.com" target="_top">Bryan Quinn</a> and <a href="mailto:tnight@arsdigita.com" target="_top">Todd Nightingale</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -9,7 +9,7 @@
 and /admin pages at sub-site level; deprecation of site-wide parameter
 file).</p></li></ul></div><p>To differentiate these new requirements from the requirements of version
 3.3, all requirements new in v4 are prefaced with the number
-<span class="strong">4</span>.</p><p>We gratefully acknowledge the authors of APM 3 for their original design
+<span class="strong"><em>4</em></span>.</p><p>We gratefully acknowledge the authors of APM 3 for their original design
 documentation which suggested these features, as well as the influence of the
 design and open-source implementation of the Red Hat Package manager, the
 Debian packaging system, and PERL's CPAN in the development of the ideas
@@ -29,36 +29,36 @@
 packaging, installing, and configuring OpenACS software in a consistent,
 user-friendly, and subsite-aware manner.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-system-overview"></a>System Overview</h3></div></div><p>
 The OpenACS Package Manager (APM) consists of: 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">A standard format for APM packages</span> including: </p><div class="itemizedlist"><ul type="circle"><li><p>Version numbering, independent of any other package and the OpenACS as a
-whole</p></li><li><p>Specification of the package interface</p></li><li><p>Specification of dependencies on other packages (if any)</p></li><li><p>Attribution (who wrote it) and ownership (who maintains it)</p></li></ul></div></li><li><p><span class="strong">Web-based tools for package management:</span> </p><div class="itemizedlist"><ul type="circle"><li><p>Obtaining packages from a remote distribution point</p></li><li><p>Installing packages, if and only if: </p><div class="orderedlist"><ol type="1"><li><p>All prerequisite packages are installed</p></li><li><p>No conflicts will be created by the installation</p></li></ol></div></li><li><p>Configuring packages (obsoleting the monolithic OpenACS configuration
-file)</p></li><li><p>Upgrading packages, without clobbering local modifications</p></li><li><p>Uninstalling unwanted packages</p></li></ul></div></li><li><p><span class="strong">A registry of installed packages</span>, database-backed and
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>A standard format for APM packages</em></span> including: </p><div class="itemizedlist"><ul type="round"><li><p>Version numbering, independent of any other package and the OpenACS as a
+whole</p></li><li><p>Specification of the package interface</p></li><li><p>Specification of dependencies on other packages (if any)</p></li><li><p>Attribution (who wrote it) and ownership (who maintains it)</p></li></ul></div></li><li><p><span class="strong"><em>Web-based tools for package management:</em></span> </p><div class="itemizedlist"><ul type="round"><li><p>Obtaining packages from a remote distribution point</p></li><li><p>Installing packages, if and only if: </p><div class="orderedlist"><ol type="1"><li><p>All prerequisite packages are installed</p></li><li><p>No conflicts will be created by the installation</p></li></ol></div></li><li><p>Configuring packages (obsoleting the monolithic OpenACS configuration
+file)</p></li><li><p>Upgrading packages, without clobbering local modifications</p></li><li><p>Uninstalling unwanted packages</p></li></ul></div></li><li><p><span class="strong"><em>A registry of installed packages</em></span>, database-backed and
 integrated with file system-based version control 
 
 
-</p></li><li><p><span class="strong">Web-based tools for package development:</span> </p><div class="itemizedlist"><ul type="circle"><li><p>Creating new packages locally</p></li><li><p>Releasing new versions of locally-created packages</p></li><li><p>Uploading packages to a global package repository on the web</p></li><li><p>Use of these tools should be safe, i.e. installing or removing a package
-should never break an OpenACS installation</p></li></ul></div></li><li><p><span class="strong">Web-based tools for package configuration:</span> </p><div class="itemizedlist"><ul type="circle"><li><p>The ability to change package parameter values on-line through a simple
+</p></li><li><p><span class="strong"><em>Web-based tools for package development:</em></span> </p><div class="itemizedlist"><ul type="round"><li><p>Creating new packages locally</p></li><li><p>Releasing new versions of locally-created packages</p></li><li><p>Uploading packages to a global package repository on the web</p></li><li><p>Use of these tools should be safe, i.e. installing or removing a package
+should never break an OpenACS installation</p></li></ul></div></li><li><p><span class="strong"><em>Web-based tools for package configuration:</em></span> </p><div class="itemizedlist"><ul type="round"><li><p>The ability to change package parameter values on-line through a simple
 web interface.</p></li><li><p>A new ad_parameter which does not require a monolithic site-wide
 parameter's file or server restarts for changes to take effect.</p></li><li><p>The ability to manage multiple package instances at the sub-site
 level.</p></li></ul></div></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><p>
 The APM is intended for the following classes of users, which may or may not
-overlap: </p><div class="orderedlist"><ol type="1"><li><p><span class="strong">Developers</span> (referred to as 'the developer') use
+overlap: </p><div class="orderedlist"><ol type="1"><li><p><span class="strong"><em>Developers</em></span> (referred to as 'the developer') use
 the APM to create a software package for distribution and use the procedural
-API for direct control of the APM system.</p></li><li><p><span class="strong">Site-wide administrators</span> (referred to as 'the
+API for direct control of the APM system.</p></li><li><p><span class="strong"><em>Site-wide administrators</em></span> (referred to as 'the
 administrator') use the APM to install packages for their OpenACS instance,
-and optionally make them available to sub-sites.</p></li><li><p><span class="strong">Sub-site administrators</span> (referred to as 'the
+and optionally make them available to sub-sites.</p></li><li><p><span class="strong"><em>Sub-site administrators</em></span> (referred to as 'the
 sub-admin') use an administration interface to configure and enable
-packages for their sub-site.</p></li></ol></div><p><span class="strong">Initial Package Development</span></p><p><span class="strong">David Developer</span> writes a piece of software used to do
+packages for their sub-site.</p></li></ol></div><p><span class="strong"><em>Initial Package Development</em></span></p><p><span class="strong"><em>David Developer</em></span> writes a piece of software used to do
 knowledge management (km) for the OpenACS. He distributes his data model,
 procedure code, UI pages, and his documentation according to the APM
 specification. He splits the documentation and the code into sub-packages,
 and creates a KM installation-chain to install both with the APM developer
-UI. Noting that his software was built with <span class="strong">Patricia
-Programmer</span>'s Super Widget toolkit, he specifies that as a
+UI. Noting that his software was built with <span class="strong"><em>Patricia
+Programmer</em></span>'s Super Widget toolkit, he specifies that as a
 dependency. Moreover, since this package is capable of being used at the
 sub-site level, David configures this option in the package. When the package
 development is complete, David uses the APM developer UI to construct a
 distribution file. He assigns it a version number, 1.0, and makes the package
-available for download at the OpenACS package repository.</p><p><span class="strong">Initial Package Installation</span></p><p><span class="strong">Annie Admin</span> learns of David's KM system by browsing
+available for download at the OpenACS package repository.</p><p><span class="strong"><em>Initial Package Installation</em></span></p><p><span class="strong"><em>Annie Admin</em></span> learns of David's KM system by browsing
 the OpenACS package repository. Annie Admin uses the APM administrator UI
 on her system. She selects to install a package from a URL and types the URL
 displayed on the system. The APM automatically downloads the package. The
@@ -72,16 +72,16 @@
 installation was successful, the package is available for use.</p><p>Since the package is available for use, its initialization routines are
 set to run automatically on server startup. Annie is warned that since there
 are initialization routines, she must restart the server for the package to
-be ready for use. Annie restarts the server.</p><p><span class="strong">Initial Subsite Use of Package</span></p><p>Annie Admin decides to make the KM module available only to a particular
+be ready for use. Annie restarts the server.</p><p><span class="strong"><em>Initial Subsite Use of Package</em></span></p><p>Annie Admin decides to make the KM module available only to a particular
 sub-site type on her OpenACS system, and not others. She specifies this option
-using the Sub-site type UI (not part of APM).</p><p>Annie Admin notifies <span class="strong">Sally SubAdmin</span> by e-mail that a new
+using the Sub-site type UI (not part of APM).</p><p>Annie Admin notifies <span class="strong"><em>Sally SubAdmin</em></span> by e-mail that a new
 package is now available for use. Sally goes to her sub-site /admin page and
 sees that a new entry, KM, is available. Sally clicks on it and finds links
 to the installed KM documentation and to the web based configuration utility.
 Then, Sally configures the package using an automatically generated web
 interface and enables KM for use on her sub-site. After some initial use of
 the package, Sally decides to change some parameters using the SubAdmin UI.
-These changes take effect immediately, without any server restarts.</p><p><span class="strong">Upgrade Process</span></p><p>Sally SubAdmin finds a bug in the KM system and sends a report to David
+These changes take effect immediately, without any server restarts.</p><p><span class="strong"><em>Upgrade Process</em></span></p><p>Sally SubAdmin finds a bug in the KM system and sends a report to David
 Developer. David reads the bug report and verifies that the bugs are present
 in the current version. Because the bugs are present in the shared procedure
 file, David assigns a watch to the file. David makes the necessary
@@ -92,195 +92,195 @@
 repository.</p><p>Sally SubAdmin asks Annie Administrator to upgrade the package using the
 APM UI. This upgrade supersedes the old version of KM at the site-wide level.
 Once Annie upgrades the package, the new version starts working immediately
-in Sally's sub-site.</p><p><span class="strong">Procedural API</span></p><p><span class="strong">Danielle Developer</span> wants her software to perform
+in Sally's sub-site.</p><p><span class="strong"><em>Procedural API</em></span></p><p><span class="strong"><em>Danielle Developer</em></span> wants her software to perform
 different actions depending on what version of another package is installed.
 She uses the APM procedural API to check if KM version 1.0 is installed or
 version 1.1. Based on the results of this procedural call, the software
-exhibits different behavior.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="/doc/core-arch-guide/apm" target="_top">APM 3.3 Design document</a></p></li><li><p><a href="/doc/packaging" target="_top">Five minute guide to packaging a module</a></p></li><li><p><a href="/doc/core-arch-guide/subcommunities" target="_top">Sub-communities</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-data-model"></a>Requirements: Data Model</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">4.500.0 Package Identification</span>
-(All of these items are entered by the developer using the developer UI.) </p><p><span class="strong">4.500.1</span> A human readable package key that is guaranteed
+exhibits different behavior.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="/doc/core-arch-guide/apm" target="_top">APM 3.3 Design document</a></p></li><li><p><a href="/doc/packaging" target="_top">Five minute guide to packaging a module</a></p></li><li><p><a href="/doc/core-arch-guide/subcommunities" target="_top">Sub-communities</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-data-model"></a>Requirements: Data Model</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>4.500.0 Package Identification</em></span>
+(All of these items are entered by the developer using the developer UI.) </p><p><span class="strong"><em>4.500.1</em></span> A human readable package key that is guaranteed
 to be unique to the local OpenACS site must be maintained by the APM. For
-example, &quot;apm.&quot;</p><p><span class="strong">4.500.5</span> A package id (primary key) that is guaranteed to
+example, &quot;apm.&quot;</p><p><span class="strong"><em>4.500.5</em></span> A package id (primary key) that is guaranteed to
 be unique to the local site must be maintained by the APM. For example,
-&quot;25.&quot;</p><p><span class="strong">4.500.10</span> A package URL that is guaranteed to be unique
+&quot;25.&quot;</p><p><span class="strong"><em>4.500.10</em></span> A package URL that is guaranteed to be unique
 across all sites must be maintained by the APM. The package URL should point
 to a server that allows download of the latest version of the package. For
 example, &quot;http://openacs.org/software.&quot;
-</p></li><li><p><span class="strong">4.505.0 Version Identification</span>
- (All of these items are entered by the developer using the developer UI.) </p><p><span class="strong">4.505.1</span> A version id (primary key) that is guaranteed to
-be unique to the local site must be maintained by the APM.</p><p><span class="strong">4.505.5</span> A version URL that is guaranteed to be unique
+</p></li><li><p><span class="strong"><em>4.505.0 Version Identification</em></span>
+ (All of these items are entered by the developer using the developer UI.) </p><p><span class="strong"><em>4.505.1</em></span> A version id (primary key) that is guaranteed to
+be unique to the local site must be maintained by the APM.</p><p><span class="strong"><em>4.505.5</em></span> A version URL that is guaranteed to be unique
 across all sites must be maintained by the APM. The version URL should point
 to a server that allows download of a specific version of the package.
 </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-api"></a>Requirements: API</h3></div></div><p>The API for APM v3 is explicitly a private API. However, it would be
 useful to obtain information from the APM through a procedural API.
 Implementing the API specified below is quite easy given that there are pages
-that already do all of the below in raw SQL.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">4.400.0 Packages Status Predicates</span> </p><p><span class="strong">4.400.1</span> Given defining information such as a package URL,
+that already do all of the below in raw SQL.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>4.400.0 Packages Status Predicates</em></span> </p><p><span class="strong"><em>4.400.1</em></span> Given defining information such as a package URL,
 the APM API can return the status of the package on the local OpenACS
-instance.</p></li><li><p><span class="strong">4.405.0 Package Information Procedures</span> </p><p><span class="strong">4.405.1</span> The APM API can return information for any
+instance.</p></li><li><p><span class="strong"><em>4.405.0 Package Information Procedures</em></span> </p><p><span class="strong"><em>4.405.1</em></span> The APM API can return information for any
 locally installed packages, including the version number, paths and files,
-and package key.</p></li><li><p><span class="strong">4.410.0 Sub-site Procedures</span> </p><p><span class="strong">4.410.1</span> After a package has been installed at the
+and package key.</p></li><li><p><span class="strong"><em>4.410.0 Sub-site Procedures</em></span> </p><p><span class="strong"><em>4.410.1</em></span> After a package has been installed at the
 site-wide level, the system API will provide means to check for package
-presence, creation, enabling, disabling, and destruction on a subsite.</p></li><li><p><span class="strong">4.415.0 Parameter Values (replaces ad_parameter)</span> </p><p><span class="strong">4.415.1</span> The system API shall allow subsite parameters for
+presence, creation, enabling, disabling, and destruction on a subsite.</p></li><li><p><span class="strong"><em>4.415.0 Parameter Values (replaces ad_parameter)</em></span> </p><p><span class="strong"><em>4.415.1</em></span> The system API shall allow subsite parameters for
 an installed package to be set by either site-wide administrators or sub-site
 admins. The subsite parameter can be set to be non-persistent (but default is
 to survive server restarts). The subsite parameter can also be set to only
-take effect after a server restart (default is immediate).</p><p><span class="strong">4.415.5</span> Parameters for a given subsite and package can be
+take effect after a server restart (default is immediate).</p><p><span class="strong"><em>4.415.5</em></span> Parameters for a given subsite and package can be
 returned by the system API.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-security"></a>Requirements: Security</h3></div></div><p>
 Provisions will be made to assure that packages are securely
-identified.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">4.600.1</span> Each package will have a PGP signature and there
+identified.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>4.600.1</em></span> Each package will have a PGP signature and there
 will be MD5 time stamps for each file within the package. 
 
 
-</p></li><li><p><span class="strong">4.600.5</span> The APM will provide a facility to validate both
+</p></li><li><p><span class="strong"><em>4.600.5</em></span> The APM will provide a facility to validate both
 the PGP signature and MD5 stamps information before a package install.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-ui"></a>Requirements: The User Interface</h3></div></div><p>The user interface is a set of HTML pages that are used to drive the
 underlying API. It is restricted to site-wide administrators because the
 actions taken here can dramatically affect the state of the running OpenACS.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-dev-interface"></a>Requirements: The Developer's Interface</h3></div></div><p>The intent of the developer's interface is to enable the developer to
 construct and maintain APM packages. It will be possible to disable the
 developer's interface for production sites to help reduce the chance of
 site failure; much of the functionality here can have cascading effects
-throughout the OpenACS and should not be used on a production site.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">10.0 Define a package.</span></p><p>The developer must be able to create a new package by specifying some
+throughout the OpenACS and should not be used on a production site.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>10.0 Define a package.</em></span></p><p>The developer must be able to create a new package by specifying some
 identifying information for the package. This includes a package name, a
-package key, version information, owner information, and a canonical URL.</p><p><span class="strong">10.1</span> The APM must maintain the state of all locally
-generated packages.</p><p><span class="strong">10.50</span> If the developer fails to provide the required
-information, the package cannot be created.</p><p><span class="strong">10.55</span> All of the package information should be editable
-after creation, except for the package key.</p><p><span class="strong">4.10.60</span> The package creator must specify whether the
+package key, version information, owner information, and a canonical URL.</p><p><span class="strong"><em>10.1</em></span> The APM must maintain the state of all locally
+generated packages.</p><p><span class="strong"><em>10.50</em></span> If the developer fails to provide the required
+information, the package cannot be created.</p><p><span class="strong"><em>10.55</em></span> All of the package information should be editable
+after creation, except for the package key.</p><p><span class="strong"><em>4.10.60</em></span> The package creator must specify whether the
 package is capable of being used in sub-sites, or if only a single, global
-instance of the package is permitted.</p><p><span class="strong">4.10.65</span> If the developer fails to provide unique
+instance of the package is permitted.</p><p><span class="strong"><em>4.10.65</em></span> If the developer fails to provide unique
 information for unique fields specified in the data model requirements, the
-package cannot be created.</p></li><li><p><span class="strong">20.0 Add files to a package</span> </p><p><span class="strong">20.1</span> The developer must be able to add files to the
+package cannot be created.</p></li><li><p><span class="strong"><em>20.0 Add files to a package</em></span> </p><p><span class="strong"><em>20.1</em></span> The developer must be able to add files to the
 package. This is done by copying the files into the package directory in the
 host OS's file system. Files can be added at any point after package
-creation.</p><p><span class="strong">20.3</span> Once a package has been versioned and distributed,
+creation.</p><p><span class="strong"><em>20.3</em></span> Once a package has been versioned and distributed,
 no new files should be added to the package without incrementing the version
-number.</p><p><span class="strong">20.5</span> The APM's UI should facilitate the process of
+number.</p><p><span class="strong"><em>20.5</em></span> The APM's UI should facilitate the process of
 adding new files, by scanning the file system for new files automatically,
-and allowing the developer to confirm adding them.</p><p><span class="strong">20.10</span> The developer cannot add files to a given package
-via the UI that do not exist in the file system already.</p><p><span class="strong">20.15</span> Package file structure must follow a specified
+and allowing the developer to confirm adding them.</p><p><span class="strong"><em>20.10</em></span> The developer cannot add files to a given package
+via the UI that do not exist in the file system already.</p><p><span class="strong"><em>20.15</em></span> Package file structure must follow a specified
 convention. Please see the <a href="apm-design.html" title="OpenACS 4.6 Package Manager Design">design
-document</a> for what we do currently.</p></li><li><p><span class="strong">30.0 Remove files from a package</span></p><p>The developer must be able to remove files from a package. This can be
-done in two ways.</p><div class="itemizedlist"><ul type="circle"><li><p><span class="strong">30.1</span> Access the APM UI, browse the file list, and remove
-files.</p><p><span class="strong">30.1.1</span>If a file is removed from the package list, but not
-from the file system, an error should be generated at package load time.</p></li><li><p><span class="strong">30.5</span> Remove the file from file system. </p><p><span class="strong">30.5.1</span> The APM UI should take note of the fact that the
+document</a> for what we do currently.</p></li><li><p><span class="strong"><em>30.0 Remove files from a package</em></span></p><p>The developer must be able to remove files from a package. This can be
+done in two ways.</p><div class="itemizedlist"><ul type="round"><li><p><span class="strong"><em>30.1</em></span> Access the APM UI, browse the file list, and remove
+files.</p><p><span class="strong"><em>30.1.1</em></span>If a file is removed from the package list, but not
+from the file system, an error should be generated at package load time.</p></li><li><p><span class="strong"><em>30.5</em></span> Remove the file from file system. </p><p><span class="strong"><em>30.5.1</em></span> The APM UI should take note of the fact that the
 file is gone and offer the developer an option to confirm the file's
 deletion.
-</p></li></ul></div></li><li><p><span class="strong">40.0 Modify files in a package</span>. </p><p><span class="strong">40.1</span> The developer should be able to modify files in the
-file system. The APM UI should not interfere with this.</p><p><span class="strong">40.5</span> However, if the developer modifies files containing
-procedural definitions, APM UI should allow a means to <span class="strong">watch</span>
+</p></li></ul></div></li><li><p><span class="strong"><em>40.0 Modify files in a package</em></span>. </p><p><span class="strong"><em>40.1</em></span> The developer should be able to modify files in the
+file system. The APM UI should not interfere with this.</p><p><span class="strong"><em>40.5</em></span> However, if the developer modifies files containing
+procedural definitions, APM UI should allow a means to <span class="strong"><em>watch</em></span>
 those files and automatically reload them if changed. See requirement 50.0
-for more detail.</p><p><span class="strong">40.10</span> Also, although a change in files implies that the
+for more detail.</p><p><span class="strong"><em>40.10</em></span> Also, although a change in files implies that the
 package distribution file is out of date, it is the developer's
-responsibility to update it.</p></li><li><p><span class="strong">4.45.0 Manage Package Dependency Information</span>. </p><p><span class="strong">4.45.1</span> The developer should be able to specify which
-interfaces the package requires.</p><p><span class="strong">4.45.5</span> The developer should be able to specify which
-interfaces the package provides.</p><p><span class="strong">4.45.10</span> Circular dependencies are not allowed.</p></li><li><p><span class="strong">50.0 Watch a file</span> </p><p><span class="strong">4.50.1</span> The developer should be able to assign a watch to
-any Tcl procedure file, whether in /packages or /tcl.</p><p><span class="strong">50.5</span> If a watched file is locally modified, then it will
+responsibility to update it.</p></li><li><p><span class="strong"><em>4.45.0 Manage Package Dependency Information</em></span>. </p><p><span class="strong"><em>4.45.1</em></span> The developer should be able to specify which
+interfaces the package requires.</p><p><span class="strong"><em>4.45.5</em></span> The developer should be able to specify which
+interfaces the package provides.</p><p><span class="strong"><em>4.45.10</em></span> Circular dependencies are not allowed.</p></li><li><p><span class="strong"><em>50.0 Watch a file</em></span> </p><p><span class="strong"><em>4.50.1</em></span> The developer should be able to assign a watch to
+any Tcl procedure file, whether in /packages or /tcl.</p><p><span class="strong"><em>50.5</em></span> If a watched file is locally modified, then it will
 be automatically reloaded, thus allowing for any changes made to take affect
-immediately.</p><p><span class="strong">4.50.10</span> The setting of a watch should be persistent
+immediately.</p><p><span class="strong"><em>4.50.10</em></span> The setting of a watch should be persistent
 across server restarts.
 
 
-</p></li><li><p><span class="strong">60.0 Display an XML package specification</span> </p><p><span class="strong">60.1</span> The developer should be able to view the XML package
+</p></li><li><p><span class="strong"><em>60.0 Display an XML package specification</em></span> </p><p><span class="strong"><em>60.1</em></span> The developer should be able to view the XML package
 specification that encodes all package information.
-</p></li><li><p><span class="strong">70.0 Write an XML package specification to the file
-system</span> </p><p><span class="strong">70.1</span> The developer should be able to write an up-to-date
-XML specification to disk.</p><p><span class="strong">70.5</span> The developer should be able to request the current
-XML specification for all installed, locally generated packages.</p></li><li><p><span class="strong">130.0 Distribution file generation</span> </p><p><span class="strong">130.1</span> The developer should be able to generate a .APM
-distribution file for the package with just one click.</p><p><span class="strong">130.5</span> Generating a distribution file implies doing an
+</p></li><li><p><span class="strong"><em>70.0 Write an XML package specification to the file
+system</em></span> </p><p><span class="strong"><em>70.1</em></span> The developer should be able to write an up-to-date
+XML specification to disk.</p><p><span class="strong"><em>70.5</em></span> The developer should be able to request the current
+XML specification for all installed, locally generated packages.</p></li><li><p><span class="strong"><em>130.0 Distribution file generation</em></span> </p><p><span class="strong"><em>130.1</em></span> The developer should be able to generate a .APM
+distribution file for the package with just one click.</p><p><span class="strong"><em>130.5</em></span> Generating a distribution file implies doing an
 &quot;up-to-date&quot; check on all of the files. If any of the files have
 changed since package installation, then a new version of the package is
 created.
 
 
-</p></li><li><p><span class="strong">140.0 Access CVS information</span> </p><p><span class="strong">140.1</span> The developer should be able to determine the CVS
+</p></li><li><p><span class="strong"><em>140.0 Access CVS information</em></span> </p><p><span class="strong"><em>140.1</em></span> The developer should be able to determine the CVS
 status of a package, or all packages, with a single click.
-</p></li><li><p><span class="strong">4.200.0 Compound Package Construction</span> </p><p><span class="strong">4.200.1</span> The developer can include .APM packages
+</p></li><li><p><span class="strong"><em>4.200.0 Compound Package Construction</em></span> </p><p><span class="strong"><em>4.200.1</em></span> The developer can include .APM packages
 (sub-packages) within a package (the compound package) like any other
-file.</p><p><span class="strong">4.200.5</span> The recommended usage for this feature is to
+file.</p><p><span class="strong"><em>4.200.5</em></span> The recommended usage for this feature is to
 allow for separation of optional and required components from the
 installation as well as better organization of files once installed. For
 example, all documentation for the community-core can be packages as
 <tt>community-core-doc.apm</tt>. It is legal to include sub-packages with
 dependencies that are not satisfied by the packages in the compound package,
 but this is discouraged. In such a case, the sub-package should really be a
-separate package that is required by the compound package.</p><p><span class="strong">4.200.10</span> If a sub-package is required for the
+separate package that is required by the compound package.</p><p><span class="strong"><em>4.200.10</em></span> If a sub-package is required for the
 installation of the compound package, the compound package should have a
 registered dependency on the sub-package.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-admin-interface"></a>Requirements: The Site-Wide Administrator's Interface</h3></div></div><p>The requirement of the administrator's interface is to enable the
 administrator to install, enable, upgrade, disable, deinstall, and delete
-packages.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">80.0 Package Enable/Disable</span> </p><p><span class="strong">4.80.1</span> The administrator should be able mark an installed
+packages.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>80.0 Package Enable/Disable</em></span> </p><p><span class="strong"><em>4.80.1</em></span> The administrator should be able mark an installed
 package as enabled. This means that the package is activated and its
 functionality is delivered through the Request Processor. As of OpenACS 4, this
-is done through the sub-site system.</p><p><span class="strong">4.80.5</span> Moreover, the administrator must be able to
+is done through the sub-site system.</p><p><span class="strong"><em>4.80.5</em></span> Moreover, the administrator must be able to
 disable a package, thereby removing the functionality provided to a sub-site.
 As of OpenACS 4, this is done through the sub-site system.
-</p></li><li><p><span class="strong">90.0 Package Install</span> </p><p><span class="strong">90.1</span> The administrator must be able to install new
-packages either from locally maintained .APM files or from URLs.</p><p><span class="strong">90.5</span> In the case of an URL, the APM transparently
+</p></li><li><p><span class="strong"><em>90.0 Package Install</em></span> </p><p><span class="strong"><em>90.1</em></span> The administrator must be able to install new
+packages either from locally maintained .APM files or from URLs.</p><p><span class="strong"><em>90.5</em></span> In the case of an URL, the APM transparently
 downloads the APM file off the web, proceeds with a file based installation,
-and then optionally removes the .APM file just downloaded.</p><p><span class="strong">90.10.1</span> If .APM files are present in a package, then it
-is considered a compound package (use 4.210.0).</p><p><span class="strong">90.15.0</span> Installation requires these steps:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong">90.15.1</span>The package dependencies are scanned. If some
+and then optionally removes the .APM file just downloaded.</p><p><span class="strong"><em>90.10.1</em></span> If .APM files are present in a package, then it
+is considered a compound package (use 4.210.0).</p><p><span class="strong"><em>90.15.0</em></span> Installation requires these steps:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong"><em>90.15.1</em></span>The package dependencies are scanned. If some
 dependencies are not present, the system warns the administrator that
-installation cannot proceed until those packages are installed.</p></li><li><p><span class="strong">90.15.2</span> Assuming all dependencies are present, APM
-extracts the contents of the APM file into the /packages directory.</p></li><li><p><span class="strong">90.15.3</span> The administrator is offered the option of
-importing directly into CVS.</p></li><li><p><span class="strong">90.15.4</span> The administrator is given a list of data model
-scripts found in the package and can select which ones to be executed.</p></li><li><p><span class="strong">90.15.5</span> If no errors are recorded during this process,
-the package is enabled.</p></li></ol></div></li><li><p><span class="strong">4.210.0 Compound package Install</span> </p><p><span class="strong">4.210.1</span> If .APM files are present in a package, then it
-is considered a compound package.</p><p><span class="strong">4.210.5.0</span> Installation of a compound package proceeds
-according to the following sequence:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong">4.210.5.1</span> Identify the set of all sub-packages within
-the compound package by scanning for all files with .APM.</p></li><li><p><span class="strong">4.210.5.2</span> Identify which sub-packages are required by
+installation cannot proceed until those packages are installed.</p></li><li><p><span class="strong"><em>90.15.2</em></span> Assuming all dependencies are present, APM
+extracts the contents of the APM file into the /packages directory.</p></li><li><p><span class="strong"><em>90.15.3</em></span> The administrator is offered the option of
+importing directly into CVS.</p></li><li><p><span class="strong"><em>90.15.4</em></span> The administrator is given a list of data model
+scripts found in the package and can select which ones to be executed.</p></li><li><p><span class="strong"><em>90.15.5</em></span> If no errors are recorded during this process,
+the package is enabled.</p></li></ol></div></li><li><p><span class="strong"><em>4.210.0 Compound package Install</em></span> </p><p><span class="strong"><em>4.210.1</em></span> If .APM files are present in a package, then it
+is considered a compound package.</p><p><span class="strong"><em>4.210.5.0</em></span> Installation of a compound package proceeds
+according to the following sequence:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong"><em>4.210.5.1</em></span> Identify the set of all sub-packages within
+the compound package by scanning for all files with .APM.</p></li><li><p><span class="strong"><em>4.210.5.2</em></span> Identify which sub-packages are required by
 checking the dependencies of the compound package. If there dependencies not
 satisfied by the current system or the packages included with the compound
 package, halt installation and inform user to install these packages
-first.</p></li><li><p><span class="strong">4.210.5.3</span> Present Administrator with the ability to
+first.</p></li><li><p><span class="strong"><em>4.210.5.3</em></span> Present Administrator with the ability to
 choose which sub-packages to install. Required sub-packages must be
-installed.</p></li><li><p><span class="strong">4.210.5.4</span> Proceed with the installation of each
+installed.</p></li><li><p><span class="strong"><em>4.210.5.4</em></span> Proceed with the installation of each
 sub-package, starting with required packages. If the sub-package is already
 installed, then do nothing. Else, If the sub-package is a normal package,
-proceed according to <span class="strong">90.15.0</span>, otherwise if it is a compound
-package, proceed according to <span class="strong">4.210.5.0</span>.</p></li><li><p><span class="strong">4.210.5.5</span> If all required sub-packages are installed,
+proceed according to <span class="strong"><em>90.15.0</em></span>, otherwise if it is a compound
+package, proceed according to <span class="strong"><em>4.210.5.0</em></span>.</p></li><li><p><span class="strong"><em>4.210.5.5</em></span> If all required sub-packages are installed,
 proceed to install non-required sub-packages. If there was a failure during
 the installation of a required sub-package, then the installation of the
-compound package is also a failure.</p></li><li><p><span class="strong">4.210.5.6</span> Any attempt to install a compound package in
+compound package is also a failure.</p></li><li><p><span class="strong"><em>4.210.5.6</em></span> Any attempt to install a compound package in
 the future involves a choice presented to the admin of installing any
-uninstalled sub-packages.</p></li></ol></div></li><li><p><span class="strong">4.220.0 Recovering from failed package installation</span></p><p><span class="strong">4.220.1</span> If any error is generated during package
+uninstalled sub-packages.</p></li></ol></div></li><li><p><span class="strong"><em>4.220.0 Recovering from failed package installation</em></span></p><p><span class="strong"><em>4.220.1</em></span> If any error is generated during package
 installation, the package is not considered installed. To recover from this
-failure, the package should be selected for installation again.</p></li><li><p><span class="strong">100.0 Version Upgrade</span> </p><p><span class="strong">100.1</span> The administrator can upgrade to a new version of a
-package. This entails</p><div class="orderedlist"><ol type="1"><li><p><span class="strong">100.1.1</span> Running any necessary and included upgrade
-scripts.</p></li><li><p><span class="strong">100.1.5</span> Replacing any old files with new versions.</p></li><li><p><span class="strong">100.1.10</span> Marking the old version of the package as
-'superseded' and disabling it.</p></li><li><p><span class="strong">100.1.15</span> Assuming no errors from above, the new package
-is enabled.</p></li></ol></div></li><li><p><span class="strong">110.0 Package Deinstall</span> </p><p><span class="strong">110.1</span> The administrator must be able to deinstall a
-package that has already been installed. Deinstallation entails:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong">110.1.1</span> Running any data model scripts necessary to drop
-the package.</p></li><li><p><span class="strong">110.1.5</span> Moving all of the files into a separate location
-in the file system from the installed packages.</p></li><li><p><span class="strong">4.110.1.10</span> If the package is a compound package, then
+failure, the package should be selected for installation again.</p></li><li><p><span class="strong"><em>100.0 Version Upgrade</em></span> </p><p><span class="strong"><em>100.1</em></span> The administrator can upgrade to a new version of a
+package. This entails</p><div class="orderedlist"><ol type="1"><li><p><span class="strong"><em>100.1.1</em></span> Running any necessary and included upgrade
+scripts.</p></li><li><p><span class="strong"><em>100.1.5</em></span> Replacing any old files with new versions.</p></li><li><p><span class="strong"><em>100.1.10</em></span> Marking the old version of the package as
+'superseded' and disabling it.</p></li><li><p><span class="strong"><em>100.1.15</em></span> Assuming no errors from above, the new package
+is enabled.</p></li></ol></div></li><li><p><span class="strong"><em>110.0 Package Deinstall</em></span> </p><p><span class="strong"><em>110.1</em></span> The administrator must be able to deinstall a
+package that has already been installed. Deinstallation entails:</p><div class="orderedlist"><ol type="1"><li><p><span class="strong"><em>110.1.1</em></span> Running any data model scripts necessary to drop
+the package.</p></li><li><p><span class="strong"><em>110.1.5</em></span> Moving all of the files into a separate location
+in the file system from the installed packages.</p></li><li><p><span class="strong"><em>4.110.1.10</em></span> If the package is a compound package, then
 the administrator must confirm removing all sub-packages. Optionally, some
-sub-packages can be kept.</p></li></ol></div><p><span class="strong">110.5</span> Deinstalled packages can be re-installed at a later
-date.</p><p><span class="strong">4.110.10</span> If deinstalling a package or any of its
+sub-packages can be kept.</p></li></ol></div><p><span class="strong"><em>110.5</em></span> Deinstalled packages can be re-installed at a later
+date.</p><p><span class="strong"><em>4.110.10</em></span> If deinstalling a package or any of its
 sub-packages breaks a dependency, then deinstallation cannot proceed until
-the package registering the dependency is removed.</p></li><li><p><span class="strong">120.0 Package Deletion</span> </p><p><span class="strong">120.1</span> The administrator should be able to completely
+the package registering the dependency is removed.</p></li><li><p><span class="strong"><em>120.0 Package Deletion</em></span> </p><p><span class="strong"><em>120.1</em></span> The administrator should be able to completely
 erase all records of the package. This involves removing all instances of the
-package, all related database tables and content.</p><p><span class="strong">120.5</span> This option can only be used if all package
+package, all related database tables and content.</p><p><span class="strong"><em>120.5</em></span> This option can only be used if all package
 instances are deleted or marked as disabled. This is purposefully cumbersome
 because deleting all instances of a package can have far-sweeping
-consequences throughout a site and should almost never be done.</p></li><li><p><span class="strong">150.0 Scan for new or modified packages</span> </p><p><span class="strong">150.1</span> The administrator should be able to scan the file
-system for any changes made in any of the installed package files.</p><p><span class="strong">150.5</span> The administrator should be able to scan the file
+consequences throughout a site and should almost never be done.</p></li><li><p><span class="strong"><em>150.0 Scan for new or modified packages</em></span> </p><p><span class="strong"><em>150.1</em></span> The administrator should be able to scan the file
+system for any changes made in any of the installed package files.</p><p><span class="strong"><em>150.5</em></span> The administrator should be able to scan the file
 system for any newly installed packages.
 </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-sub-admin-intf"></a>Requirements: The Sub-Site Administrator's Interface</h3></div></div><p>
 If the developer is in charge of creating packages and the administrator for
 installing them, then the sub-site administrator is responsible for
 configuring and enabling packages. In order for a package to be available for
 a sub-site it must be associated with the sub-site's type specification.
 This interface is part of the sub-site /admin interface. 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">4.300</span> Creating a package instance. </p><p><span class="strong">4.300.1</span> From the sub-site /admin interface, there should
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>4.300</em></span> Creating a package instance. </p><p><span class="strong"><em>4.300.1</em></span> From the sub-site /admin interface, there should
 be an option to view all packages available in the system as well as an
-option to add a package to the subsite.</p><p><span class="strong">4.300.5</span> From the &quot;add&quot; option, the sub-admin
+option to add a package to the subsite.</p><p><span class="strong"><em>4.300.5</em></span> From the &quot;add&quot; option, the sub-admin
 can select from a list of packages registered as available in the sub-site
-type to which the sub-site belongs.</p><p><span class="strong">4.300.19</span> Once a package instance is added, it is
-available on the list of the subsite's available packages.</p></li><li><p><span class="strong">4.305</span> Configuring a package instance. </p><p><span class="strong">4.305.1</span> An automatic web interface that lists all
-parameters with current values must be available.</p><p><span class="strong">4.305.5</span> Changing the values for the parameters is
-accomplished simply by submitting an HTML form.</p></li><li><p><span class="strong">4.310</span> Enabling a package instance. </p><p><span class="strong">4.310.1</span> The sub-admin should be able to enable a package
+type to which the sub-site belongs.</p><p><span class="strong"><em>4.300.19</em></span> Once a package instance is added, it is
+available on the list of the subsite's available packages.</p></li><li><p><span class="strong"><em>4.305</em></span> Configuring a package instance. </p><p><span class="strong"><em>4.305.1</em></span> An automatic web interface that lists all
+parameters with current values must be available.</p><p><span class="strong"><em>4.305.5</em></span> Changing the values for the parameters is
+accomplished simply by submitting an HTML form.</p></li><li><p><span class="strong"><em>4.310</em></span> Enabling a package instance. </p><p><span class="strong"><em>4.310.1</em></span> The sub-admin should be able to enable a package
 with a single click. Enabling a package means that the OpenACS will serve its
 URLs properly.
 
 
-</p></li><li><p><span class="strong">4.315</span> Disabling a package instance. </p><p><span class="strong">4.315.1</span> The sub-admin should be able to disable a package
+</p></li><li><p><span class="strong"><em>4.315</em></span> Disabling a package instance. </p><p><span class="strong"><em>4.315.1</em></span> The sub-admin should be able to disable a package
 with a single click. Disabling a package means that the OpenACS will no longer
-serve those URLs.</p></li><li><p><span class="strong">4.320</span> Deleting a package instance. </p><p><span class="strong">4.320.1</span> Deleting a package instance involves deleting not
+serve those URLs.</p></li><li><p><span class="strong"><em>4.320</em></span> Deleting a package instance. </p><p><span class="strong"><em>4.320.1</em></span> Deleting a package instance involves deleting not
 only the package instance, but any and all content associated with it. It is
 questionable whether this option should even be available due to its drastic
 consequences. Reviewer comments appreciated.
@@ -293,4 +293,4 @@
 are set using the acs_attribute_values table. The automatic web interface for
 setting package parameters should be one and the same with the interface for
 setting acs object attribute values. Consequently, the implementation of
-these features should be quite straightforward.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>8/10/2000</td><td>Bryan Quinn, Todd Nightingale</td></tr><tr><td>�</td><td>Reviewed</td><td>8/11/2000</td><td>John Prevost, Mark Thomas, and Pete Su</td></tr><tr><td>0.2</td><td>Revised and updated</td><td>8/12/2000</td><td>Bryan Quinn</td></tr><tr><td>0.3</td><td>Reviewed, revised, and updated - conforms to requirements template.</td><td>8/18/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Minor edits before ACS 4 Beta.</td><td>9/30/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="apm-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Subsites Design Document&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Package Manager Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/apm-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
+these features should be quite straightforward.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="apm-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>8/10/2000</td><td>Bryan Quinn, Todd Nightingale</td></tr><tr><td>�</td><td>Reviewed</td><td>8/11/2000</td><td>John Prevost, Mark Thomas, and Pete Su</td></tr><tr><td>0.2</td><td>Revised and updated</td><td>8/12/2000</td><td>Bryan Quinn</td></tr><tr><td>0.3</td><td>Reviewed, revised, and updated - conforms to requirements template.</td><td>8/18/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Minor edits before ACS 4 Beta.</td><td>9/30/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="apm-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Subsites Design Document&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Package Manager Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/apm-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Bootstrapping OpenACS</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 7. Kernel Documentation"><link rel="previous" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Kernel Documentation</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="bootstrap-acs"></a>Bootstrapping OpenACS</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Bootstrapping OpenACS</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"><link rel="next" href="ix01.html" title="Index"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ix01.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="bootstrap-acs"></a>Bootstrapping OpenACS</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl</p></li></ul></div><p>This document describes the startup (bootstrapping) process for an AOLserver
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl</p></li></ul></div><p>This document describes the startup (bootstrapping) process for an AOLserver
 running OpenACS. 
 </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="bootstrap-acs-bigpicture"></a>The Big Picture</h3></div></div><p>
 Before OpenACS 3.3, the OpenACS startup process was extremely simple: after AOLserver
@@ -87,6 +87,4 @@
 At this point, <tt>bootstrap.tcl</tt> is done executing. AOLserver
 proceeds to source the remaining files in the <tt>/tcl</tt> directory
 (i.e., unpackaged libraries) and begins listening for connections. 
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left">Documenting Tcl Files: Page Contracts and Libraries&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ix01.html">Next</a></td></tr><tr><td width="40%" align="left">Documenting Tcl Files: Page Contracts and Libraries&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Index</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/bootstrap-acs.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/credits.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/credits.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/credits.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Credits</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="nextsteps.html" title="Next Steps"><link rel="next" href="win-install.html" title="Chapter 3. Installing on Windows"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="nextsteps.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="win-install.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="credits"></a>Credits</h2></div></div><div class="authorblurb"><p>
 	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p><a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a> put
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p><a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a> put
 	together the January 2002 version of this guide from many sources of
 	information.</p><div class="itemizedlist"><ul type="disc"><li><p>
 		<a href="operating-system.html">Install an Operating System</a>
@@ -30,11 +30,9 @@
 	Several people have helped with this document, including Torben
 	Brosten, Don Baccus, Roberto Mello, Talli Somekh, Dave Bauer, Jim
 	Lynch, Jon Griffin, Daryl Biberdorf, Bjorn Thor Jonsson, Jade Rubick,
-	Fred Yankowski, Dan Chak, Sebastiano Pilla, Reuven Lerner and Malte
-	Sussdorff.
+	Fred Yankowski, Dan Chak, Sebastiano Pilla, Reuven Lerner, Malte
+	Sussdorff, Stan Kaufman and Pascal Scheffers.
   </p><p>
-	<span class="strong"><em>All questions and comments</em></span> regarding
-	this guide should be posted on the <a href="http://openacs.org/bboard" target="_top">OpenACS bboards</a>.
-  </p><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="nextsteps.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="win-install.html">Next</a></td></tr><tr><td width="40%" align="left">Next Steps&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 3. Installing on Windows</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    <span class="strong"><em>All questions and comments</em></span> regarding
+    this guide should be posted on the <a href="http://openacs.org/bboard" target="_top">OpenACS bboards</a>.
+  </p><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="nextsteps.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="win-install.html">Next</a></td></tr><tr><td width="40%" align="left">Next Steps&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 3. Installing on Windows</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/credits.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/db-api-detailed.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api-detailed.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/db-api-detailed.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Database Access API</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 7. Kernel Documentation"><link rel="previous" href="rp-design.html" title="OpenACS 4 Request Processor Design"><link rel="next" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tcl-doc.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="db-api-detailed"></a>Database Access API</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Database Access API</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="rp-design.html" title="OpenACS 4 Request Processor Design"><link rel="next" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tcl-doc.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="db-api-detailed"></a>Database Access API</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a>. Revised and expanded by 
 Roberto Mello (rmello at fslc dot usu dot edu), July 2002. 
 <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl procedures: /packages/acs-kernel/10-database-procs.tcl</p></li><li><p>Tcl initialization: /packages/acs-kernel/database-init.tcl</p></li></ul></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="db-api-detailed-bigpicture"></a>The Big Picture</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl procedures: /packages/acs-kernel/10-database-procs.tcl</p></li><li><p>Tcl initialization: /packages/acs-kernel/database-init.tcl</p></li></ul></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="db-api-detailed-bigpicture"></a>The Big Picture</h3></div></div><p>
 One of OpenACS's great strengths is that code written for it is very close to
 the database. It is very easy to interact with the database from anywhere
 within OpenACS. Our goal is to develop a coherent API for database access which
@@ -731,6 +731,4 @@
 			The nsv containing the list is initialized by the bootstrap script and should
 			never be referenced directly by user code.
 			Returns the current rdbms type and version.
-		</p></dd></dl></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="tcl-doc.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Request Processor Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Documenting Tcl Files: Page Contracts and Libraries</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+		</p></dd></dl></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="tcl-doc.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Request Processor Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Documenting Tcl Files: Page Contracts and Libraries</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/db-api-detailed.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/db-api.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/db-api.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/db-api.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>The OpenACS Database Access API</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="request-processor.html" title="The Request Processor"><link rel="next" href="templates.html" title="Using Templates in OpenACS 4.5"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="request-processor.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="templates.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="db-api"></a>The OpenACS Database Access API</h2></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>The OpenACS Database Access API</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="request-processor.html" title="The Request Processor"><link rel="next" href="templates.html" title="Using Templates in OpenACS 4.6"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="request-processor.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="templates.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="db-api"></a>The OpenACS Database Access API</h2></div></div><p>
     By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a> and
     <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a>. Modified
     by Roberto Mello.
@@ -737,6 +737,4 @@
 
 	  </pre></dd></dl></div><p>
       </p><div class="cvstag">($Id$)</div><p>
-    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="request-processor.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="templates.html">Next</a></td></tr><tr><td width="40%" align="left">The Request Processor&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Using Templates in OpenACS 4.5</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="request-processor.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="templates.html">Next</a></td></tr><tr><td width="40%" align="left">The Request Processor&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Using Templates in OpenACS 4.6</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/db-api.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/dev-guide.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/dev-guide.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/dev-guide.html	30 Nov 2002 17:16:23 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/dev-guide.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�4.�OpenACS Developer's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part�Part III.�For OpenACS Developers"><link rel="previous" href="acs-dev.html" title="Part�Part III.�For OpenACS Developers"><link rel="next" href="developers-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-dev.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part III.�For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="developers-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dev-guide"></a>Chapter�4.�OpenACS Developer's Guide</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS 4.6 Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-dev.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="developers-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part�Part III.�For OpenACS Developers&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/dev-guide.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 6. OpenACS Developer's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="previous" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="next" href="developers-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-dev.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part III. For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="developers-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dev-guide"></a>Chapter 6. OpenACS Developer's Guide</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="tutorial.html">OpenACS 4.6 Package Tutorial</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt><dt><a href="submissions.html">Contributions</a></dt><dt><a href="i18n.html">Internationalization</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-dev.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="developers-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part III. For OpenACS Developers&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/dev-guide.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/developers-overview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/developers-overview.html,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/acs-core-docs/www/developers-overview.html	30 Nov 2002 17:16:23 -0000	1.4
+++ openacs-4/packages/acs-core-docs/www/developers-overview.html	28 Feb 2003 05:36:04 -0000	1.5
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter�4.�OpenACS Developer's Guide"><link rel="previous" href="dev-guide.html" title="Chapter�4.�OpenACS Developer's Guide"><link rel="next" href="packages.html" title="OpenACS 4.6 Packages"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�4.�OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="packages.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="developers-overview"></a>Overview</h2></div></div><p>A tour of what you need to know in order to extend OpenACS.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="packages.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�4.�OpenACS Developer's Guide&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Packages</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/developers-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="next" href="tutorial.html" title="OpenACS 4.6 Package Tutorial"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tutorial.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="developers-overview"></a>Overview</h2></div></div><p>A tour of what you need to know in order to extend OpenACS.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="tutorial.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 6. OpenACS Developer's Guide&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Package Tutorial</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/developers-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/acs-core-docs/www/docbook-primer.html	30 Nov 2002 17:16:23 -0000	1.9
+++ openacs-4/packages/acs-core-docs/www/docbook-primer.html	28 Feb 2003 05:36:04 -0000	1.10
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS Documentation Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter�6.�Engineering Standards"><link rel="previous" href="eng-standards.html" title="Chapter�6.�Engineering Standards"><link rel="next" href="psgml-mode.html" title="Using PSGML mode in Emacs"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�6.�Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="psgml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbook-primer"></a>OpenACS Documentation Guide</h2></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Documentation Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="next" href="psgml-mode.html" title="Using PSGML mode in Emacs"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="psgml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbook-primer"></a>OpenACS Documentation Guide</h2></div></div><p>
     By <a href="mailto:claus@arsdigita.com" target="_top">claus@arsdigita.com</a>, with
     additions by <a href="mailto:rmello@fslc.usu.edu" target="_top">Roberto
       Mello</a> and the OpenACS Community
@@ -10,12 +10,12 @@
       OpenACS a superb documentation, so that users, developers and
       administrators of OpenACS installations can enjoy the system.
     </p><p>
-      OpenACS is a powerful system, with
+      OpenACS&#8482; is a powerful system, with
       incredible possibilities and applications, but with this power
       comes some complexity and a learning curve that will only be
       atenuated by good documentation. This is what we are after.
     </p><p>
-      The documentation for OpenACS is
+      The documentation for OpenACS&#8482; is
       written using DocBook XML. The reasons why we are using
       DocBook	are explained in more details in the
       <a href="docbook-primer.html#dbprimer-why">Why DocBook?</a> section. I will add the reasons why
@@ -26,13 +26,13 @@
       </li><li><span class="emphasis"><em>It does not require extra
 	  effort</em></span>. Writing in XML is almost identical to
 	SGML, with a couple extra rules. More details in the
-	<a href="http://www.linuxdoc.org/LDP/LDP-Author-Guide/docbookxml.html" target="_top">LDP
+	<a href="http://en.tldp.org/LDP/LDP-Author-Guide/docbookxml.html" target="_top">LDP 
 	  Author Guide</a>.
       </li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-why"></a>Why DocBook?</h3></div></div><p>
       In order to separate content and presentation, all OpenACS documentation will be marked up to conform to the 
       <a href="http://docbook.org/xml/index.html" target="_top">DocBook XML DTD</a> 
       
-      <a class="indexterm" name="id2830160"></a>
+      <a class="indexterm" name="id2863724"></a>
       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.
@@ -52,11 +52,11 @@
       <a href="http://docbook.org/tdg/en/html/part2.html" target="_top">
 	list of elements</a> 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 <span class="strong">as long as you remember to</span>:
-      <a class="indexterm" name="id2830231"></a>
+      the same elements are valid in the XML DTD <span class="strong"><em>as long as you remember to</em></span>:
+      <a class="indexterm" name="id2863799"></a>
     </p><div class="itemizedlist"><ul type="disc"><li><p>
 	  Always close your tags with corresponding end-tags and to
-	  <span class="strong">not use other tag minimization</span>
+	  <span class="strong"><em>not use other tag minimization</em></span>
 	</p></li><li><p>
 	  Write all elements and attributes in lowercase
 	</p></li><li><p>
@@ -80,7 +80,7 @@
 	Some editing tool. A popular one is Emacs with the psgml
 	mode. We have a <a href="psgml-mode.html" title="Using PSGML mode in Emacs">intro to the PSGML
 	Mode in Emacs</a> as part of our documentation. You can
-	read about other editing tools in the <a href="http://www.linuxdoc.org/LDP/LDP-Author-Guide/" target="_top">LDP Author Guide</a>.
+	read about other editing tools in the <a href="http://en.tldp.org/LDP/LDP-Author-Guide/" target="_top">LDP Author Guide</a>.
       </li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-new-doc"></a>Writing New Docs</h3></div></div><p>
       After you have the tools mentioned above, you need to define a
       title for your document. Then start thinking about the possible
@@ -91,52 +91,52 @@
       please e-mail the gatekeeper in charge of documentation.
     </p><p>
       You can look at some templates for documents (in Docbook XML) in
-      the <a href="http://openacs.org/sdm/package-repository.tcl?current_entry=DIRECTORY%20%2fopenacs%2d4%2fpackages%2facs%2dcore%2ddocs%2fwww%20xml&amp;package_id=9" target="_top">sources
+      the <a href="http://openacs.org/cvs/openacs-4/packages/acs-core-docs/www/xml/engineering-standards" target="_top">sources
       for acs-core-docs</a>, especially the <span class="emphasis"><em>
       Detailed Design Documentation Template</em></span> and the
       <span class="emphasis"><em>System/Application Requirements Template</em></span>.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-structure"></a>Document Structure</h3></div></div><p>
       The documentation for each package will make up a little &quot;book&quot; that is structured like this 
       - examples are <span class="emphasis"><em>emphasized</em></span>:
 
-      <a class="indexterm" name="id2830439"></a>
+      <a class="indexterm" name="id2864018"></a>
 
     </p><pre class="programlisting">
-    book                        : <span class="strong">Docs for one package</span> - <span class="emphasis"><em>templating</em></span>
+    book                        : <span class="strong"><em>Docs for one package</em></span> - <span class="emphasis"><em>templating</em></span>
      |
-     +--chapter                 : <span class="strong">One section</span> - <span class="emphasis"><em>for developers</em></span>
+     +--chapter                 : <span class="strong"><em>One section</em></span> - <span class="emphasis"><em>for developers</em></span>
          |
 ---------+------------------------------------------------------
          |
-         +--sect1               : <span class="strong">Single document</span> - <span class="emphasis"><em>requirements</em></span>
+         +--sect1               : <span class="strong"><em>Single document</em></span> - <span class="emphasis"><em>requirements</em></span>
              |
-             +--sect2           : <span class="strong">Sections</span> - <span class="emphasis"><em>functional requirements</em></span>
+             +--sect2           : <span class="strong"><em>Sections</em></span> - <span class="emphasis"><em>functional requirements</em></span>
                  |
-                 +--sect3       : <span class="strong">Subsections</span> - <span class="emphasis"><em>Programmer's API</em></span>
+                 +--sect3       : <span class="strong"><em>Subsections</em></span> - <span class="emphasis"><em>Programmer's API</em></span>
                      |
-                    ...         : <span class="strong">...</span>
+                    ...         : <span class="strong"><em>...</em></span>
     </pre><p>
       The actual content is split up into documents that start at a
       <tt>sect1</tt>-level. These are then tied together in a top-level document that 
       contains all the information above the line. This will be explained in more detail in a later document, 
       and we will provide a set of templates for documenting an entire package. </p><p>For now you can take a look at the
-      <a href="http://openacs.org/sdm/package-repository.tcl?current_entry=DIRECTORY%20%2fopenacs%2d4%2fpackages%2facs%2dcore%2ddocs%2fwww%20xml&amp;package_id=9" target="_top">sources of these DocBook documents</a>
+      <a href="http://openacs.org/cvs/openacs-4/packages/acs-core-docs/www/xml/engineering-standards" target="_top">sources of these DocBook documents</a>
       to get an idea of how they are tied together.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-sections"></a>Headlines, Sections</h3></div></div><p>
-      <a class="indexterm" name="id2830563"></a>
+      <a class="indexterm" name="id2864151"></a>
       Given that your job starts at the <tt>sect1</tt>-level, all your documents should open with a
       <a href="http://docbook.org/tdg/html/sect1.html" target="_top"><tt>&lt;sect1&gt;</tt></a>-tag and end 
       with the corresponding <tt>&lt;/sect1&gt;</tt>.
     </p><p>
-      <a class="indexterm" name="id2830596"></a>
+      <a class="indexterm" name="id2864193"></a>
       You need to feed every <tt>&lt;sect1&gt;</tt> two attributes. The first attribute,
       <tt>id</tt>, 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 <a href="docbook-primer.html#dbprimer-links" title="Links">the section called &#8220;Links&#8221;</a>). 
       The value of <tt>id</tt> has to be unique 
       throughout the book you're making since the <tt>id</tt>'s in your 
       <tt>sect1</tt>'s will turn into filenames when the book is parsed into HTML.
     </p><p>
-      <a class="indexterm" name="id2830639"></a>
+      <a class="indexterm" name="id2864255"></a>
       The other attribute is <tt>xreflabel</tt>. The value of this is the text that will appear
       as the link when referring to this <tt>sect1</tt>.
     </p><p>
@@ -151,7 +151,7 @@
 
       &lt;/sect1&gt;
     </pre><p>
-      <a class="indexterm" name="id2830678"></a>
+      <a class="indexterm" name="id2864308"></a>
       Inside this container your document will be split up into 
       <a href="http://docbook.org/tdg/html/sect2.html" target="_top"><tt>&lt;sect2&gt;</tt></a>'s,
       each with the same requirements - <tt>id</tt> and <tt>xreflabel</tt>
@@ -160,7 +160,7 @@
       When it comes to naming your
       <tt>sect2</tt>'s and below, prefix them with some abbreviation of the <tt>id</tt> in the <tt>sect1</tt> such as <tt>requirements-overview</tt>.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-code"></a>Code</h3></div></div><p>
-      <a class="indexterm" name="id2830753"></a>
+      <a class="indexterm" name="id2864412"></a>
       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 
       <a href="http://docbook.org/tdg/html/computeroutput.html" target="_top"><tt>&lt;computeroutput&gt;</tt></a>.
@@ -170,12 +170,12 @@
       <a href="http://docbook.org/tdg/html/programlisting.html" target="_top"><tt>&lt;programlisting&gt;</tt></a> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of
       automatically. 
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-links"></a>Links</h3></div></div><p>
-      <a class="indexterm" name="id2830810"></a>
+      <a class="indexterm" name="id2864482"></a>
       Linking falls into two different categories: inside the book you're making and outside:
-    </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. Inside linking, cross-referencing other parts of your book</span></span></dt><dd><p>
+    </p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>1. Inside linking, cross-referencing other parts of your book</em></span></span></dt><dd><p>
 	    By having unique <tt>id</tt>'s you can cross-reference any part of your book
 	    with a simple tag, regardless of where that part is.
-	  </p><p><a class="indexterm" name="id2830850"></a>Check out how I link to a subsection of the Developer's Guide:</p><pre class="programlisting">
+	  </p><p><a class="indexterm" name="id2864524"></a>Check out how I link to a subsection of the Developer's Guide:</p><pre class="programlisting">
 
 	    Put this in your XML:
 
@@ -212,8 +212,8 @@
 	    Note that since I haven't provided an <tt>xreflabel</tt> for the subsection, 
 	    <tt>packages-looks</tt>, the
 	    parser will try its best to explain where the link takes you.
-	  </p></dd><dt><span class="term"><span class="strong">2. Linking outside the documentation</span></span></dt><dd><p>
-	    <a class="indexterm" name="id2830982"></a>
+	  </p></dd><dt><span class="term"><span class="strong"><em>2. Linking outside the documentation</em></span></span></dt><dd><p>
+	    <a class="indexterm" name="id2864674"></a>
 	    If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just
 	    a little different
 
@@ -222,19 +222,19 @@
 	  </p><pre class="programlisting">&lt;ulink url=&quot;http://www.oracle.com/&quot;&gt;Oracle Corporation&lt;/ulink&gt;</pre><p>
 
 	    ....will create a hyper-link to Oracle in the HTML-version of the documentation.
-	  </p><p><span class="strong">NOTE:</span> Do NOT use ampersands in your hyper links. These are reserved for referencing
+	  </p><p><span class="strong"><em>NOTE:</em></span> Do NOT use ampersands in your hyper links. These are reserved for referencing
 	    entities, which is exactly how you'll make an ampersand: <tt>&amp;amp;</tt>
 
 	  </p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-graphics"></a>Graphics</h3></div></div><p>
-      <span class="emphasis"><em><span class="strong">NOTE:</span> Currently this section currently only takes HTML-output into consideration -
+      <span class="emphasis"><em><span class="strong"><em>NOTE:</em></span> Currently this section currently only takes HTML-output into consideration -
 	not a printed version</em></span>
     </p><p>
       <span class="emphasis"><em>
-	<span class="strong">Another Note:</span> Also, it's still not a 100 percent sure that this is how we are going to 
+	<span class="strong"><em>Another Note:</em></span> Also, it's still not a 100 percent sure that this is how we are going to 
 	do it, so if you want to start converting your documents right away, start out with the ones without graphics ;)
       </em></span>
     </p><p>
-      <a class="indexterm" name="id2831079"></a>
+      <a class="indexterm" name="id2864784"></a>
       To insert a graphic we use the elements 
       <a href="http://docbook.org/tdg/html/mediaobject.html" target="_top"><tt>&lt;mediaobject&gt;</tt></a>,
       <a href="http://docbook.org/tdg/html/imageobject.html" target="_top"><tt>&lt;imageobject&gt;</tt></a>,
@@ -260,9 +260,9 @@
       Put your graphics in a separate directory (&quot;images&quot;) and link to them 
       only with relative paths.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-lists"></a>Lists</h3></div></div><p>
-      <a class="indexterm" name="id2831167"></a>
+      <a class="indexterm" name="id2864886"></a>
       Here's how you make the DocBook equivalent of the three usual HTML-lists:
-    </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. How to make an &lt;ul&gt;</span></span></dt><dd><p>
+    </p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>1. How to make an &lt;ul&gt;</em></span></span></dt><dd><p>
 	    Making an unordered list is pretty much like doing the same thing in HTML - if you close your <tt>&lt;li&gt;</tt>, that is. The only differences are that each list item has to be wrapped in something more, such as
 	    <tt>&lt;para&gt;</tt>, and that the tags are called
 	    <a href="http://docbook.org/tdg/html/itemizedlist.html" target="_top"><tt>&lt;itemizedlist&gt;</tt></a>
@@ -275,7 +275,7 @@
 	    &lt;listitem&gt;&lt;para&gt;More stuff goes here&lt;/para&gt;&lt;/listitem&gt;
 
 	    &lt;/itemizedlist&gt;
-	  </pre></dd><dt><span class="term"><span class="strong">2. How to make an &lt;ol&gt;</span></span></dt><dd><p>
+	  </pre></dd><dt><span class="term"><span class="strong"><em>2. How to make an &lt;ol&gt;</em></span></span></dt><dd><p>
 	    The ordered list is like the preceding, except that you use 
 	    <a href="http://docbook.org/tdg/html/orderedlist.html" target="_top"><tt>&lt;orderedlist&gt;</tt></a> instead:</p><pre class="programlisting">
 	    &lt;orderedlist&gt;
@@ -284,7 +284,7 @@
 	    &lt;listitem&gt;&lt;para&gt;More stuff goes here&lt;/para&gt;&lt;/listitem&gt;
 
 	    &lt;/orderedlist&gt;
-	  </pre></dd><dt><span class="term"><span class="strong">3. How to make a &lt;dl&gt;</span></span></dt><dd><p>
+	  </pre></dd><dt><span class="term"><span class="strong"><em>3. How to make a &lt;dl&gt;</em></span></span></dt><dd><p>
 	    This kind of list is called a <tt>variablelist</tt> and these are the tags you'll need to 
 	    make it happen:
 	    <a href="http://docbook.org/tdg/html/variablelist.html" target="_top"><tt>&lt;variablelist&gt;</tt></a>,
@@ -305,7 +305,7 @@
 
 	    &lt;/variablelist&gt;
 	  </pre></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-tables"></a>Tables</h3></div></div><p>
-      <a class="indexterm" name="id2831373"></a>
+      <a class="indexterm" name="id2865121"></a>
       DocBook supports several types of tables, but in most cases, the
       <a href="http://docbook.org/tdg/html/informaltable.html" target="_top"><tt>&lt;informaltable&gt;</tt></a>
       is enough:
@@ -342,7 +342,7 @@
       <a href="http://docbook.org/tdg/html/table.html" target="_top"><tt>&lt;table&gt;</tt></a>
       for an example.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="dbprimer-emphasis"></a>Emphasis</h3></div></div><p>
-      <a class="indexterm" name="id2831519"></a>
+      <a class="indexterm" name="id2865274"></a>
       Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - 
       <a href="http://docbook.org/tdg/html/emphasis.html" target="_top"><tt>&lt;emphasis&gt;</tt></a>.
     </p><p>
@@ -376,7 +376,7 @@
     </p><pre class="programlisting">
 bash$  xsltproc -o outputfilename.xml /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/html.xsl filename.xml
     </pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
-      This example uses Daniel Veillard's <span class="strong">xsltproc</span> command available
+      This example uses Daniel Veillard's <span class="strong"><em>xsltproc</em></span> command available
       as part of libxslt from <a href="http://www.xmlsoft.org/XSLT/" target="_top">http://www.xmlsoft.org/XSLT/</a>.
       If you are using other XML processors such as Xalan or Saxon,
       you will need to change the command line appropriately.
@@ -387,7 +387,7 @@
     </p><pre class="programlisting">
 bash$  xsltproc /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl filename.xml
     </pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="db-primer-further-reading"></a>Further Reading</h3></div></div><div class="itemizedlist"><ul type="disc"><li>
-	The <a href="http://www.linuxdoc.org/LDP/LDP-Author-Guide/" target="_top">LDP Author
+	The <a href="http://en.tldp.org/LDP/LDP-Author-Guide/" target="_top">LDP Author
 	Guide</a> has a lot of good information, a table of
 	docbook elements and their &quot;look&quot; in HTML and lots of good links
 	for tools.
@@ -421,4 +421,4 @@
 	    </td><td>8/3/2002</td><td>Vinod Kurup</td></tr><tr><td>0.3</td><td>
 	      Added OpenACS information, updated tools, added
 	      extra links and added info to the Publishing section.
-	    </td><td>12/24/2001</td><td>Roberto Mello</td></tr><tr><td>0.2</td><td>Changed recommendation from &lt;phrase&gt; to &lt;emphasis role=&quot;strong&quot;&gt;</td><td>01/19/2000</td><td>Claus Rasmussen</td></tr><tr><td>0.1</td><td>Creation</td><td>12/2000</td><td>Claus Rasmussen</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="psgml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�6.�Engineering Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Using PSGML mode in Emacs</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/docbook-primer.html#comments">View comments on this page at openacs.org</a></center></body></html>
+	    </td><td>12/24/2001</td><td>Roberto Mello</td></tr><tr><td>0.2</td><td>Changed recommendation from &lt;phrase&gt; to &lt;emphasis role=&quot;strong&quot;&gt;</td><td>01/19/2000</td><td>Claus Rasmussen</td></tr><tr><td>0.1</td><td>Creation</td><td>12/2000</td><td>Claus Rasmussen</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="psgml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 8. Engineering Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Using PSGML mode in Emacs</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/docbook-primer.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,8 +1,8 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Constraint naming standard</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="next" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-constraint-naming"></a>Constraint naming standard</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:mbryzek@arsdigita.com" target="_top">mbryzek@arsdigita.com</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="eng-standards-constraint-naming-big-picture"></a>The Big Picture</h3></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Constraint naming standard</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="next" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-constraint-naming"></a>Constraint naming standard</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:mbryzek@arsdigita.com" target="_top">mbryzek@arsdigita.com</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="eng-standards-constraint-naming-big-picture"></a>The Big Picture</h3></div></div><p>
 Constraint naming standard is important for one reason: The SYS_* name oracle
 assigns to unnamed constraints is not very understandable. By correctly
 naming all contraints, we can quickly associate a particular constraint 
@@ -82,6 +82,4 @@
 debugging (e.g. the error will say something like 
 &quot;Cannot insert null value into column&quot;), we recommend naming not null
 constraints to be consistent in our naming of all constraints.
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr><tr><td width="40%" align="left">Release Version Numbering&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;ACS File Naming and Formatting Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr><tr><td width="40%" align="left">Release Version Numbering&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;ACS File Naming and Formatting Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards-constraint-naming.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>ACS File Naming and Formatting Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:michael@arsdigita.com" target="_top">michael@arsdigita.com</a> and 
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>ACS File Naming and Formatting Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:michael@arsdigita.com" target="_top">michael@arsdigita.com</a> and 
 <a href="mailto:aure@arsdigita.com" target="_top">aure@arsdigita.com</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
 To ensure consistency (and its collateral benefit, maintainability),
 we define and adhere to standards in the following areas:
 </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="eng-standards-filenaming-nomenclature"></a>File Nomenclature</h3></div></div><p>
@@ -229,6 +229,4 @@
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="eng-standards-filenaming-tcllib"></a>Tcl Library Files</h3></div></div><p>
 Further standards for Tcl library files are under discussion; we plan to 
 include naming conventions for procs.
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr><tr><td width="40%" align="left">Constraint naming standard&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;PL/SQL Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr><tr><td width="40%" align="left">Constraint naming standard&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;PL/SQL Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards-filenaming.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>PL/SQL Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="next" href="kernel-doc.html" title="Chapter 7. Kernel Documentation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="kernel-doc.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-plsql"></a>PL/SQL Standards</h2></div></div><div class="authorblurb"><p><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>PL/SQL Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="next" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="kernel-doc.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-plsql"></a>PL/SQL Standards</h2></div></div><div class="authorblurb"><p><p>
 By <a href="mailto:richardl@arsdigita.com" target="_top">richardl@arsdigita.com</a>
 and <a href="mailto:yon@arsdigita.com" target="_top">yon@arsdigita.com</a>
 </p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
   Like any other part of the OpenACS, PL/SQL (or pl/pgsql) code must be
   maintainable and professional. This means that it must be consistent and
   therefore must abide by certain standards. The standards will ensure that
@@ -153,6 +153,4 @@
     as possible to all source code readers.
    </p></li><li><p>
     Lowercase everything, with the exception of %TYPE and %ROWTYPE.
-   </p></li></ol></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="kernel-doc.html">Next</a></td></tr><tr><td width="40%" align="left">ACS File Naming and Formatting Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 7. Kernel Documentation</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+   </p></li></ol></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="kernel-doc.html">Next</a></td></tr><tr><td width="40%" align="left">ACS File Naming and Formatting Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 9. Kernel Documentation</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards-plsql.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,8 +1,8 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Release Version Numbering</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="requirements-template.html" title="System/Application Requirements Template"><link rel="next" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-versioning"></a>Release Version Numbering</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:ron@arsdigita.com" target="_top">Ron Henderson</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p> 
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Release Version Numbering</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="requirements-template.html" title="System/Application Requirements Template"><link rel="next" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eng-standards-versioning"></a>Release Version Numbering</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:ron@arsdigita.com" target="_top">Ron Henderson</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p> 
 OpenACS version numbers help identify at a high-level what is in a
 particular release and what has changed since the last release. A
 &quot;version number&quot; is really just a string of the form:
@@ -91,6 +91,4 @@
 detailed set of regression tests.  For now we try to enforce this by
 restricting work on the release branch to fixing reported problem in
 the current release, e.g. no new features or big changes to
-fundamental behavior.</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr><tr><td width="40%" align="left">System/Application Requirements Template&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Constraint naming standard</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+fundamental behavior.</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr><tr><td width="40%" align="left">System/Application Requirements Template&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Constraint naming standard</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards-versioning.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/eng-standards.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/eng-standards.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/eng-standards.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�6.�Engineering Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part�Part III.�For OpenACS Developers"><link rel="previous" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="next" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part III.�For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="docbook-primer.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="eng-standards"></a>Chapter�6.�Engineering Standards</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="docbook-primer.html">Next</a></td></tr><tr><td width="40%" align="left">Programming with AOLserver&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS Documentation Guide</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 8. Engineering Standards</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="previous" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="next" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part III. For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="docbook-primer.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="eng-standards"></a>Chapter 8. Engineering Standards</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="docbook-primer.html">Next</a></td></tr><tr><td width="40%" align="left">Programming with AOLserver&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS Documentation Guide</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/eng-standards.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/filename.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/filename.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/filename.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Detailed Design Documentation Template</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="psgml-mode.html" title="Using PSGML mode in Emacs"><link rel="next" href="requirements-template.html" title="System/Application Requirements Template"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="requirements-template.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="filename"></a>Detailed Design Documentation Template</h2></div></div><p>By <a href="mailto:youremail@arsdigita.com" target="_top">You</a></p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-start-note"></a>Start Note</h3></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Detailed Design Documentation Template</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="psgml-mode.html" title="Using PSGML mode in Emacs"><link rel="next" href="requirements-template.html" title="System/Application Requirements Template"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="requirements-template.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="filename"></a>Detailed Design Documentation Template</h2></div></div><p>By <a href="mailto:youremail@arsdigita.com" target="_top">You</a></p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-start-note"></a>Start Note</h3></div></div><p>
       <span class="emphasis"><em>NOTE: Some of the sections of this template may not apply to your
 	package, e.g. there may be no user-visible UI elements for a component
 	of the OpenACS Core.  Furthermore, it may be easier in some circumstances
@@ -80,10 +80,6 @@
       handle transactions, instead of encapsulating them via procedures).
       Experience has taught us that we need to focus on the API for
       maintainability of our systems in the face of constant change. 
-    </p><p>
-      Also noteworthy is that although the OpenACS currently utilizes the
-      AOLserver Tcl API, the current drive towards Java is likely to effect
-      a change in the content of these sections in the future.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-data-model"></a>Data Model Discussion</h3></div></div><p>
       The data model discussion should do more than merely display the SQL
       code, since this information is already be available via a link in the
@@ -119,7 +115,7 @@
       within the OpenACS, this section's details are likely to shift from UI
       specifics to template interface specifics.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-config"></a>Configuration/Parameters</h3></div></div><p>
-      Under OpenACS 4.5, parameters are set at two levels: at the global level by
+      Under OpenACS 4.6, parameters are set at two levels: at the global level by
       the OpenACS-admin, and at the subsite level by a sub-admin.  In this
       section, list and discuss both levels of parameters.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-future"></a>Future Improvements/Areas of Likely Change</h3></div></div><p>
@@ -140,6 +136,4 @@
     </p><div class="itemizedlist"><ul type="disc"><li><p> System creator</p></li><li><p> System owner</p></li><li><p> Documentation author</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-design-revision-history"></a>Revision History</h3></div></div><p>
       <span class="emphasis"><em>The revision history table below is for this template - modify it
 	as needed for your actual design document.  </em></span>
-    </p><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Creation</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="requirements-template.html">Next</a></td></tr><tr><td width="40%" align="left">Using PSGML mode in Emacs&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;System/Application Requirements Template</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Creation</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="requirements-template.html">Next</a></td></tr><tr><td width="40%" align="left">Using PSGML mode in Emacs&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;System/Application Requirements Template</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/filename.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/for-everyone.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/for-everyone.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/for-everyone.html	30 Nov 2002 17:16:24 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/for-everyone.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part�Part I.�OpenACS For Everyone</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="index.html" title="OpenACS Documentation"><link rel="next" href="general-documents.html" title="Chapter�1.�High level information: What is OpenACS?"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="general-documents.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="for-everyone"></a>OpenACS For Everyone</h1></div></div><div class="partintro"><div></div><p>High level information: What is OpenACS?</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="general-documents.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter�1.�High level information: What is OpenACS?</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/for-everyone.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Part I. OpenACS For Everyone</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="index.html" title="OpenACS Documentation"><link rel="next" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="general-documents.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><h1 class="title"><a name="for-everyone"></a>OpenACS For Everyone</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="general-documents.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 1. High level information: What is OpenACS?</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/for-everyone.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/general-documents.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/general-documents.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/general-documents.html	30 Nov 2002 17:16:24 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/general-documents.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�1.�High level information: What is OpenACS?</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="for-everyone.html" title="Part�Part I.�OpenACS For Everyone"><link rel="previous" href="for-everyone.html" title="Part�Part I.�OpenACS For Everyone"><link rel="next" href="openacs-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="for-everyone.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part I.�OpenACS For Everyone</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="openacs-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="general-documents"></a>Chapter�1.�High level information: What is OpenACS?</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="for-everyone.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="openacs-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part�Part I.�OpenACS For Everyone&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="for-everyone.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/general-documents.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 1. High level information: What is OpenACS?</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="for-everyone.html" title="Part I. OpenACS For Everyone"><link rel="previous" href="for-everyone.html" title="Part I. OpenACS For Everyone"><link rel="next" href="openacs-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="for-everyone.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part I. OpenACS For Everyone</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="openacs-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="general-documents"></a>Chapter 1. High level information: What is OpenACS?</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="for-everyone.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="openacs-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part I. OpenACS For Everyone&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="for-everyone.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/general-documents.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/groups-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/groups-design.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/groups-design.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Groups Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="groups-requirements.html" title="OpenACS 4 Groups Requirements"><link rel="next" href="subsites-requirements.html" title="OpenACS 4 Subsites Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="groups-design"></a>OpenACS 4 Groups Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Groups Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="groups-requirements.html" title="OpenACS 4 Groups Requirements"><link rel="next" href="subsites-requirements.html" title="OpenACS 4 Subsites Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="groups-design"></a>OpenACS 4 Groups Design</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> and <a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
-        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-essentials"></a>Essentials</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>User directory</p></li><li><p>Sitewide administrator directory</p></li><li><p>Subsite administrator directory</p></li><li><p>TCL script directory</p></li><li><p><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></p></li><li><p>Data model</p></li><li><p>PL/SQL file </p><div class="itemizedlist"><ul type="circle"><li><p><a href="/doc/sql/display-sql?url=community-core-create.sql&amp;package_key=acs-kernel" target="_top">
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-essentials"></a>Essentials</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>User directory</p></li><li><p>Sitewide administrator directory</p></li><li><p>Subsite administrator directory</p></li><li><p>TCL script directory</p></li><li><p><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></p></li><li><p>Data model</p></li><li><p>PL/SQL file </p><div class="itemizedlist"><ul type="round"><li><p><a href="/doc/sql/display-sql?url=community-core-create.sql&amp;package_key=acs-kernel" target="_top">
 community-core-create.sql</a></p></li><li><p><a href="/doc/sql/display-sql?url=groups-create.sql&amp;package_key=acs-kernel" target="_top">groups-create.sql</a></p></li></ul></div></li><li><p>ER diagram</p></li><li><p>Transaction flow diagram</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-intro"></a>Introduction</h3></div></div><p>Almost all database-backed websites have users, and need to model the
 grouping of users. The OpenACS 4 Parties and Groups system is intended to provide
 the flexibility needed to model complex real-world organizational structures,
@@ -62,16 +62,16 @@
 </span></dt><dd><p>The set of direct membership relationships between a group and a
 party.</p></dd><dt><span class="term"><tt>group_member_index</tt>
 
-</span></dt><dd><p>A mapping of a party <span class="strong">P</span> to the groups
-{<span class="strong">G<sub>i</sub></span>}the party is a member of; this mapping
+</span></dt><dd><p>A mapping of a party <span class="strong"><em>P</em></span> to the groups
+{<span class="strong"><em>G<sub>i</sub></em></span>}the party is a member of; this mapping
 includes the type of relationship by including the appropriate<tt>rel_id</tt>
 from the <tt>membership_rels</tt> table.</p></dd><dt><span class="term"><tt>composition_rels</tt>
 
 </span></dt><dd><p>The set of direct component relationships between a group and another
 group.</p></dd><dt><span class="term"><tt>group_component_index</tt>
 
-</span></dt><dd><p>A mapping of a group <span class="strong">G</span>to the set of groups
-{<span class="strong">G<sub>i</sub></span>} that <span class="strong">G</span> is a component of;
+</span></dt><dd><p>A mapping of a group <span class="strong"><em>G</em></span>to the set of groups
+{<span class="strong"><em>G<sub>i</sub></em></span>} that <span class="strong"><em>G</em></span> is a component of;
 this mapping includes the type of relationship by including the
 appropriate<tt>rel_id</tt> from the <tt>composition_rels</tt> table.</p></dd></dl></div><p>New groups are created through the <tt>group.new</tt> constructor.
 When a specialized type of group is required, the group type can be extended
@@ -116,26 +116,26 @@
 
 </span></dt><dd><p>A person may appear in the group member map multiple times, for example,
 by being a member of two different groups that are both components of a third
-group. This view is strictly a mapping of <span class="strong">approved</span> members
+group. This view is strictly a mapping of <span class="strong"><em>approved</em></span> members
 to groups.</p></dd><dt><span class="term"><tt>group_component_map</tt>
 
-</span></dt><dd><p>A mapping of a group <span class="strong">G</span>to the set of groups
-{<span class="strong">G<sub>i</sub></span>} group <span class="strong">G</span> is a component of;
+</span></dt><dd><p>A mapping of a group <span class="strong"><em>G</em></span>to the set of groups
+{<span class="strong"><em>G<sub>i</sub></em></span>} group <span class="strong"><em>G</em></span> is a component of;
 this mapping includes the type of relationship by including the
 appropriate<tt>rel_id</tt> from the <tt>composition_rels</tt> table.</p></dd><dt><span class="term"><tt>party_member_map</tt>
 
-</span></dt><dd><p>A mapping of a party <span class="strong">P</span> to the set of parties
-{<span class="strong">P<sub>i</sub></span>} party <span class="strong">P</span> is a member
+</span></dt><dd><p>A mapping of a party <span class="strong"><em>P</em></span> to the set of parties
+{<span class="strong"><em>P<sub>i</sub></em></span>} party <span class="strong"><em>P</em></span> is a member
 of.</p></dd><dt><span class="term"><tt>party_approved_member_map</tt>
 
-</span></dt><dd><p>A mapping of a party <span class="strong">P</span> to the set of parties
-{<span class="strong">P<sub>i</sub></span>} party <span class="strong">P</span> is an
-<span class="strong">approved</span> member of.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-api"></a>API</h3></div></div><p>
+</span></dt><dd><p>A mapping of a party <span class="strong"><em>P</em></span> to the set of parties
+{<span class="strong"><em>P<sub>i</sub></em></span>} party <span class="strong"><em>P</em></span> is an
+<span class="strong"><em>approved</em></span> member of.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-api"></a>API</h3></div></div><p>
 The API consists of tables and views and PL/SQL functions. 
 </p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="groups-design-tables-views"></a>Tables and Views</h4></div></div><p>The <tt>group_types</tt> table is used to create new types of groups.</p><p>The <tt>group_member_map</tt>, <tt>group_approved_member_map</tt>,
 <tt>group_distinct_member_map</tt>, <tt>group_component_map</tt>,
 <tt>party_member_map</tt>, and <tt>party_approved_member_map</tt> views are
-used to query group membership and composition.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="groups-design-pl-sql-api"></a>PL/SQL API</h4></div></div><p><span class="strong">Person</span></p><p><tt>person.new</tt> creates a new person and returns the
+used to query group membership and composition.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="groups-design-pl-sql-api"></a>PL/SQL API</h4></div></div><p><span class="strong"><em>Person</em></span></p><p><tt>person.new</tt> creates a new person and returns the
 <tt>person_id</tt>. The function must be given the full name of the person in
 two pieces: <tt>first_names</tt> and <tt>last_name</tt>. All other fields are
 optional and default to null except for <tt>object_type</tt> which defaults
@@ -162,7 +162,7 @@
 function person.name (
   person_id     persons.person_id%TYPE
 ) return varchar;
-</pre><p><span class="strong">User</span></p><p><tt>acs_user.new</tt> creates a new user and returns the <tt>user_id</tt>.
+</pre><p><span class="strong"><em>User</em></span></p><p><tt>acs_user.new</tt> creates a new user and returns the <tt>user_id</tt>.
 The function must be given the user's email address and the full name of
 the user in two pieces: <tt>first_names</tt> and <tt>last_name</tt>. All
 other fields are optional. The interface for this function is:</p><pre class="programlisting">
@@ -204,7 +204,7 @@
 procedure acs_user.unapprove_email (
   user_id       users.user_id%TYPE
 );
-</pre><p><span class="strong">Group</span></p><p><tt>acs_group.new</tt> creates a new group and returns the
+</pre><p><span class="strong"><em>Group</em></span></p><p><tt>acs_group.new</tt> creates a new group and returns the
 <tt>group_id</tt>. All fields are optional and default to null except for
 <tt>object_type</tt> which defaults to 'group',
 <tt>creation_date</tt> which defaults to <tt>sysdate</tt>, and
@@ -232,7 +232,7 @@
   group_id      groups.group_id%TYPE,
   party_id      parties.party_id%TYPE,
 ) return char;
-</pre><p><span class="strong">Membership Relationship</span></p><p><tt>membership_rel.new</tt> creates a new membership relationship type
+</pre><p><span class="strong"><em>Membership Relationship</em></span></p><p><tt>membership_rel.new</tt> creates a new membership relationship type
 between two parties and returns the relationship type's <tt>rel_id</tt>.
 All fields are optional and default to null except for <tt>rel_type</tt>
 which defaults to membership_rel. The interface for this function is:</p><pre class="programlisting">
@@ -278,7 +278,7 @@
 procedure membership_rel.delete (
   rel_id           membership_rels.rel_id%TYPE
 );
-</pre><p><span class="strong">Composition Relationship</span></p><p><tt>composition_rel.new</tt> creates a new composition relationship type
+</pre><p><span class="strong"><em>Composition Relationship</em></span></p><p><tt>composition_rel.new</tt> creates a new composition relationship type
 and returns the relationship's <tt>rel_id</tt>. All fields are optional
 and default to null except for <tt>rel_type</tt> which defaults to
 composition_rel. The interface for this function is:</p><pre class="programlisting">
@@ -301,4 +301,4 @@
 
 </span></dt><dd><p><a href="mailto:rhs@mit.edu" target="_top">Rafael H. Schloming</a></p></dd><dt><span class="term">Documentation author
 
-</span></dt><dd><p><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/22/2000</td><td><a href="mailto:rhs@mit.edu" target="_top">Rafael H. Schloming</a></td></tr><tr><td>0.2</td><td>Initial Revision</td><td>08/30/2000</td><td><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></td></tr><tr><td>0.3</td><td>Additional revisions; tried to clarify membership/compostion</td><td>09/08/2000</td><td><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Groups Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Subsites Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/groups-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
+</span></dt><dd><p><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/22/2000</td><td><a href="mailto:rhs@mit.edu" target="_top">Rafael H. Schloming</a></td></tr><tr><td>0.2</td><td>Initial Revision</td><td>08/30/2000</td><td><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></td></tr><tr><td>0.3</td><td>Additional revisions; tried to clarify membership/compostion</td><td>09/08/2000</td><td><a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a></td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Groups Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Subsites Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/groups-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/groups-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/groups-requirements.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Groups Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="permissions-design.html" title="OpenACS 4 Permissions Design"><link rel="next" href="groups-design.html" title="OpenACS 4 Groups Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="groups-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="groups-requirements"></a>OpenACS 4 Groups Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Groups Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="i18n-requirements.html" title="OpenACS 4.6 Internationalization Requirements"><link rel="next" href="groups-design.html" title="OpenACS 4 Groups Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="groups-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="groups-requirements"></a>OpenACS 4 Groups Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a>, <a href="mailto:mthomas@arsdigita.com" target="_top">Mark Thomas</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -16,7 +16,7 @@
 person who is employed by (is a member of) a specific department is also a
 member of the division and the corporation, and works at (is a member of, but
 in a different sense) a particular office. OpenACS 4's Parties and Groups
-system will support such complex relations faithfully.</p><p><span class="strong">Historical Motivations</span></p><p>The primary limitation of the OpenACS 3.x user group system is that it
+system will support such complex relations faithfully.</p><p><span class="strong"><em>Historical Motivations</em></span></p><p>The primary limitation of the OpenACS 3.x user group system is that it
 restricts the application developer to representing a &quot;flat group&quot;
 that contains only users: The <tt>user_groups</tt> table may contain the
 <tt>group_id</tt> of a parent group, but parent-child relationship
@@ -33,29 +33,29 @@
 (e.g., a row with a <tt>scope</tt> value of &quot;group&quot; but a null
 <tt>group_id</tt>)</p></li><li><p>perform extra checks in <tt>Tcl</tt> and <tt>PL/SQL</tt>
 functions and procedures to check both the <tt>user_id</tt> and
-<tt>group_id</tt> values</p></li></ul></div><p>In sum, the goal of the <span class="strong">Parties and Groups</span> system is to
+<tt>group_id</tt> values</p></li></ul></div><p>In sum, the goal of the <span class="strong"><em>Parties and Groups</em></span> system is to
 provide OpenACS programmers and site administrators with simple tools that fully
 describe the complex relationships that exist among groups in the real
 world.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-user-scenarios"></a>User Scenarios</h3></div></div><p>Pat Developer has a client project and wants to model the company, its
 offices, its divisions, and its departments as groups and the employees as
-users.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-system-overview"></a>System Overview</h3></div></div><p>We start with <span class="strong">Groups</span>, which contain members; the
-<span class="strong">member can be either a person or another group</span> (i.e. a
+users.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-system-overview"></a>System Overview</h3></div></div><p>We start with <span class="strong"><em>Groups</em></span>, which contain members; the
+<span class="strong"><em>member can be either a person or another group</em></span> (i.e. a
 member is a party).</p><p>In addition to membership, the party and groups system defines a
-<span class="strong">composition</span> relationship that may exist between groups: A
-group can be a <span class="strong">component</span> of another group. The child group
+<span class="strong"><em>composition</em></span> relationship that may exist between groups: A
+group can be a <span class="strong"><em>component</em></span> of another group. The child group
 is called a <span class="emphasis"><em>component group</em></span>; the parent group is called a
-<span class="emphasis"><em>composite group</em></span>.</p><p>A group <span class="strong">G<sub>c</sub></span> can be a member and/or a component
-of another group <span class="strong">G<sub>p</sub></span>; the difference is in the way
-the members of <span class="strong">G<sub>c</sub></span> are related to
-<span class="strong">G<sub>p</sub></span>:</p><div class="itemizedlist"><ul type="disc"><li><p>If a party <span class="strong">P</span> is a member (or a component) of
-<span class="strong">G<sub>c</sub></span> and if <span class="strong">G<sub>c</sub></span> is a
-component of <span class="strong">G<sub>p</sub></span>, then <span class="strong">P</span> is also
-a member (or a component) of <span class="strong">G<sub>p</sub></span></p></li><li><p>If a party <span class="strong">P</span> is a member (or a component) of
-<span class="strong">G<sub>c</sub></span> and if <span class="strong">G<sub>c</sub></span> is a
-member of <span class="strong">G<sub>p</sub></span>, then <span class="strong">no
-relationship</span> between <span class="strong">P</span> and
-<span class="strong">G<sub>p</sub></span> exists as a result of the relationship between
-<span class="strong">G<sub>p</sub></span> and <span class="strong">G<sub>p</sub></span>.</p></li></ul></div><p>Consider an example to make this less abstract: Pretend that the Sierra
+<span class="emphasis"><em>composite group</em></span>.</p><p>A group <span class="strong"><em>G<sub>c</sub></em></span> can be a member and/or a component
+of another group <span class="strong"><em>G<sub>p</sub></em></span>; the difference is in the way
+the members of <span class="strong"><em>G<sub>c</sub></em></span> are related to
+<span class="strong"><em>G<sub>p</sub></em></span>:</p><div class="itemizedlist"><ul type="disc"><li><p>If a party <span class="strong"><em>P</em></span> is a member (or a component) of
+<span class="strong"><em>G<sub>c</sub></em></span> and if <span class="strong"><em>G<sub>c</sub></em></span> is a
+component of <span class="strong"><em>G<sub>p</sub></em></span>, then <span class="strong"><em>P</em></span> is also
+a member (or a component) of <span class="strong"><em>G<sub>p</sub></em></span></p></li><li><p>If a party <span class="strong"><em>P</em></span> is a member (or a component) of
+<span class="strong"><em>G<sub>c</sub></em></span> and if <span class="strong"><em>G<sub>c</sub></em></span> is a
+member of <span class="strong"><em>G<sub>p</sub></em></span>, then <span class="strong"><em>no
+relationship</em></span> between <span class="strong"><em>P</em></span> and
+<span class="strong"><em>G<sub>p</sub></em></span> exists as a result of the relationship between
+<span class="strong"><em>G<sub>p</sub></em></span> and <span class="strong"><em>G<sub>p</sub></em></span>.</p></li></ul></div><p>Consider an example to make this less abstract: Pretend that the Sierra
 Club is a <span class="emphasis"><em>member</em></span> of Greenpeace. The Sierra Club has chapters; each
 chapter is a <span class="emphasis"><em>component</em></span> of the Sierra Club. If Eddie Environmentalist
 is a member of the Massachusetts Chapter of the Sierra Club, Eddie is
@@ -68,158 +68,158 @@
 Massachusetts chapter), and between the Sierra Club and Greenpeace.</p><p>Membership requirements can vary from group to group. The parties and
 groups system must provide a base type that specifies the bare minimum
 necessary to join a group.</p><p>The parties and groups system must support constraints between a composite
-group <span class="strong">G<sub>P</sub></span> and any of its component groups,
-<span class="strong">G<sub>C</sub></span>. For example, the system should be able to
-enforce a rule like: Do not allow a party <span class="strong">P</span> to become a
-member of <span class="strong">G<sub>C</sub></span> unless <span class="strong">P</span> is already
-a member of <span class="strong">G<sub>P</sub></span>.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="groups-design.html">OpenACS 4 Groups Design</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-data-model"></a>Requirements: Data Model</h3></div></div><p>The data model for the parties and groups system must provide support for
-the following types of entities:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">10.0 Parties</span>
+group <span class="strong"><em>G<sub>P</sub></em></span> and any of its component groups,
+<span class="strong"><em>G<sub>C</sub></em></span>. For example, the system should be able to
+enforce a rule like: Do not allow a party <span class="strong"><em>P</em></span> to become a
+member of <span class="strong"><em>G<sub>C</sub></em></span> unless <span class="strong"><em>P</em></span> is already
+a member of <span class="strong"><em>G<sub>P</sub></em></span>.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="groups-design.html">OpenACS 4 Groups Design</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-data-model"></a>Requirements: Data Model</h3></div></div><p>The data model for the parties and groups system must provide support for
+the following types of entities:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>10.0 Parties</em></span>
 
-</span></dt><dd><p>A <span class="strong">party</span> is an entity used to represent either a
-<span class="emphasis"><em>group</em></span> or a <span class="emphasis"><em>person</em></span>.</p><p>The data model should enforce these constraints:</p><p><span class="strong">10.10</span> A party has an email address, which can be
-empty.</p><p><span class="strong">10.20</span> A party may have multiple email addresses
-associated with it.</p><p><span class="strong">10.30</span> The email address of a party must be unique within
-an OpenACS system.</p></dd><dt><span class="term"><span class="strong">20.0 Groups</span>
+</span></dt><dd><p>A <span class="strong"><em>party</em></span> is an entity used to represent either a
+<span class="emphasis"><em>group</em></span> or a <span class="emphasis"><em>person</em></span>.</p><p>The data model should enforce these constraints:</p><p><span class="strong"><em>10.10</em></span> A party has an email address, which can be
+empty.</p><p><span class="strong"><em>10.20</em></span> A party may have multiple email addresses
+associated with it.</p><p><span class="strong"><em>10.30</em></span> The email address of a party must be unique within
+an OpenACS system.</p></dd><dt><span class="term"><span class="strong"><em>20.0 Groups</em></span>
 
-</span></dt><dd><p>A <span class="strong">group</span> is a collection of zero or more parties.</p><p><span class="strong">20.10</span> The data model should support the subclassing of
-groups via OpenACS Objects.</p></dd><dt><span class="term"><span class="strong">30.0 Persons</span>
+</span></dt><dd><p>A <span class="strong"><em>group</em></span> is a collection of zero or more parties.</p><p><span class="strong"><em>20.10</em></span> The data model should support the subclassing of
+groups via OpenACS Objects.</p></dd><dt><span class="term"><span class="strong"><em>30.0 Persons</em></span>
 
-</span></dt><dd><p>A <span class="strong">person</span> represents an actual human being, past or
-present.</p><p><a name="groups-requirements-30-10"></a><span class="strong">30.10.</span> A person must have
-an associated name.</p></dd><dt><span class="term"><span class="strong">40.0 Users</span>
+</span></dt><dd><p>A <span class="strong"><em>person</em></span> represents an actual human being, past or
+present.</p><p><a name="groups-requirements-30-10"></a><span class="strong"><em>30.10.</em></span> A person must have
+an associated name.</p></dd><dt><span class="term"><span class="strong"><em>40.0 Users</em></span>
 
-</span></dt><dd><p>A <span class="strong">user</span> is a person who has registered with an OpenACS site. A
-user may have additional attributes, such as a screen name.</p><p>The data model should enforce these constraints:</p><p><span class="strong">40.10</span> A user must have a non-empty email address.</p><p><span class="strong">40.20</span> Two different users may not have the same email
+</span></dt><dd><p>A <span class="strong"><em>user</em></span> is a person who has registered with an OpenACS site. A
+user may have additional attributes, such as a screen name.</p><p>The data model should enforce these constraints:</p><p><span class="strong"><em>40.10</em></span> A user must have a non-empty email address.</p><p><span class="strong"><em>40.20</em></span> Two different users may not have the same email
 address on a single OpenACS installation; i.e., an email address identifies a
-single user on the system.</p><p><span class="strong">40.30</span> A user may have multiple email addresses; for
-example, two or more email addresses may identify a single user.</p><p><span class="strong">40.40</span> A user must have password field which can be
+single user on the system.</p><p><span class="strong"><em>40.30</em></span> A user may have multiple email addresses; for
+example, two or more email addresses may identify a single user.</p><p><span class="strong"><em>40.40</em></span> A user must have password field which can be
 empty.</p></dd></dl></div><p>The data model for the parties and groups system must provide support for
-the following types of relationships between entities:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">50.0 Membership</span>
+the following types of relationships between entities:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>50.0 Membership</em></span>
 
 </span></dt><dd><p>
-A party <span class="strong">P</span> is considered a <span class="strong">member</span> of a
-group <span class="strong">G</span></p><div class="itemizedlist"><ul type="disc"><li><p>when a direct membership relationship exists between <span class="strong">P</span>
-and <span class="strong">G</span></p></li><li><p>or when there exists a direct membership relationship between
-<span class="strong">P</span> and some group <span class="strong">G<sub>C</sub></span> and
-<span class="strong">G<sub>C</sub></span> has a composition relationship (c.f., <a href="groups-requirements.html#groups-requirements-60-0">60.0</a>) with <span class="strong">G</span>.</p></li></ul></div><p><span class="strong">50.10</span> A party may be a member of multiple groups.</p><p><span class="strong">50.20</span> A party may be a member of the same group multiple
+A party <span class="strong"><em>P</em></span> is considered a <span class="strong"><em>member</em></span> of a
+group <span class="strong"><em>G</em></span></p><div class="itemizedlist"><ul type="disc"><li><p>when a direct membership relationship exists between <span class="strong"><em>P</em></span>
+and <span class="strong"><em>G</em></span></p></li><li><p>or when there exists a direct membership relationship between
+<span class="strong"><em>P</em></span> and some group <span class="strong"><em>G<sub>C</sub></em></span> and
+<span class="strong"><em>G<sub>C</sub></em></span> has a composition relationship (c.f., <a href="groups-requirements.html#groups-requirements-60-0">60.0</a>) with <span class="strong"><em>G</em></span>.</p></li></ul></div><p><span class="strong"><em>50.10</em></span> A party may be a member of multiple groups.</p><p><span class="strong"><em>50.20</em></span> A party may be a member of the same group multiple
 times only when all the memberships have different types; for example, Jane
 may be a member of The Company by being both an Employee and an
-Executive.</p><p><span class="strong">50.30</span> A party as a member of itself is not supported.</p><p><span class="strong">50.40</span> The data model must support membership
-constraints.</p><p><span class="strong">50.50</span>The data model should support the subclassing of
+Executive.</p><p><span class="strong"><em>50.30</em></span> A party as a member of itself is not supported.</p><p><span class="strong"><em>50.40</em></span> The data model must support membership
+constraints.</p><p><span class="strong"><em>50.50</em></span>The data model should support the subclassing of
 membership via OpenACS Relationships.</p></dd></dl></div><div class="variablelist"><dl><dt><span class="term">
 <a name="groups-requirements-60-0"></a>
-<span class="strong">60.0 Composition</span>
-</span></dt><dd><p>A group <span class="strong">G<sub>C</sub></span> is considered a
-<span class="strong">component</span> of a second group
-<span class="strong">G<sub>P</sub></span></p><div class="itemizedlist"><ul type="disc"><li><p>when a direct composition relationship exists between
-<span class="strong">G<sub>C</sub></span> and <span class="strong">G<sub>P</sub></span></p></li><li><p>or when there exists a direct composition relationship between
-<span class="strong">G<sub>C</sub></span> and some group <span class="strong">G<sub>i</sub></span>
-and <span class="strong">G<sub>i</sub></span> has a composition relationship with
-<span class="strong">G<sub>P</sub></span>.</p></li></ul></div><p><span class="strong">60.10</span>A group may be a component of multiple groups.</p><p><span class="strong">60.20</span>A group as a component of itself is not
-supported.</p><p><span class="strong">60.30</span>The data model must support component
-constraints.</p><p><span class="strong">60.40</span>The data model should support the subclassing of
-composition via OpenACS Relationships.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-api"></a>Requirements: API</h3></div></div><p>The API should let programmers accomplish the following tasks:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">70.10 Create a group</span>
+<span class="strong"><em>60.0 Composition</em></span>
+</span></dt><dd><p>A group <span class="strong"><em>G<sub>C</sub></em></span> is considered a
+<span class="strong"><em>component</em></span> of a second group
+<span class="strong"><em>G<sub>P</sub></em></span></p><div class="itemizedlist"><ul type="disc"><li><p>when a direct composition relationship exists between
+<span class="strong"><em>G<sub>C</sub></em></span> and <span class="strong"><em>G<sub>P</sub></em></span></p></li><li><p>or when there exists a direct composition relationship between
+<span class="strong"><em>G<sub>C</sub></em></span> and some group <span class="strong"><em>G<sub>i</sub></em></span>
+and <span class="strong"><em>G<sub>i</sub></em></span> has a composition relationship with
+<span class="strong"><em>G<sub>P</sub></em></span>.</p></li></ul></div><p><span class="strong"><em>60.10</em></span>A group may be a component of multiple groups.</p><p><span class="strong"><em>60.20</em></span>A group as a component of itself is not
+supported.</p><p><span class="strong"><em>60.30</em></span>The data model must support component
+constraints.</p><p><span class="strong"><em>60.40</em></span>The data model should support the subclassing of
+composition via OpenACS Relationships.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-api"></a>Requirements: API</h3></div></div><p>The API should let programmers accomplish the following tasks:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>70.10 Create a group</em></span>
 
 </span></dt><dd><p>The parties and groups system provides a well defined API call that
 creates a new group by running the appropriate transactions on the parties
 and groups system data model. This API is subject to the constraints laid out
-in the data model.</p></dd><dt><span class="term"><span class="strong">70.20 Create a person</span>
+in the data model.</p></dd><dt><span class="term"><span class="strong"><em>70.20 Create a person</em></span>
 
 </span></dt><dd><p>The parties and groups system provides a well defined API call that
 creates a new person by running the appropriate transactions on the parties
 and groups system data model. This API is subject to the constraints laid out
-in the data model.</p></dd><dt><span class="term"><span class="strong">70.30 Create a user</span>
+in the data model.</p></dd><dt><span class="term"><span class="strong"><em>70.30 Create a user</em></span>
 
 </span></dt><dd><p>The parties and groups system provides a well defined API call that
 creates a new user by running the appropriate transactions on the parties and
 groups system data model. This API is subject to the constraints laid out in
-the data model.</p></dd><dt><span class="term"><span class="strong">80.10 Refine a person to a user</span>
+the data model.</p></dd><dt><span class="term"><span class="strong"><em>80.10 Refine a person to a user</em></span>
 
 </span></dt><dd><p>The parties and groups system provides a well defined API call that
 creates a new user by running the appropriate transactions on an existing
 person entity. This API is subject to the constraints laid out in the data
-model.</p></dd><dt><span class="term"><span class="strong">80.30 Demote a user to a person</span>
+model.</p></dd><dt><span class="term"><span class="strong"><em>80.30 Demote a user to a person</em></span>
 
 </span></dt><dd><p>The parties and groups system provides a well defined API call that
 demotes an existing user entity to a person entity by running the appropriate
 transactions on the existing user. This API is subject to the constraints
-laid out in the data model.</p></dd><dt><span class="term"><span class="strong">90.10 Update a party</span>
+laid out in the data model.</p></dd><dt><span class="term"><span class="strong"><em>90.10 Update a party</em></span>
 
 </span></dt><dd><p>The programmer should be able to modify, add, and delete attributes on any
-party. This API is subject to the constraints laid out in the data model.</p></dd><dt><span class="term"><span class="strong">95.10 Get the attributes of a party</span>
+party. This API is subject to the constraints laid out in the data model.</p></dd><dt><span class="term"><span class="strong"><em>95.10 Get the attributes of a party</em></span>
 
 </span></dt><dd><p>The programmer should be able to view the attributes on any party. This
-API is subject to the constraints laid out in the data model.</p></dd><dt><span class="term"><span class="strong">100.10 Delete a party</span>
+API is subject to the constraints laid out in the data model.</p></dd><dt><span class="term"><span class="strong"><em>100.10 Delete a party</em></span>
 
 
 </span></dt><dd><p>The system provides an API for deleting a party. This API is subject to
-the constraints laid out in the data model.</p><p><span class="strong">100.30</span> The system may provide a single API call to remove
-the party from all groups and then delete the party.</p><p><span class="strong">100.40</span> In the case of a group, the system may provide a
+the constraints laid out in the data model.</p><p><span class="strong"><em>100.30</em></span> The system may provide a single API call to remove
+the party from all groups and then delete the party.</p><p><span class="strong"><em>100.40</em></span> In the case of a group, the system may provide a
 single API call to remove all parties from a group and then delete the
-group.</p></dd><dt><span class="term"><span class="strong">110.0 Add a party as a member of a group</span>
+group.</p></dd><dt><span class="term"><span class="strong"><em>110.0 Add a party as a member of a group</em></span>
 
 </span></dt><dd><p>The parties and groups system provides an API for adding a party as a
 member of a group. This API is subject to the constraints laid out in the
-data model.</p></dd><dt><span class="term"><span class="strong">115.0 Add a group as a component of a second group</span>
+data model.</p></dd><dt><span class="term"><span class="strong"><em>115.0 Add a group as a component of a second group</em></span>
 
 </span></dt><dd><p>The parties and groups system provides an API for adding a group as a
 component of a second group. This API is subject to the constraints laid out
-in the data model.</p></dd><dt><span class="term"><span class="strong">120.0 Remove a party as a member of a group</span>
+in the data model.</p></dd><dt><span class="term"><span class="strong"><em>120.0 Remove a party as a member of a group</em></span>
 
 </span></dt><dd><p>The parties and groups system provides an API for deleting a party's
 membership in a group. This API is subject to the constraints laid out in the
-data model.</p></dd><dt><span class="term"><span class="strong">125.0 Remove a group as a component of a second
-group</span>
+data model.</p></dd><dt><span class="term"><span class="strong"><em>125.0 Remove a group as a component of a second
+group</em></span>
 
 </span></dt><dd><p>The parties and groups system provides an API for deleting a group's
 composition in a second group. This API is subject to the constraints laid
-out in the data model.</p></dd><dt><span class="term"><span class="strong">130.0 Membership check</span>
+out in the data model.</p></dd><dt><span class="term"><span class="strong"><em>130.0 Membership check</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Is party <span class="strong">P</span> a member of group
-<span class="strong">G</span>?&quot;</p></dd><dt><span class="term"><span class="strong">135.0 Composition check</span>
+&quot;Is party <span class="strong"><em>P</em></span> a member of group
+<span class="strong"><em>G</em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>135.0 Composition check</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Is group <span class="strong">G<sub>C</sub></span> a component of group
-<span class="strong">G<sub>P</sub></span>?&quot;</p></dd><dt><span class="term"><span class="strong">140.0 Get members query</span>
+&quot;Is group <span class="strong"><em>G<sub>C</sub></em></span> a component of group
+<span class="strong"><em>G<sub>P</sub></em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>140.0 Get members query</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Which parties are members of group <span class="strong">G</span>?&quot;</p></dd><dt><span class="term"><span class="strong">145.0 Get components query</span>
+&quot;Which parties are members of group <span class="strong"><em>G</em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>145.0 Get components query</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Which groups are components of group <span class="strong">G</span>?&quot;</p></dd><dt><span class="term"><span class="strong">150.0 Member-of-groups query</span>
+&quot;Which groups are components of group <span class="strong"><em>G</em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>150.0 Member-of-groups query</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Of which groups is party <span class="strong">P</span> a member?&quot;</p></dd><dt><span class="term"><span class="strong">155.0 Component-of-groups query</span>
+&quot;Of which groups is party <span class="strong"><em>P</em></span> a member?&quot;</p></dd><dt><span class="term"><span class="strong"><em>155.0 Component-of-groups query</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Of which groups is group <span class="strong">G</span> a component?&quot;</p></dd><dt><span class="term"><span class="strong">160.0 Allowed membership check</span>
+&quot;Of which groups is group <span class="strong"><em>G</em></span> a component?&quot;</p></dd><dt><span class="term"><span class="strong"><em>160.0 Allowed membership check</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Is party <span class="strong">P</span> allowed to become a member of group
-<span class="strong">G</span>?&quot;</p></dd><dt><span class="term"><span class="strong">165.0 Allowed composition check</span>
+&quot;Is party <span class="strong"><em>P</em></span> allowed to become a member of group
+<span class="strong"><em>G</em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>165.0 Allowed composition check</em></span>
 
 
 </span></dt><dd><p>The parties and groups system provides an API for answering the question:
-&quot;Is group <span class="strong">G<sub>C</sub></span> allowed to become a component
-of group <span class="strong">G<sub>P</sub></span>?&quot;</p></dd><dt><span class="term"><span class="strong">170.0 Efficiency</span>
+&quot;Is group <span class="strong"><em>G<sub>C</sub></em></span> allowed to become a component
+of group <span class="strong"><em>G<sub>P</sub></em></span>?&quot;</p></dd><dt><span class="term"><span class="strong"><em>170.0 Efficiency</em></span>
 
 
 </span></dt><dd><p>Since many pages at a site may check membership in a group before serving
 a page (e.g., as part of a general permissions check), the data model must
 support the efficient storage and retrieval of party attributes and
-membership.</p></dd><dt><span class="term"><span class="strong">180.0 Ease of Use</span>
+membership.</p></dd><dt><span class="term"><span class="strong"><em>180.0 Ease of Use</em></span>
 
 
 </span></dt><dd><p>Since many SQL queries will check membership in a group as part of the
 <tt>where</tt> clause, whatever mechanism is used to check membership in SQL
 should be fairly small and simple.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-ui"></a>Requirements: User Interface</h3></div></div><p>The user interface is a set of HTML pages that are used to drive the
-underlying API. The user interface may provide the following functions:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">200.0</span> Create a party</p></li><li><p><span class="strong">210.0</span> View the attributes of a party</p></li><li><p><span class="strong">220.0</span> Update the attributes of a party</p></li><li><p><span class="strong">240.0</span> Delete a party</p></li><li><p><span class="strong">250.0</span> Add a party to a group</p></li><li><p><span class="strong">260.0</span> Remove a party from a group</p></li><li><p><span class="strong">270.0</span> Perform the membership and composition checks
-outlined in 130.x to 165.x</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/16/2000</td><td>Rafael Schloming</td></tr><tr><td>0.2</td><td>Initial revision</td><td>08/19/2000</td><td>Mark Thomas</td></tr><tr><td>0.3</td><td>Edited and reviewed, conforms to requirements template</td><td>08/23/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Further revised, added UI requirements</td><td>08/24/2000</td><td>Mark Thomas</td></tr><tr><td>0.5</td><td>Final edits, pending freeze</td><td>08/24/2000</td><td>Kai Wu</td></tr><tr><td>0.6</td><td>More revisions, added composition requirements</td><td>08/30/2000</td><td>Mark Thomas</td></tr><tr><td>0.7</td><td>More revisions, added composition requirements</td><td>09/08/2000</td><td>Mark Thomas</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="groups-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Permissions Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Groups Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/groups-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
+underlying API. The user interface may provide the following functions:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>200.0</em></span> Create a party</p></li><li><p><span class="strong"><em>210.0</em></span> View the attributes of a party</p></li><li><p><span class="strong"><em>220.0</em></span> Update the attributes of a party</p></li><li><p><span class="strong"><em>240.0</em></span> Delete a party</p></li><li><p><span class="strong"><em>250.0</em></span> Add a party to a group</p></li><li><p><span class="strong"><em>260.0</em></span> Remove a party from a group</p></li><li><p><span class="strong"><em>270.0</em></span> Perform the membership and composition checks
+outlined in 130.x to 165.x</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="groups-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/16/2000</td><td>Rafael Schloming</td></tr><tr><td>0.2</td><td>Initial revision</td><td>08/19/2000</td><td>Mark Thomas</td></tr><tr><td>0.3</td><td>Edited and reviewed, conforms to requirements template</td><td>08/23/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Further revised, added UI requirements</td><td>08/24/2000</td><td>Mark Thomas</td></tr><tr><td>0.5</td><td>Final edits, pending freeze</td><td>08/24/2000</td><td>Kai Wu</td></tr><tr><td>0.6</td><td>More revisions, added composition requirements</td><td>08/30/2000</td><td>Mark Thomas</td></tr><tr><td>0.7</td><td>More revisions, added composition requirements</td><td>09/08/2000</td><td>Mark Thomas</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="groups-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Internationalization Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Groups Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/groups-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
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
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html	28 Feb 2003 05:36:04 -0000	1.1
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Internationalization Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="permissions-design.html" title="OpenACS 4 Permissions Design"><link rel="next" href="groups-requirements.html" title="OpenACS 4 Groups Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="groups-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="i18n-requirements"></a>OpenACS 4.6 Internationalization Requirements</h2></div></div><div class="authorblurb"><p>
+      by Henry Minsky, 
+       <a href="mailto:yon@openforce.net" target="_top">Yon Feldman</a>, 
+       <a href="mailto:lars@collaboraid.biz" target="_top">Lars Pind</a>,
+       <a href="mailto:peter@collaboraid.biz" target="_top">Peter Marklund</a>, 
+       <a href="mailto:christian@collaboraid.biz" target="_top">Christian Hvid</a>,
+       and others.
+  <br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-requirements-introduction"></a>Introduction</h3></div></div><p>
+      This document describes the requirements for functionality in
+      the OpenACS platform to support globalization of the core and optional
+      modules. The goal is to make it possible to support delivery of
+      applications which work properly in multiple locales with the
+      lowest development and maintenance cost.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-requirements-definitions"></a>Definitions</h3></div></div><div class="variablelist"><dl><dt><span class="term">internationalization (i18n)</span></dt><dd><p>
+              The provision within a computer program of the
+              capability of making itself adaptable to the requirements of different
+              native languages, local customs and coded character sets.
+          </p></dd><dt><span class="term">locale</span></dt><dd><p>
+            The definition of the subset of a user's environment that depends on
+            language and cultural conventions.
+          </p></dd><dt><span class="term">localization (L10n)</span></dt><dd><p>
+            The process of establishing information within a computer system
+            specific to the operation of particular native languages, local
+            customs and coded character sets.
+          </p></dd><dt><span class="term">globalization</span></dt><dd><p>
+            A product development approach which ensures that software products
+            are usable in the worldwide markets through a combination of
+            internationalization and localization.
+          </p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="II._Vision_Statement"></a>Vision Statement</h3></div></div><p>The Mozilla project suggests keeping two catchy phrases in
+mind when thinking about globalization:</p><div class="itemizedlist"><ul type="disc"><li><p>One code base for the world</p></li><li><p>English is just another language</p></li></ul></div><p>Building an application often involves making a number of
+assumptions on the part of the developers which depend on their own
+culture. These include constant strings in the user interface and
+system error messages, names of countries, cities, order of given
+and family names for people, syntax of numeric and date strings and
+collation order of strings.</p><p>The ACS should be able to operate in languages and regions
+beyond US English. The goal of ACS Globalization is to provide a
+clean and efficient way to factor out the locale dependent
+functionality from our applications, in order to be able to easily
+swap in alternate localizations.</p><p>This in turn will reduce redundant, costly, and error prone
+rework when targeting the toolkit or applications built with the
+toolkit to another locale.</p><p>The cost of porting the ACS to another locale without some
+kind of globalization support would be large and ongoing, since
+without a mechanism to incorporate the locale-specific changes
+cleanly back into the code base, it would require making a new fork
+of the source code for each locale.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="III._System/Application_Overview"></a>System/Application Overview</h3></div></div><p>A globalized application will perform some or all of the
+following steps to handle a page request for a specific
+locale:</p><div class="orderedlist"><ol type="1"><li><p>Decide what the target locale is for an incoming page
+request</p></li><li><p>Decide which character set encoding the output should be
+delivered in</p></li><li><p>If a script file to handle the request needs to be loaded
+from disk, determine if a character set conversion needs to be
+performed when loading the script</p></li><li><p>If needed, locale-specific resources are fetched. These can
+include text, graphics, or other resources that would vary with the
+target locale.</p></li><li><p>If content data is fetched from the database, check for
+locale-specific versions of the data (e.g. country names).</p></li><li><p>Source code should use a message catalog API to translate
+constant strings in the code to the target locale</p></li><li><p>Perform locale-specific linguistic sorting on data if
+needed</p></li><li><p>If the user submitted form input data, decide what character
+set encoding conversion if any is needed. Parse locale-specific
+quantities if needed (number formats, date formats).</p></li><li><p>If templating is being used, select correct locale-specific
+template to merge with content</p></li><li><p>Format output data quantities in locale-specific manner
+(date, time, numeric, currency). If templating is being used, this
+may be done either before and/or after merging the data with a
+template.</p></li></ol></div><p>Since the internationalization APIs may potentially be used
+on every page in an application, the overhead for adding
+internationalization to a module or application must not cause a
+significant time delay in handling page requests.</p><p>In many cases there are facilities in Oracle to perform
+various localization functions, and also there are facilities in
+Java which we will want to move to. So the design to meet the
+requirements will tend to rely on these capabilities, or close
+approximations to them where possible, in order to make it easier
+to maintain Tcl and Java ACS versions.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="IV._Use-cases_and_User-scenarios"></a>Use-cases and User-scenarios</h3></div></div><p>Here are the cases that we need to be able to handle
+efficiently:</p><div class="orderedlist"><ol type="1"><li><p>A developer needs to author a web site/application in a
+language besides English, and possibly a character set besides
+ISO-8859-1. This includes the operation of the ACS itself, i.e.,
+navigation, admin pages for modules, error messages, as well as
+additional modules or content supplied by the web site
+developer.</p><p>What do they need to modify to make this work? Can their
+localization work be easily folded in to future releases of
+ACS?</p></li><li><p>A developer needs to author a web site which operates in
+multiple languages simultaneously. For example, arsDigita.com with
+content and navigation in English, German, and Japanese.</p><p>The site would have an end-user visible UI to support these
+languages, and the content management system must allow articles to
+be posted in these languages. In some cases it may be necessary to
+make the modules' admin UI's operate in more than one
+supported language, while in other cases the backend admin
+interface can operate in a single language.</p></li><li><p>A developer is writing a new module, and wants to make it
+easy for someone to localize it. There should be a clear path to
+author the module so that future developers can easily add support
+for other locales. This would include support for creating
+resources such as message catalogs, non-text assets such as
+graphics, and use of templates which help to separate application
+logic from presentation.</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="Competitive_Analysis"></a>Competitive
+Analysis</h3></div></div><p>Other application servers: ATG Dyanmo, Broadvision, Vignette,
+... ? Anyone know how they deal with i18n ?</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="V._Related_Links"></a>Related
+Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>System/Package &quot;coversheet&quot; - where all
+documentation for this software is linked off of</em></span></p></li><li><p><span class="emphasis"><em>Design document</em></span></p></li><li><p><span class="emphasis"><em>Developer's guide</em></span></p></li><li><p><span class="emphasis"><em>User's guide</em></span></p></li><li><p><span class="emphasis"><em>Other-cool-system-related-to-this-one
+document</em></span><a href="http://www.li18nux.net/" target="_top">LI18NUX
+2000 Globalization Specification:
+http://www.li18nux.net/</a></p><p><a href="http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html" target="_top">Mozilla
+i18N Guidelines:
+http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html</a></p><p><a href="http://sunsite.berkeley.edu/amher/iso_639.html" target="_top">ISO
+639:1988 Code for the representation of names of languages
+http://sunsite.berkeley.edu/amher/iso_639.html</a></p><p><a href="http://www.niso.org/3166.html" target="_top">ISO 3166-1:1997
+Codes for the representation of names of countries and their
+subdivisions Part 1: Country codes
+http://www.niso.org/3166.html</a></p><p><a href="http://www.isi.edu/in-notes/iana/assignments/character-sets" target="_top">IANA
+Registry of Character Sets</a></p></li><li><p><span class="emphasis"><em>Test plan</em></span></p></li><li><p><span class="emphasis"><em>Competitive system(s)</em></span></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI_Requirements"></a>Requirements</h3></div></div><p>Because the requirements for globalization affect many areas
+of the system, we will break up the requirements into phases, with
+a base required set of features, and then stages of increasing
+functionality.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.A_Locales"></a>Locales</h3></div></div><p><span class="emphasis"><em>10.0</em></span></p><p>A standard representation of locale will be used throughout
+the system. A locale refers to a language and territory, and is
+uniquely identified by a combination of ISO language and ISO
+country abbreviations.</p><blockquote class="blockquote"><p>See
+<a href="http://acs40.arsdigita.com/doc/acs-content-repository/requirements.html" target="_top">Content
+Repository Requirement 100.20</a></p><p><span class="emphasis"><em>10.10</em></span> Provide a consistent
+representation and API for creating and referencing a locale</p><p><span class="emphasis"><em>10.20</em></span> There will be a Tcl library of
+locale-aware formatting and parsing functions for numbers, dates
+and times. <span class="emphasis"><em>Note that Java has builtin support for these
+already</em></span>.</p><p><span class="emphasis"><em>10.30</em></span> For each locale there will be
+default date, number and currency formats.</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.B_Associating_a_Locale_with_a_Request"></a>Associating a Locale with a Request</h3></div></div><p><span class="emphasis"><em>20.0</em></span></p><p>The request processor must have a mechanism for associating a
+locale with each request. This locale is then used to select the
+appropriate template for a request, and will also be passed as the
+locale argument to the message catalog or locale-specific
+formatting functions.</p><blockquote class="blockquote"><p><span class="emphasis"><em>20.10</em></span> The locale for a request should be
+computed by the following method, in descending order of
+priority:</p><div class="itemizedlist"><ul type="disc"><li><p>get locale associated with subsite or package id</p></li><li><p>get locale from user preference</p></li><li><p>get locale from site wide default</p><p><span class="emphasis"><em>20.20</em></span> An API will be provided for
+getting the current request locale from the
+<tt>ad_conn</tt> structure.</p></li></ul></div></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.C_Resource_Bundles_/_Content_Repository"></a>Resource Bundles / Content Repository</h3></div></div><p><span class="emphasis"><em>30.0</em></span></p><p>A mechanism must be provided for a developer to group a set
+of arbitrary content resources together, keyed by a unique
+identifier and a locale.</p><p>For example, what approaches could be used to implement a
+localizable nav-bar mechanism for a site? A navigation bar might be
+made up of a set of text strings and graphics, where the graphics
+themselves are locale-specific, such as images of English or
+Japanese text (as on www.arsdigita.com). It should be easy to
+specify alternate configurations of text and graphics to lay out
+the page for different locales.</p><p>Design note: Alternative mechanisms to implement this
+functionality might include using templates, Java ResourceBundles,
+content-item containers in the Content Repository, or some
+convention assigning a common prefix to key strings in the message
+catalog.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.D_Message_Catalog_for_String_Translation"></a>Message Catalog for String Translation</h3></div></div><p><span class="emphasis"><em>40.0</em></span></p><p>A message catalog facility will provide a database of
+translations for constant strings for multilingual applications. It
+must support the following:</p><blockquote class="blockquote"><p><span class="emphasis"><em>40.10</em></span> Each message will referenced via
+unique a key.</p><p><span class="emphasis"><em>40.20</em></span> The key for a message will have
+some hierarchical structure to it, so that sets of messages can be
+grouped with respect to a module name or package path.</p><p><span class="emphasis"><em>40.30</em></span> The API for lookup of a message
+will take a locale and message key as arguments, and return the
+appropriate translation of that message for the specifed
+locale.</p><p><span class="emphasis"><em>40.40</em></span> The API for lookup of a message
+will accept an optional default string which can be used if the
+message key is not found in the catalog. This lets the developer
+get code working and tested in a single language before having to
+initialize or update a message catalog.</p><p><span class="emphasis"><em>40.50</em></span> For use within templates, custom
+tags which invoke the message lookup API will be provided.</p><p><span class="emphasis"><em>40.60</em></span> Provide a method for importing and
+exporting a flat file of translation strings, in order to make it
+as easy as possible to create and modify message translations in
+bulk without having to use a web interface.</p><p><span class="emphasis"><em>40.70</em></span> Since translations may be in
+different character sets, there must be provision for writing and
+reading catalog files in different character sets. A mechanism must
+exist for identifying the character set of a catalog file before
+reading it.</p><p><span class="emphasis"><em>40.80</em></span> There should be a mechanism for
+tracking dependencies in the message catalog, so that if a string
+is modified, the other translations of that string can be flagged
+as needing update.</p><p><span class="emphasis"><em>40.90</em></span> The message lookup must be as
+efficient as possible so as not to slow down the delivery of
+pages.</p><p><span class="emphasis"><em>Design question: Is there any reason to implement
+the message catalog on top of the content repository as the
+underlying storage and retrieval service, with a layer of caching
+for performance? Would we get a nice user interface and version
+control almost for free?</em></span></p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.E_Character_Set_Encoding"></a>Character Set Encoding</h3></div></div><p><span class="emphasis"><em>Character Sets</em></span></p><p><span class="emphasis"><em>50.0</em></span> A locale will have a primary
+associated character set which is used to encode text in the
+language. When given a locale, we can query the system for the
+associated character set to use.</p><p>The assumption is that we are going to use Unicode in our
+database to hold all text data. Our current programming
+environments (Tcl/Oracle or Java/Oracle) operate on Unicode data
+internally. However, since Unicode is not yet commonly used in
+browsers and authoring tools, the system must be able to read and
+write other character sets. In particular, conversions to and from
+Unicode will need to be explicitly performed at the following
+times:</p><div class="itemizedlist"><ul type="disc"><li><p>Loading source files (.tcl or .adp) or content files from the
+filesystem</p></li><li><p>Accepting form input data from users</p></li><li><p>Delivering text output to a browser</p></li><li><p>Composing an email message</p></li><li><p>Writing data to the filesystem</p></li></ul></div><p><span class="emphasis"><em>Design question: Do we want to mandate that all
+template files be stored in UTF8? I don't think so, because
+most people don't have Unicode editors, or don't want to be
+bothered with an extra step to convert files to UTF8 and back when
+editing them in their favorite editor.</em></span></p><p><span class="emphasis"><em>Same question for script and template files, how do
+we know what language and character set they are authored in?
+Should we overload the filename suffix (e.g.,
+'.shiftjis.adp',
+'.ja_JP.euc.adp')?</em></span></p><p><span class="emphasis"><em>The simplest design is probably just to assign a
+default mapping from each locale to character a set: e.g. ja_JP
+-&gt; ShiftJIS, fr_FR -&gt; ISO-8859-1. +++ (see new ACS/Java
+notes) +++</em></span>
+</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="Tcl_Source_File_Character_Set"></a>Tcl Source File Character Set</h4></div></div><blockquote class="blockquote"><p>There are two classes of Tcl files loaded by the system;
+      library files loaded at server startup, and page script files,
+      which are run on each page request.</p><p><span class="emphasis"><em>Should we require all Tcl files be stored as UTF8?
+      That seems too much of a burden on developers.</em></span></p><p><span class="emphasis"><em>50.10</em></span> Tcl library files can be authored
+      in any character set. The system must have a way to determine the
+      character set before loading the files, probably from the
+      filename.</p><p><span class="emphasis"><em>50.20</em></span> Tcl page script files can be
+      authored in any character set. The system must have a way to
+      determine the character set before loading the files, probably from
+      the filename.</p></blockquote></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="Submitted_Form_Data_Character_Set"></a>Submitted Form Data Character Set</h4></div></div><p><span class="emphasis"><em>50.30</em></span> Data which is submitted with a
+         HTTP request using a GET or POST method may be in any character
+         set. The system must be able to determine the encoding of the form
+         data and convert it to Unicode on demand.</p><p><span class="emphasis"><em>50.35</em></span> The developer must be able to
+          override the default system choice of character set when parsing
+          and validating user form data.</p><p><span class="emphasis"><em>50.30.10</em></span> Extra hair: In Japan and some
+           other Asian languages where there are multiple character set
+           encodings in common use, the server may need to attempt to do an 
+           auto-detection of the character set, because buggy browsers may
+           submit form data in an unexpected alternate encoding.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="Output_Character_Set"></a>Output Character Set</h4></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>50.40</em></span> The output character set for a
+            page request will be determined by default by the locale associated
+            with the request (see requirement 20.0).</p><p><span class="emphasis"><em>50.50</em></span> It must be possible for a
+            developer to manually override the output character set encoding
+            for a request using an API function.
+      </p></blockquote></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.F_ACS_Kernel_Issues"></a>ACS Kernel Issues</h3></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>60.10</em></span> All ACS error messages must use
+the message catalog and the request locale to generate error
+message for the appropriate locale.</p><p><span class="emphasis"><em>60.20</em></span> Web server error messages such as
+404, 500, etc must also be delivered in the appropriate
+locale.</p><p><span class="emphasis"><em>60.30</em></span> Where files are written or read
+from disk, their filenames must use a character set and character
+values which are safe for the underlying operating system.</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.G_Templates"></a>Templates</h3></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>70.0</em></span> For a given abstract URL, the
+designer may create multiple locale-specific template files may be
+created (one per locale or language)</p><p><span class="emphasis"><em>70.10</em></span> For a given page request, the
+system must be able to select an approprate locale-specific
+template file to use. The request locale is computed as per (see
+requirement 20.0).</p><p><span class="emphasis"><em>Design note: this would probably be implemented by
+suffixing the locale or a locale abbreviation to the template
+filename, such as foo.ja.adp or foo.en_GB.adp.</em></span></p><p><span class="emphasis"><em>70.20</em></span>A template file may be created for
+a partial locale (language only, without a territory), and the
+request processor should be able to find the closest match for the
+current request locale.</p><p><span class="emphasis"><em>70.30</em></span> A template file may be created in
+any character set. The system must have a way to know which
+character set a template file contains, so it can properly process
+it.</p></blockquote><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="Formatting_Datasource_Output_in_Templates"></a>Formatting
+Datasource Output in Templates</h4></div></div><p><span class="emphasis"><em>70.50</em></span> The properties of a datasource
+column may include a datatype so that the templating system can
+format the output for the current locale. The datatype is defined
+by a standard ACS datatype plus a format token or format string,
+for example: a date column might be specified as
+'current_date:date LONG,' or 'current_date:date
+&quot;YYYY-Mon-DD&quot;'</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="Forms"></a>Forms</h4></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>70.60</em></span> The forms API must support
+construction of locale-specific HTML form widgets, such as date
+entry widgets, and form validation of user input data for
+locale-specific data, such as dates or numbers.</p><p><span class="emphasis"><em>70.70</em></span> For forms which allow users to
+upload files, a standard method for a user to indicate the charset
+of a text file being uploaded must be provided.</p><p><span class="emphasis"><em>Design note: this presumably applies to uploading
+data to the content repository as well</em></span></p></blockquote></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.H_Sorting_and_Searching"></a>Sorting and Searching</h3></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>80.10</em></span> Support API for correct collation
+(sorting order) on lists of strings in locale-dependent way.</p><p><span class="emphasis"><em>80.20</em></span> For the Tcl API, we will say that
+locale-dependent sorting will use Oracle SQL operations (i.e., we
+won't provide a Tcl API for this). We require a Tcl API
+function to return the correct incantation of NLS_SORT to use for a
+given locale with <tt>ORDER BY</tt> clauses in
+queries.</p><p><span class="emphasis"><em>80.40</em></span> The system must handle full-text
+search in any supported language.</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.G_Time_Zones"></a>Time Zones</h3></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>90.10</em></span> Provide API support for specifying
+a time zone</p><p><span class="emphasis"><em>90.20</em></span> Provide an API for computing time
+and date operations which are aware of timezones. So for example a
+calendar module can properly synchronize items inserted into a
+calendar from users in different time zones using their own local
+times.</p><p><span class="emphasis"><em>90.30</em></span> Store all dates and times in
+universal time zone, UTC.</p><p><span class="emphasis"><em>90.40</em></span> For a registered users, a time
+zone preference should be stored.</p><p><span class="emphasis"><em>90.50</em></span> For a non-registered user a time
+zone preference should be attached via a session or else UTC should
+be used to display every date and time.</p><p><span class="emphasis"><em>90.60</em></span> The default if we can't
+determine a time zone is to display all dates and times in some
+universal time zone such as GMT.</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.H_Database"></a>Database</h3></div></div><blockquote class="blockquote"><p><span class="emphasis"><em>100.10</em></span> Since UTF8 strings can use up to
+three (UCS2) or six (UCS4) bytes per character, make sure that
+column size declarations in the schema are large enough to
+accomodate required data (such as email addresses in
+Japanese).</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="VI.I_Email_and_Messaging"></a>Email and
+Messaging</h3></div></div><p>When sending an email message, just as when delivering the
+content in web page over an HTTP connection, it is necessary to be
+able to specify what character set encoding to use.</p><blockquote class="blockquote"><p><span class="emphasis"><em>110.10</em></span> The email message sending API
+will allow for a character set encoding to be specified.</p><p><span class="emphasis"><em>110.20</em></span> The email accepting API will
+allow for character set to be parsed correctly (hopefully a well
+formatted message will have a MIME character set content type header) </p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-requirements-implementation-notes"></a>Implementation Notes</h3></div></div><p>
+    Because globalization touches many different parts of the system,
+    we want to reduce the implementation risk by breaking the
+    implementation into phases. 
+  </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-requirements-revision-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.4</td><td>converting from HTML to DocBook and importing the document to the OpenACS
+               kernel documents. This was done as a part of the internationalization of
+               OpenACS and .LRN for the Heidelberg University in Germany</td><td>12 September 2002</td><td>Peter Marklund</td></tr><tr><td>0.3</td><td>comments from Christian</td><td>1/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.2</td><td>Minor typos fixed, clarifications to wording</td><td>11/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.1</td><td>Creation</td><td>11/08/2000</td><td>Henry Minsky</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="groups-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Permissions Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Groups Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/i18n-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/i18n.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/acs-core-docs/www/i18n.html	18 Nov 2002 18:09:54 -0000	1.1
+++ openacs-4/packages/acs-core-docs/www/i18n.html	28 Feb 2003 05:36:04 -0000	1.2
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.53.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter�4.�OpenACS Developer's Guide"><link rel="previous" href="subsites.html" title="Writing OpenACS 4.5 Application Pages"><link rel="next" href="more-developer-info.html" title="Chapter�5.�Other Developer Resources"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�4.�OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="i18n"></a></h2></div></div><div class="authorblurb"><p><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Internationalization</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="submissions.html" title="Contributions"><link rel="next" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="submissions.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="i18n"></a>Internationalization</h2></div></div><div class="authorblurb"><p><p>
       By <a href="http://www.petermarklund.com/" target="_top">Peter Marklund</a>
       and <a href="http://www.pinds.com/" target="_top">Lars Pind</a>
     </p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-introduction"></a>Introduction</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="i18n-introduction"></a>Introduction</h3></div></div><p>
       This document describes how to develop internationalized OpenACS packages.
     </p><p>
       At this point, we've only covered things that involve the
@@ -32,13 +32,13 @@
         internationalizing old packages, then have the APM translate
         those into the short notation.
       </p><div class="itemizedlist"><ul type="disc"><li><p>
-            The <span class="strong">short</span>:
+            The <span class="strong"><em>short</em></span>:
             #<span class="emphasis"><em>message_key</em></span>#
           </p><p>
             The advantage of the short syntax is that it's short. It's
             as simple as inserting the value of a variable.
           </p></li><li><p>
-            The <span class="strong">verbose</span>: &lt;trn
+            The <span class="strong"><em>verbose</em></span>: &lt;trn
             key=&quot;<span class="emphasis"><em>message_key</em></span>&quot;
             locale=&quot;<span class="emphasis"><em>locale</em></span>&quot;&gt;<span class="emphasis"><em>default
             text</em></span>&lt;/trn&gt;
@@ -51,7 +51,7 @@
             create the message key with the default text from the tag
             as the localized message.
           </p></li><li><p>
-            The <span class="strong">temporary</span>:
+            The <span class="strong"><em>temporary</em></span>:
             &lt;#<span class="emphasis"><em>message_key</em></span> <span class="emphasis"><em>original�text</em></span>#&gt;
           </p><p>
             This syntax has been designed to make it easy to
@@ -67,18 +67,18 @@
         Some parameters contain text that need to be localized. In
         this case, instead of storing the real text in the parameter,
         you should use message keys using the short notation above,
-        i.e.  <span class="strong">#<span class="emphasis"><em>message-key</em></span>#</span>.
+        i.e.  <span class="strong"><em>#<span class="emphasis"><em>message-key</em></span>#</em></span>.
       </p><p>
        In order to avoid clashes with other uses of the hash
          character, you need to tell the APM that the parameter value
          needs to be localized when retrieving it. You do that by saying:
-         <span class="strong">parameter::get -localize</span>.
+         <span class="strong"><em>parameter::get -localize</em></span>.
       </p><p>
         Here are a couple of examples. Say we have the following two
         parameters, taken directly from the dotlrn package.
-      </p><div class="table"><a name="id2878000"></a><p class="title"><b>Table�4.1.�</b></p><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Parameter Name</th><th>Parameter Value</th></tr></thead><tbody><tr><td>class_instance_pages_csv</td><td>#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column</td></tr><tr><td>departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p>
+      </p><div class="table"><p class="title"><b>Table 6.1. </b></p><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Parameter Name</th><th>Parameter Value</th></tr></thead><tbody><tr><td>class_instance_pages_csv</td><td>#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column</td></tr><tr><td>departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p>
         Then, depending on how we retrieve the value, here's what we get:
-      </p><div class="table"><a name="id2878089"></a><p class="title"><b>Table�4.2.�</b></p><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Command used to retrieve Value</th><th>Retrieved Value</th></tr></thead><tbody><tr><td>parameter::get <span class="strong">-localize</span> -parameter class_instances_pages_csv</td><td>Kurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column</td></tr><tr><td>parameter::get <span class="strong">-localize</span> -parameter departments_pretty_name</td><td>Abteilung</td></tr><tr><td>parameter::get -parameter departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p>
+      </p><div class="table"><p class="title"><b>Table 6.2. </b></p><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Command used to retrieve Value</th><th>Retrieved Value</th></tr></thead><tbody><tr><td>parameter::get <span class="strong"><em>-localize</em></span> -parameter class_instances_pages_csv</td><td>Kurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column</td></tr><tr><td>parameter::get <span class="strong"><em>-localize</em></span> -parameter departments_pretty_name</td><td>Abteilung</td></tr><tr><td>parameter::get -parameter departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p>
         The value in the rightmost column in the table above is the
         value returned by an invocation of parameter::get. Note that
         for localization to happen you must use the -localize flag.
@@ -144,23 +144,23 @@
       </p><p>
         The process consists of four steps:
       </p><div class="orderedlist"><ol type="1"><li><p>
-            <span class="strong">Replace text with tags</span>:
+            <span class="strong"><em>Replace text with tags</em></span>:
             This is an automated process, which will try to
             automatically locate chunks of translatable text,
             auto-generate a reasonable message key, and surround the
             text with the temporary &lt;#...#&gt; notation mentioned
             above.
           </p></li><li><p>
-            <span class="strong">Manually verify each ADP
-            file</span>. If necessary, you can add additional
+            <span class="strong"><em>Manually verify each ADP
+            file</em></span>. If necessary, you can add additional
             &lt;#...#&gt; tags, or you can move or remove the ones set
             by the automated step.
           </p></li><li><p>
-            <span class="strong">Manually mark up Tcl
-            files</span>, marking up translatable text with the
+            <span class="strong"><em>Manually mark up Tcl
+            files</em></span>, marking up translatable text with the
             &lt;#...#&gt; notation.
           </p></li><li><p>
-            <span class="strong">Replace tags with keys</span>:
+            <span class="strong"><em>Replace tags with keys</em></span>:
             This is an automated process, which will replace the
             temporary &lt;#...#&gt; notation in both ADP and Tcl files
             with the appropriate notation for the type of file, and
@@ -181,6 +181,4 @@
         </p></div></div><p>
       Next step is to internationalize parameters that contain
       localizable text. See the section <a href="i18n.html#i18n-message-catalog-params">Multilingual APM Parameters</a>.
-    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr><tr><td width="40%" align="left">Writing OpenACS 4.5 Application Pages&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter�5.�Other Developer Resources</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="submissions.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr><tr><td width="40%" align="left">Contributions&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 7. Other Developer Resources</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/i18n.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/index.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/index.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/index.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="next" href="for-everyone.html" title="Part�Part I.�OpenACS For Everyone"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="id2802799"></a>OpenACS Documentation</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>Part I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></dd></dl></dd><dt>Part II. <a href="acs-admin.html">For OpenACS Admins</a></dt><dd><dl><dt>2. <a href="unix-install.html">Installing on Unix/Linux</a></dt><dd><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></dd><dt>3. <a href="win-install.html">Installing on Windows</a></dt><dd><dl><dt><a href="win-overview.html">Overview</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></dd></dl></dd><dt>Part III. <a href="acs-dev.html">For OpenACS Developers</a></dt><dd><dl><dt>4. <a href="dev-guide.html">OpenACS Developer's Guide</a></dt><dd><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS 4.6 Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt></dl></dd><dt>5. <a href="more-developer-info.html">Other Developer Resources</a></dt><dd><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>6. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>7. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></dd></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>5.1. <a href="permissions-tediously-explained.html#id2825369"></a></dt><dt>5.2. <a href="permissions-tediously-explained.html#id2825737"></a></dt><dt>5.3. <a href="permissions-tediously-explained.html#id2825938"></a></dt><dt>5.4. <a href="permissions-tediously-explained.html#id2826094"></a></dt><dt>5.5. <a href="permissions-tediously-explained.html#id2826218"></a></dt><dt>5.6. <a href="permissions-tediously-explained.html#id2826845"></a></dt><dt>5.7. <a href="permissions-tediously-explained.html#id2827068"></a></dt><dt>5.8. <a href="permissions-tediously-explained.html#id2827253"></a></dt><dt>5.9. <a href="permissions-tediously-explained.html#id2827600"></a></dt><dt>5.10. <a href="permissions-tediously-explained.html#id2827978"></a></dt><dt>5.11. <a href="permissions-tediously-explained.html#id2828198"></a></dt><dt>5.12. <a href="permissions-tediously-explained.html#id2828836"></a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;Part�Part I.�OpenACS For Everyone</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/index.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="next" href="for-everyone.html" title="Part I. OpenACS For Everyone"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="id2832191"></a>OpenACS Documentation</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS 4.6 Release Notes</a></dt></dl></dd></dl></dd><dt>II. <a href="acs-admin.html">Administrator's Guide</a></dt><dd><dl><dt>2. <a href="unix-install.html">Installing on Unix/Linux</a></dt><dd><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></dd><dt>3. <a href="win-install.html">Installing on Windows</a></dt><dd><dl><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></dd><dt>4. <a href="mac-install.html">Installing on a Macintosh</a></dt><dd><dl><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading OpenACS 4.5 to 4.6</a></dt></dl></dd></dl></dd><dt>III. <a href="acs-dev.html">For OpenACS Developers</a></dt><dd><dl><dt>6. <a href="dev-guide.html">OpenACS Developer's Guide</a></dt><dd><dl><dt><a href="developers-overview.html">Overview</a></dt><dt><a href="tutorial.html">OpenACS 4.6 Package Tutorial</a></dt><dt><a href="packages.html">OpenACS 4.6 Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 4.6</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 4.6 Application Pages</a></dt><dt><a href="submissions.html">Contributions</a></dt><dt><a href="i18n.html">Internationalization</a></dt></dl></dd><dt>7. <a href="more-developer-info.html">Other Developer Resources</a></dt><dd><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>8. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>9. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="i18n-requirements.html">OpenACS 4.6 Internationalization Requirements</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></dd></dl></dd><dt><a href="ix01.html">Index</a></dt></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>5.1. <a href="upgrade-4.5-to-4.6.html#id2845357">Assumptions in this section</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>6.1. <a href="i18n.html#id2856625"></a></dt><dt>6.2. <a href="i18n.html#id2856308"></a></dt><dt>7.1. <a href="permissions-tediously-explained.html#id2858447"></a></dt><dt>7.2. <a href="permissions-tediously-explained.html#id2858819"></a></dt><dt>7.3. <a href="permissions-tediously-explained.html#id2859038"></a></dt><dt>7.4. <a href="permissions-tediously-explained.html#id2859201"></a></dt><dt>7.5. <a href="permissions-tediously-explained.html#id2859323"></a></dt><dt>7.6. <a href="permissions-tediously-explained.html#id2859981"></a></dt><dt>7.7. <a href="permissions-tediously-explained.html#id2860256"></a></dt><dt>7.8. <a href="permissions-tediously-explained.html#id2860440"></a></dt><dt>7.9. <a href="permissions-tediously-explained.html#id2860811"></a></dt><dt>7.10. <a href="permissions-tediously-explained.html#id2861253"></a></dt><dt>7.11. <a href="permissions-tediously-explained.html#id2861497"></a></dt><dt>7.12. <a href="permissions-tediously-explained.html#id2862242"></a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;Part I. OpenACS For Everyone</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/index.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/install-overview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-overview.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/install-overview.html	10 Aug 2002 20:07:20 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/install-overview.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="next" href="operating-system.html" title="Install an Operating System"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="unix-install.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="operating-system.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="install-overview"></a>Overview</h2></div></div><div class="authorblurb"><p>
 	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-description"></a>What is OpenACS?</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-description"></a>What is OpenACS?</h3></div></div><p>
 	  According to Philip Greenspun:
 	</p><p>
 	  &#8220;The ArsDigita Community System (ACS) is a toolkit of software
@@ -14,24 +14,19 @@
 	  1995.&#8221;
 	</p><p>
 	  What's OpenACS? OpenACS was born when Don Baccus, Ben Adida,
-	  et al decided to port ACS from Oracle to
-	  PostgreSQL, thus making it a fully open-source solution.
-	</p><p>
-	  OpenACS 4.5 is the next generation of the web toolkit. It's based on
+	  et al decided to port ACS from Oracle to PostgreSQL, thus making it a fully open-source solution.</p><p>
+	  OpenACS 4.6 is the next generation of the web toolkit. It's based on
 	  ACS 4, but no longer follows ArsDigita development. Unlike both ACS
 	  (which required Oracle) and OpenACS 3.x (which required PostgreSQL),
-	  OpenACS 4.5 allows you to use either database. It's also built in such
+	  OpenACS 4.6 allows you to use either database. It's also built in such
 	  a way to allow enterprising hackers (in the good sense of
 	  the word) to extend it to other databases. Don Baccus leads
 	  the development and numerous developers (and non-developers)
 	  contribute from around the world.
 	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-purpose"></a>Purpose of this document</h3></div></div><p>
-	  This document will describe how to install OpenACS 4.5 from scratch,
-	  using the source code. We will assume that you have an OS installed,
-	  but we'll discuss this more in the next section. For most of this
-	  guide, we will assume that you are using Linux on a PC, but we'll
-	  also point you to excellent step-by-step guides for other operating
-	  systems.
+	  This document will describe how to install an operating
+	  system, OpenACS 4.6, and all supporting software, from
+	  scratch. 
 	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-requirements"></a>Requirements</h3></div></div><p>
 	  You will need a PC (or equivalent) with at least these minimum
 	  requirements:
@@ -41,24 +36,27 @@
 	  need a network connection of some type.
 	</p><p>
 	  Note that these are minimum requirements to get a development system
-	  up and running. For a production system, we recommend you read about
-	  the <a href="http://www.arsdigita.com/asj/arsdigita-server-architecture" target="_top">ArsDigita
-	  Server Architecture</a>
+	  up and running. For a large production system, we recommend you read about
+	  the (now slightly obsolete) <a href="http://philip.greenspun.com/wtr/arsdigita-server-architecture.html" target="_top">ArsDigita
+	  Server Architecture</a> article.
 	</p><p>
 	  Running a reliable database-backed web server requires experience
 	  with the server's environment, in this case UNIX.  UNIX is not always
 	  an intuitive environment and this guide cannot hope to explain every
-	  nuance.  You should be comfortable with the following tasks before
+	  nuance.  If you follow the reference implementation, all of
+	  the unix commands you need will be in the text.  However,
+	  you will have trouble indentifying typos or other problems.
+	  Ideally, you should be comfortable with the following tasks before
 	  attempting an installation:
 	</p><div class="itemizedlist"><ul type="disc"><li><p> 
 		  Adding users, groups, setting passwords  
 		</p></li><li><p> 		  
-		  Starting an X server and running an X program remotely
+		  (For Oracle) Starting an X server and running an X program remotely
 	  </p></li><li><p> 
 		  Basic file management using <tt>cp, rm,
 			mv,</tt> and <tt>cd</tt>
 		</p></li><li><p> 
-		  Compiling a program using a Makefile 
+		  Compiling a program using ./config and make.
 		</p></li></ul></div><p>
 	  If you've never done these things before, consider exploring UNIX in
 	  greater depth before installing OpenACS.  Some useful resources for
@@ -70,12 +68,29 @@
 	  development purposes. This is described in the <a href="oracle.html#install-oracle-getit">Acquire Oracle</a> section.
 	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-steps"></a>Steps involved</h3></div></div><p>
 	  The basic steps to getting OpenACS up and running are: 
-	</p><div class="orderedlist"><ol type="1"><li><p>Install an OS</p></li><li><p>Install a webserver (AOLServer)</p></li><li><p>Install a database (Oracle or
-	  PostgreSQL)</p></li><li><p> Install a database
-	  driver (allows the webserver to talk to the database)
-	  </p></li><li><p>Configure the webserver and
-	  database</p></li><li><p>Start the OpenACS
-	  installer</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-stuck"></a>What if I get stuck?</h3></div></div><p>
+	</p><div class="orderedlist"><ol type="1"><li><p>Install an OS and supporting software</p></li><li><p>Install a webserver (AOLServer)</p></li><li><p>Install a database (Oracle or
+	  PostgreSQL)</p></li><li><p> Install a database driver (allows the webserver to talk to the database)
+	  </p></li><li><p>Start the OpenACS
+	  installer, which will configure a database.</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2773113"></a>How to use this guide</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="bold"><b>This is text that
+	tells you to do something, like click a
+	<span class="guibutton"><u>B</u>utton</span> or
+	<span class="guibutton"><u>link</u></span></b></span> </p></li><li><p><span class="guilabel">This</span> is an option you will see
+            on screen, such as in a radio button list or menu.</p></li><li><p><b><tt>This is text that you will type.</tt></b></p></li><li><p>This is text from a program or file which you may need to
+examine or edit:</p><pre class="programlisting">if {$database == &quot;oracle&quot;} {
+    set db_password        &quot;mysitepassword&quot;
+}</pre></li><li><p>This is text that you will
+<tt>see</tt> and <b><tt>type</tt></b> in a command shell, including <span class="replaceable">text you may have to
+change</span>.  It is followed by a list of just the commands,
+which you can copy and paste.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>svc -d /service/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>dropdb <span class="replaceable">openacs-dev</span></tt></b>
+DROP DATABASE
+[nsadmin@localhost aolserver]$ <b><tt>createdb <span class="replaceable">openacs-dev</span></tt></b>
+CREATE DATABASE
+<div class="action">su - nsadmin
+svc -d /service/<span class="replaceable">openacs-dev</span>
+dropdb <span class="replaceable">openacs-dev</span>
+createdb <span class="replaceable">openacs-dev</span></div></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-stuck"></a>What if I get stuck?</h3></div></div><p>
 	  We'll do our best to assure that following our instructions will get
 	  you to the promised land. If something goes wrong, don't
 	  panic. There are plenty of ways to get help. Here are some tips:
@@ -91,7 +106,7 @@
 		  worry if you feel overwhelmed by all the information in the error
 		  logs. Over time, you'll find that they make more and more
 		  sense. Soon, you'll actually look forward to errors so that you
-		  can run to the log and diagnose the problem. 
+		  can find the problem in the log.
 		</p></li><li><p>
 		  Search the <a href="http://openacs.org/bboard/" target="_top">bboards at
 		  openacs.org</a> - you'll often find many people who have
@@ -110,86 +125,87 @@
 		  together.
 		</p></li><li><p>
 		  If you find errors in this document or if you have ideas about
-		  making it better, please post them in our bug tracker - the
-		  <a href="http://openacs.org/sdm/open-bafs.tcl?module_id=54&amp;package_id=9" target="_top">SDM</a>.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-rpms"></a>Is there an easier way?</h3></div></div><p>
-	  After reading through this tome, you may ask yourself if there is a
-	  better way. And there is! Jonathan Marsden has done all the dirty
-	  work to create RPMs for OpenACS 4.5. These RPMs will install AOLServer,
-	  all the AOLServer modules, PostgreSQL and OpenACS 4.5 simply by typing
-	  one magic command. They're currently at <a href="http://www.xc.org/jonathan/openacs/openacs4-rpm-based-install.html" target="_top">http://www.xc.org</a>,
-	  but will eventually also be available at <a href="http://openacs.org/software/" target="_top">http://openacs.org/software</a>. They're
-	  quite new and Jonathan invites (and is quite responsive to)
-	  feedback. Leave comments at this <a href="http://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=0003hx&amp;topic_id=11&amp;topic=OpenACS" target="_top">thread</a>.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-origins"></a>Where did this document come from?</h3></div></div><p>
-	  This document was created by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a>, but it's really
-	  just plagiarism from a number of documents that came before it. If
-	  I've used something that you've written without proper credit, let me
-	  know and I'll fix it right away.
-	</p><p>These are a few of my sources:</p><div class="itemizedlist"><ul type="disc"><li><p> 
-		  <a href="http://developer.arsdigita.com/doc/unix-install.html" target="_top">ArsDigita installation guide</a>
-		</p></li><li><p>
-		  <a href="http://openacs.org/doc/openacs/install/" target="_top">OpenACS 3.x installation guide</a>
-		</p></li><li><p> 
-		  <a href="http://www.orchardlabs.com/freebsd/" target="_top">Gilbert Wong's FreeBSD
-		  installation guide</a>
-		</p></li><li><p> 
-		  <a href="http://kurup.com/acs/openacs-4.html" target="_top">My own Brief OpenACS4
-		  installation guide</a>
-		</p></li></ul></div><p>
-	  Please also see the <a href="credits.html">Credits</a> section for more acknowledgements.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-resources"></a>Resources</h3></div></div><p>
-	  Here are some resources that OpenACS users have found useful.
-	</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-resources-books"></a>Books</h4></div></div><div class="itemizedlist"><ul type="disc"><li><p>
+		  making it better, please post them in our
+		  <a href="http://openacs.org/bugtracker/openacs/" target="_top">BugTracker</a>.
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-rpms"></a>Is there an easier way?</h3></div></div><p>
 
-			<a href="http://www.amazon.com/exec/obidos/ASIN/1558605347/photonetA" target="_top">Philip
-			and Alex's Guide to Web Publishing</a> - A very readable
-			guide to database-backed community websites.
+      After reading through this tome, you may ask yourself if there is a
+      better way. Well, not quite. Jonathan Marsden has created RPMs (at
+      <a href="http://www.xc.org/jonathan/openacs/openacs4-rpm-based-install.html" target="_top">http://www.xc.org</a>)
+      for OpenACS 4.5 but there are not yet any for version
+      4.6. There has been talk about automating the install process,
+      but that hasn't happened yet. Stay tuned!
 
-		  </p></li><li><p>
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-origins"></a>Where did this document come from?</h3></div></div><p>
+      This document was created by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a>, but it's really
+      just plagiarism from a number of documents that came before it. If
+      I've used something that you've written without proper credit, let me
+      know and I'll fix it right away.
+    </p><p>These are a few of my sources:</p><div class="itemizedlist"><ul type="disc"><li><p> 
+          <a href="http://developer.arsdigita.com/doc/unix-install.html" target="_top">ArsDigita installation guide</a>
+        </p></li><li><p>
+          <a href="http://openacs.org/doc/openacs/install/" target="_top">OpenACS 3.x installation guide</a>
+        </p></li><li><p> 
+          <a href="http://www.orchardlabs.com/freebsd/" target="_top">Gilbert Wong's FreeBSD
+          installation guide</a>
+        </p></li><li><p> 
+          <a href="http://kurup.com/acs/openacs-4.html" target="_top">Vinod
+          Kurup's Brief OpenACS4 installation guide</a>
+        </p></li></ul></div><font color="red">&lt;listitem&gt;<p> 
+          <a href="http://www.aufrecht.org/openacs-4.5-quick-guide/" target="_top">Joel
+          Aufrecht's OpenACS 4.5 Quick Guide.</a>
+        </p>&lt;/listitem&gt;</font><p>
+      Please also see the <a href="credits.html">Credits</a> section for more acknowledgements.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-resources"></a>Resources</h3></div></div><p>
+      Here are some resources that OpenACS users have found useful.
+    </p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-resources-books"></a>Books</h4></div></div><div class="itemizedlist"><ul type="disc"><li><p>
 
-			<a href="http://www.amazon.com/exec/obidos/ISBN=1565922603/photonetA/" target="_top">UNIX
-			  Power Tools</a> - An excellent introduction to the
-			  command line tools and basic programs of UNIX
+            <a href="http://www.amazon.com/exec/obidos/ASIN/1558605347/photonetA" target="_top">Philip
+            and Alex's Guide to Web Publishing</a> - A very readable
+            guide to database-backed community websites.
 
-		  </p></li><li><p>
+          </p></li><li><p>
 
-			<a href="http://www.amazon.com/exec/obidos/ASIN/0130206016/photonetA" target="_top">UNIX
-			System Administration Handbook</a> (formerly the &quot;red book&quot;
-			- now the &quot;purple&quot; book)
+            <a href="http://www.amazon.com/exec/obidos/ISBN=1565922603/photonetA/" target="_top">UNIX
+              Power Tools</a> - An excellent introduction to the
+              command line tools and basic programs of UNIX
 
-		  </p></li><li><p> 
+          </p></li><li><p>
 
-			<a href="http://www.amazon.com/exec/obidos/ASIN/076453162X/photonetA" target="_top">UNIX
-			System Administrator's Bible</a> -  (LePage and Iarerra 1998;
-			IDG) 
+            <a href="http://www.amazon.com/exec/obidos/ASIN/0130206016/photonetA" target="_top">UNIX
+            System Administration Handbook</a> (formerly the &quot;red book&quot;
+            - now the &quot;purple&quot; book)
 
-		  </p></li><li><p> 
+          </p></li><li><p> 
 
-			<a href="http://www.amazon.com/exec/obidos/ASIN/1565921518/photonetA" target="_top">Running
-			Linux</a> </p></li><li><p> <a href="http://www.amazon.com/exec/obidos/ASIN/1565921526/photonetA" target="_top">Learning
-			Gnu Emacs</a> </p></li><li><p> 
+            <a href="http://www.amazon.com/exec/obidos/ASIN/076453162X/photonetA" target="_top">UNIX
+            System Administrator's Bible</a> -  (LePage and Iarerra 1998;
+            IDG) 
 
-			<a href="http://www.amazon.com/exec/obidos/ASIN/1565925858/photonetA" target="_top">Linux
-			  in a Nutshell</a> 
+          </p></li><li><p> 
 
-		  </p></li></ul></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-resources-web"></a>Web Sites</h4></div></div><div class="itemizedlist"><ul type="disc"><li><p>
+            <a href="http://www.amazon.com/exec/obidos/ASIN/1565921518/photonetA" target="_top">Running
+            Linux</a> </p></li><li><p> <a href="http://www.amazon.com/exec/obidos/ASIN/1565921526/photonetA" target="_top">Learning
+            Gnu Emacs</a> </p></li><li><p> 
 
-			<a href="http://www.geek-girl.com/unix.html" target="_top">The UNIX
-			  Reference Desk</a>
+            <a href="http://www.amazon.com/exec/obidos/ASIN/1565925858/photonetA" target="_top">Linux
+              in a Nutshell</a> 
 
-		  </p></li><li><p> 
+          </p></li></ul></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-resources-web"></a>Web Sites</h4></div></div><div class="itemizedlist"><ul type="disc"><li><p>
 
-			<a href="http://www.linuxdoc.org/" target="_top">The Linux Documentation
-			Project</a> 
+            <a href="http://www.geek-girl.com/unix.html" target="_top">The UNIX
+              Reference Desk</a>
 
-		  </p></li><li><p>
+          </p></li><li><p> 
 
-			<a href="http://www-105.ibm.com/developerworks/education.nsf/linux-onlinecourse-bytitle/4AAA4E689F774DBC86256B4500645075?OpenDocument" target="_top">LPI
-			certification exam preps</a> - A series of articles from
-			IBM developerworks on basic and intermediate Linux skills
-			(requires registration)
+            <a href="http://www.linuxdoc.org/" target="_top">The Linux Documentation
+            Project</a> 
 
-			</p></li></ul></div></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unix-install.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="operating-system.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 2. Installing on Unix/Linux&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install an Operating System</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+          </p></li><li><p>
+
+            <a href="http://www-105.ibm.com/developerworks/education.nsf/linux-onlinecourse-bytitle/4AAA4E689F774DBC86256B4500645075?OpenDocument" target="_top">LPI
+            certification exam preps</a> - A series of articles from
+            IBM developerworks on basic and intermediate Linux skills
+            (requires registration)
+
+            </p></li></ul></div></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unix-install.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="operating-system.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 2. Installing on Unix/Linux&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install an Operating System</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/install-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
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
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/ix01.html	28 Feb 2003 05:36:04 -0000	1.1
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Index</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="index.html" title="OpenACS Documentation"><link rel="previous" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div class="index"><div class="titlepage"><div><h2 class="title"><a name="id2868794"></a>Index</h2></div></div><div class="index"><div class="indexdiv"><h3>D</h3><dl><dt>DocBook</dt><dd><dl><dt>DTD, <a href="docbook-primer.html#dbprimer-why">Why DocBook?</a></dt></dl></dd><dt>Document structure, <a href="docbook-primer.html#dbprimer-structure">Document Structure</a></dt></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>Graphics</dt><dd><dl><dt>Images, <a href="docbook-primer.html#dbprimer-graphics">Graphics</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>Linking, <a href="docbook-primer.html#dbprimer-links">Links</a></dt><dt>lists, <a href="docbook-primer.html#dbprimer-lists">Lists</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>OpenACS Package, <a href="packages.html#packages-looks">What a Package Looks Like</a></dt></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>Sections</dt><dd><dl><dt>Headlines, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></dd><dt>sect1, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt><dt>sect2, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></div><div class="indexdiv"><h3>U</h3><dl><dt>Unicode, <a href="postgres.html#install-postgres-compile">Compile and install PostgreSQL</a></dt><dt>ulink, <a href="docbook-primer.html#dbprimer-links">Links</a></dt><dt>upgrade</dt><dd><dl><dt>OpenACS 4.5 to 4.6, <a href="upgrade-4.5-to-4.6.html#id2845442">Upgrading on Linux/Unix</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>X</h3><dl><dt>XML guidelines, <a href="docbook-primer.html#dbprimer-why">Why DocBook?</a></dt><dt>xref</dt><dd><dl><dt>linkend, <a href="docbook-primer.html#dbprimer-links">Links</a></dt></dl></dd><dt>xreflabel, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>computeroutput</dt><dd><dl><dt>code, <a href="docbook-primer.html#dbprimer-code">Code</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>emphasis</dt><dd><dl><dt>bold, italics, <a href="docbook-primer.html#dbprimer-emphasis">Emphasis</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>informaltable</dt><dd><dl><dt>table, <a href="docbook-primer.html#dbprimer-tables">Tables</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left">Bootstrapping OpenACS&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/ix01.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/kernel-doc.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/kernel-doc.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/kernel-doc.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�7.�Kernel Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part�Part III.�For OpenACS Developers"><link rel="previous" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="next" href="kernel-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part III.�For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="kernel-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="kernel-doc"></a>Chapter�7.�Kernel Documentation</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="kernel-overview.html">Next</a></td></tr><tr><td width="40%" align="left">PL/SQL Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/kernel-doc.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 9. Kernel Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="previous" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="next" href="kernel-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part III. For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="kernel-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="kernel-doc"></a>Chapter 9. Kernel Documentation</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="i18n-requirements.html">OpenACS 4.6 Internationalization Requirements</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="kernel-overview.html">Next</a></td></tr><tr><td width="40%" align="left">PL/SQL Standards&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/kernel-doc.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/kernel-overview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-overview.html,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/acs-core-docs/www/kernel-overview.html	30 Nov 2002 17:16:24 -0000	1.4
+++ openacs-4/packages/acs-core-docs/www/kernel-overview.html	28 Feb 2003 05:36:04 -0000	1.5
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="next" href="object-system-requirements.html" title="OpenACS 4 Object Model Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-system-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="kernel-overview"></a>Overview</h2></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="next" href="object-system-requirements.html" title="OpenACS 4 Object Model Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-system-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="kernel-overview"></a>Overview</h2></div></div><p>
 	  Compared to its predecessors, version 4.6 of OpenACS has a much
 	  more structured organization, i.e. the most
 	  significant change is found at the system architecture level,
@@ -19,4 +19,4 @@
 	    </p></li></ul></div><p>
 	  This document provides a high level overview of the kernel
 	  package. Documentation for the other packages can be found <a href="index.html" target="_top">elsewhere</a>.
-	</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="object-system-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�7.�Kernel Documentation&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Object Model Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/kernel-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
+	</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="object-system-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 9. Kernel Documentation&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Object Model Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/kernel-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/mac-install.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/mac-install.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/mac-install.html	28 Feb 2003 05:36:04 -0000	1.1
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 4. Installing on a Macintosh</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"><link rel="next" href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="win2k-installation.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="mac-installation.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="mac-install"></a>Chapter 4. Installing on a Macintosh</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="win2k-installation.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="mac-installation.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Installation Guide for Windows2000&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS Installation Guide for Mac OS X</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/mac-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/mac-installation.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/mac-installation.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/mac-installation.html	28 Feb 2003 05:36:04 -0000	1.1
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Installation Guide for Mac OS X</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="mac-install.html" title="Chapter 4. Installing on a Macintosh"><link rel="previous" href="mac-install.html" title="Chapter 4. Installing on a Macintosh"><link rel="next" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="mac-install.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. Installing on a Macintosh</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="upgrade.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="mac-installation"></a>OpenACS Installation Guide for Mac OS X</h2></div></div><p>Forthcoming.</p><p><div class="cvstag">($Id: mac-installation.html,v 1.1 2003/02/28 05:36:04 joela Exp $)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="mac-install.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="upgrade.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 4. Installing on a Macintosh&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="mac-install.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 5. Upgrading</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/mac-installation.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/more-developer-info.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/more-developer-info.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/more-developer-info.html	30 Nov 2002 17:16:24 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/more-developer-info.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�5.�Other Developer Resources</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part�Part III.�For OpenACS Developers"><link rel="previous" href="subsites.html" title="Writing OpenACS 4.6 Application Pages"><link rel="next" href="other-developer-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part III.�For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="other-developer-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="more-developer-info"></a>Chapter�5.�Other Developer Resources</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="other-developer-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Writing OpenACS 4.6 Application Pages&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/more-developer-info.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 7. Other Developer Resources</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="previous" href="i18n.html" title="Internationalization"><link rel="next" href="other-developer-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part III. For OpenACS Developers</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="other-developer-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="more-developer-info"></a>Chapter 7. Other Developer Resources</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="other-developer-overview.html">Overview</a></dt><dt><a href="parties.html">Parties in OpenACS 4.6</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="other-developer-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Internationalization&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-dev.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/more-developer-info.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/nextsteps.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/nextsteps.html,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/acs-core-docs/www/nextsteps.html	10 Aug 2002 20:07:20 -0000	1.6
+++ openacs-4/packages/acs-core-docs/www/nextsteps.html	28 Feb 2003 05:36:04 -0000	1.7
@@ -1,48 +1,58 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Next Steps</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="openacs.html" title="Install OpenACS 4.5"><link rel="next" href="credits.html" title="Credits"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="credits.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="nextsteps"></a>Next Steps</h2></div></div><div class="authorblurb"><p>
-	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-backups"></a>Backup Strategy</h3></div></div><p>Here are some tips from Don Baccus regarding backup strategy:</p><p>
-	  The need for making backups should be self-explanatory. There are
-	  several strategies you can use. My own strategy for minimizing the
-	  odds that I'll lose all my data is quite simple:
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  The database is stored on a mirrored (RAID 1) disk.
-		</p></li><li><p>
-		  The machine has battery backup.
-		</p></li><li><p>
-		  Backups are made nightly onto a third disk on another controller
-		</p></li><li><p>
-		  FTP is used to copy the resulting backup to two separate remote
-		  servers in two locations
-		</p></li></ul></div><p>
-	  Rather than making remote copies, you might choose to dump to tape or
-	  writeable CD media. Whatever strategy you use, it is important to
-	  routinely check dumps to make sure they can be reloaded. The strategy
-	  outlined above means that in the case of catastrophic failure, I'll
-	  lose at most one day's data.
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Next Steps</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="openacs.html" title="Install OpenACS 4.6"><link rel="next" href="credits.html" title="Credits"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="credits.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="nextsteps"></a>Next Steps</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-backups"></a>Backup Strategy</h3></div></div><p>
 
-	  By mirroring disks and using a battery backup, preferably one that
-	  can trigger an automatic and controlled shutdown of the system when
-	  the battery runs low, you greatly lower the odds of ever having to
-	  use your nightly backup. Despite this, it is important to take
-	  backups seriously if the data stored at your site is valuable to you
-	  or your users.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-export-oracle"></a>Set Up Nightly Oracle Exports</h3></div></div><p>
-	  While you're working with Oracle, you should configure it to do
-	  automatic exports. An export is a separate backup copy of the
-	  database.  This copy includes all of the database's state at the
-	  time that the export was initiated. If your database is corrupted,
-	  you can restore from one of these backups. You should do this step as
-	  <tt>root</tt>.
-	</p><div class="itemizedlist"><ul type="disc"><li><p> 
-		  Download the backup script. Save the file <a href="files/export-oracle.txt" target="_top">export-oracle.txt</a> as
-		  <tt>/tmp/export-oracle.txt</tt>
-		</p></li><li><p>
-		  Login as root. The following commands will install the export script:
-		</p><pre class="programlisting">
-nsadmin:~$ su -
+      Here are some tips from Don Baccus regarding backup strategy:
+
+    </p><p>
+
+      The need for making backups should be self-explanatory. There are
+      several strategies you can use. My own strategy for minimizing the
+      odds that I'll lose all my data is quite simple:
+
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          The database is stored on a mirrored (RAID 1) disk.
+        </p></li><li><p>
+          The machine has battery backup.
+        </p></li><li><p>
+          Backups are made nightly onto a third disk on another controller
+        </p></li><li><p>
+          FTP is used to copy the resulting backup to two separate remote
+          servers in two locations
+        </p></li></ul></div><p>
+
+      Rather than making remote copies, you might choose to dump to tape or
+      writeable CD media. Whatever strategy you use, it is important to
+      routinely check dumps to make sure they can be reloaded. The strategy
+      outlined above means that in the case of catastrophic failure, I'll
+      lose at most one day's data.
+
+    </p><p>
+
+      By mirroring disks and using a battery backup, preferably one that
+      can trigger an automatic and controlled shutdown of the system when
+      the battery runs low, you greatly lower the odds of ever having to
+      use your nightly backup. Despite this, it is important to take
+      backups seriously if the data stored at your site is valuable to you
+      or your users.
+
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-export-oracle"></a>Set Up Nightly Oracle Exports</h3></div></div><p>
+      While you're working with Oracle, you should configure it to do
+      automatic exports. An export is a separate backup copy of the
+      database.  This copy includes all of the database's state at the
+      time that the export was initiated. If your database is corrupted,
+      you can restore from one of these backups. You should do this step as
+      <tt>root</tt>.
+    </p><div class="itemizedlist"><ul type="disc"><li><p> 
+          Download the backup script. Save the file <a href="files/export-oracle.txt" target="_top">export-oracle.txt</a> as
+          <tt>/tmp/export-oracle.txt</tt>
+        </p></li><li><p>
+          Login as root. The following commands will install the export script:
+        </p><pre class="programlisting">
+joeuser:~$ su -
 Password: ***********
 root:~# cp /tmp/export-oracle.txt /usr/sbin/export-oracle
 root:~# chmod 700 /usr/sbin/export-oracle</pre></li><li><p>
@@ -52,17 +62,17 @@
 root:~# mkdir /ora8/m02/oracle-exports
 root:~# chown oracle.dba /ora8/m02/oracle-exports
 root:~# chmod 770 /ora8/m02/oracle-exports</pre></li><li><p> 
-		  Now edit
-		  <tt>/usr/sbin/export-oracle</tt> and
-		  change the <tt>SERVICE_NAME</tt> and
-		  <tt>DATABASE_PASSWORD</tt> fields to
-		  their correct values. If you want to use a directory other than
-		  <tt>/ora8/m02/oracle-exports</tt>, you
-		  also need to change the
-		  <tt>exportdir</tt> setting.
-		</p><p>
-		  Test the export procedure by running the command:
-		</p><pre class="programlisting">
+          Now edit
+          <tt>/usr/sbin/export-oracle</tt> and
+          change the <tt>SERVICE_NAME</tt> and
+          <tt>DATABASE_PASSWORD</tt> fields to
+          their correct values. If you want to use a directory other than
+          <tt>/ora8/m02/oracle-exports</tt>, you
+          also need to change the
+          <tt>exportdir</tt> setting.
+        </p><p>
+          Test the export procedure by running the command:
+        </p><pre class="programlisting">
 root:~# /usr/sbin/export-oracle
 mv: /ora8/m02/oracle-exports/oraexport-service_name.dmp.gz: No such file or directory
 
@@ -100,217 +110,227 @@
 . exporting post-schema procedural objects and actions
 . exporting statistics
 Export terminated successfully without warnings.</pre><p>If you don't have any warnings, proceed to automate the
-		  backups.</p></li><li><p>
-		  Automating backups is accomplished using the UNIX
-		  <tt>crontab</tt> facility.</p><p>
-		  While still <tt>root</tt>, run the
-		  following command. You can replace the
-		  <tt>EDITOR=&quot;emacs -nw&quot;</tt>
-		  portion with whatever editor your prefer, such as
-		  <tt>EDITOR=vi</tt>.
-		</p><pre class="programlisting">
+          backups.</p></li><li><p>
+          Automating backups is accomplished using the UNIX
+          <tt>crontab</tt> facility.</p><p>
+          While still <tt>root</tt>, run the
+          following command. You can replace the
+          <tt>EDITOR=&quot;emacs -nw&quot;</tt>
+          portion with whatever editor your prefer, such as
+          <tt>EDITOR=vi</tt>.
+        </p><pre class="programlisting">
 root:~# export EDITOR=&quot;emacs -nw&quot;
 root:~# crontab -e</pre><p>Now add the following line on a line by itself </p><pre class="programlisting">
 0 23 * * * /usr/sbin/export-oracle</pre><p>
-		  Save the file, exit the editor. Verify that the addition
-		  succeeded by checking the output of the following command.</p><pre class="programlisting">
+          Save the file, exit the editor. Verify that the addition
+          succeeded by checking the output of the following command.</p><pre class="programlisting">
 root:~# crontab -l | grep export-oracle
 0 23 * * * /usr/sbin/export-oracle
 root:~# exit
 ; Logout</pre><p>If you see the line, go ahead and log out.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-export-postgres"></a>Set up nightly Postgres exports</h3></div></div><p>
-	  Dowload <a href="files/acs-pgbackup-init.txt" target="_top">this script</a>
-	  to <tt>/tmp</tt>. At the top of the script
-	  are several variables that you'll need to customize:
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  <tt>bak</tt> - location where you want
-		  local backups to be saved
-		</p></li><li><p>
-		  <tt>servername</tt> - name of your server
-		  (and database instance)
-		</p></li><li><p>
-		  <tt>ftp_user</tt> - username on your ftp
-		  account 
-		</p></li><li><p>
-		  <tt>ftp_password</tt> - password on your
-		  ftp account
-		</p></li><li><p>
-		  <tt>ftp_dir</tt> - path on the remote
-		  server where your backups will be uploaded
-		</p></li><li><p>
-		  <tt>ftp_server</tt> - your ftp server
-		</p></li></ul></div><p>
+      Dowload <a href="files/acs-pgbackup-init.txt" target="_top">this script</a>
+      to <tt>/tmp</tt>. At the top of the script
+      are several variables that you'll need to customize:
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          <tt>bak</tt> - location where you want
+          local backups to be saved
+        </p></li><li><p>
+          <tt>servername</tt> - name of your server
+          (and database instance)
+        </p></li><li><p>
+          <tt>ftp_user</tt> - username on your ftp
+          account 
+        </p></li><li><p>
+          <tt>ftp_password</tt> - password on your
+          ftp account
+        </p></li><li><p>
+          <tt>ftp_dir</tt> - path on the remote
+          server where your backups will be uploaded
+        </p></li><li><p>
+          <tt>ftp_server</tt> - your ftp server
+        </p></li></ul></div><p>
 
-	  Next, we'll save this file to our server's
-	  <tt>tcl</tt> directory so that it will be
-	  loaded on startup. It will automatically be run every night at
-	  midnight. Note that this script only backs up the database - not the
-	  OpenACS scripts and file content.
-	</p><pre class="programlisting">
-nsadmin:~$ cp /tmp/acs-pgbackup-init.txt /web/birdnotes/tcl/acs-pgbackup-init.tcl
-nsadmin:~$ restart-aolserver birdnotes</pre><p>
-	  That's it! The script will email you with each successful backup (or
-	  if it fails, it will send you an email with the reason)
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-nightly-vacuum"></a>Vacuum Postgres nightly</h3></div></div><p>
-	  The &quot;vacuum&quot; command must be run periodically to reclaim space. The
-	  &quot;vacuum analyze&quot; form additionally collects statistics on the
-	  disbursion of columns in the database, which the optimizer uses when
-	  it calculates just how to execute queries. The availability of this
-	  data can make a tremendous difference in the execution speed of
-	  queries. This command can also be run from cron, but it probably makes
-	  more sense to run this command as part of your nightly backup
-	  procedure - if &quot;vacuum&quot; is going to screw up the database, you'd
-	  prefer it to happen immediately after (not before!) you've made a
-	  backup! The &quot;vacuum&quot; command is very reliable, but conservatism is
-	  the key to good system management. So, if you're using the export
-	  procedure described above, you don't need to do this extra step.
-	</p><p>Edit your crontab:</p><pre class="programlisting">
-nsadmin:~$ crontab -e</pre><p>We'll set vacuum up to run nightly at 1 AM. Add the following
-	line:</p><pre class="programlisting">
+      Next, we'll save this file to our server's
+      <tt>tcl</tt> directory so that it will be
+      loaded on startup. It will automatically be run every night at
+      midnight. Note that this script only backs up the database - not the
+      OpenACS scripts and file content.
+    </p><pre class="programlisting">
+joeuser:~$ cp /tmp/acs-pgbackup-init.txt ~/web/birdnotes/tcl/acs-pgbackup-init.tcl
+joeuser:~$ restart-aolserver birdnotes</pre><p>
+      That's it! The script will email you with each successful backup (or
+      if it fails, it will send you an email with the reason)
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-nightly-vacuum"></a>Vacuum Postgres nightly</h3></div></div><p>
+      The &quot;vacuum&quot; command must be run periodically to reclaim space. The
+      &quot;vacuum analyze&quot; form additionally collects statistics on the
+      disbursion of columns in the database, which the optimizer uses when
+      it calculates just how to execute queries. The availability of this
+      data can make a tremendous difference in the execution speed of
+      queries. This command can also be run from cron, but it probably makes
+      more sense to run this command as part of your nightly backup
+      procedure - if &quot;vacuum&quot; is going to screw up the database, you'd
+      prefer it to happen immediately after (not before!) you've made a
+      backup! The &quot;vacuum&quot; command is very reliable, but conservatism is
+      the key to good system management. So, if you're using the export
+      procedure described above, you don't need to do this extra step.
+    </p><p>Edit your crontab:</p><pre class="programlisting">
+joeuser:~$ crontab -e</pre><p>We'll set vacuum up to run nightly at 1 AM. Add the following
+    line:</p><pre class="programlisting">
 0 1 * * * /usr/local/pgsql/bin/vacuumdb birdnotes</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-add-server"></a>How to add a second server on a different port</h3></div></div><p>Starting another server is simply a matter of configuring another
-	aolserver instance, creating another database and pointing this
-	aolserver instance at a fresh copy of the OpenACS-4 code. We'll call
-	our new server <span class="emphasis"><em>birdnotes-dev</em></span></p><div class="orderedlist"><ol type="1"><li><p>
-		  Download another copy of <a href="files/openacs4.tcl.txt" target="_top"><tt>openacs4.tcl.txt</tt></a>
-		  into <tt>/tmp</tt>.  </p><pre class="programlisting">
-nsadmin:~$ cp /tmp/openacs4.tcl.txt ./<span class="emphasis"><em>birdnotes-dev</em></span>.tcl
-nsadmin:~$ chmod 660 <span class="emphasis"><em>birdnotes-dev</em></span>.tcl
-nsadmin:~$ emacs <span class="emphasis"><em>birdnotes-dev</em></span>.tcl</pre><p>Just like in <a href="openacs.html#install-openacs-configure-aol" title="Configuring AOLserver">the section called &#8220;Configuring AOLserver&#8221;</a>,
-		you'll need to set the server parameters appropriately. Be sure to
-		choose a different port than your original server and to set
-		<tt>server</tt> to
-		<span class="emphasis"><em>birdnotes-dev</em></span>.</p></li><li><p>
+    aolserver instance, creating another database and pointing this
+    aolserver instance at a fresh copy of the OpenACS-4 code. We'll call
+    our new server <span class="emphasis"><em>birdnotes-dev</em></span></p><div class="orderedlist"><ol type="1"><li><p>
+          You can either copy your current OpenACS installation:
+        </p><pre class="programlisting">
+joeuser:~$ cp -r web/birdnotes web/birdnotes-dev</pre><p>
+          Or Download the <a href="http://www.openacs.org/software" target="_top">OpenACS
+          4 software</a> into <tt>/tmp</tt> again.
+        </p><pre class="programlisting">
+joeuser:~$ cd web
+joeuser:~/web$ tar xzvf /tmp/openacs-4-5-release.tgz
+joeuser:~/web$ mv openacs-4 birdnotes-dev</pre></li><li><p>
+          Download another copy of <a href="files/openacs4.tcl.txt" target="_top"><tt>openacs4.tcl.txt</tt></a>
+          into <tt>/tmp</tt>.  </p><pre class="programlisting">
+joeuser:~/web$ cp /tmp/openacs4.tcl.txt ./<span class="emphasis"><em>birdnotes-dev</em></span>/nsd.tcl
+joeuser:~/web$ chmod 600 <span class="emphasis"><em>birdnotes-dev</em></span>/nsd.tcl
+joeuser:~/web$ emacs <span class="emphasis"><em>birdnotes-dev</em></span>/nsd.tcl</pre><p>Just like in <a href="openacs.html#install-openacs-configure-aol" title="Configuring AOLserver">the section called &#8220;Configuring AOLserver&#8221;</a>,
+        you'll need to set the server parameters appropriately. Be sure to
+        choose a different port than your original server and to set
+        <tt>server</tt> to
+        <span class="emphasis"><em>birdnotes-dev</em></span>.</p></li><li><p>
 
-		  Create a new database instance called
-		  <span class="emphasis"><em>birdnotes-dev</em></span>. Follow the instructions in
-		  <a href="openacs.html#install-openacs-prepare-oracle">Prepare Oracle for OpenACS</a> or <a href="openacs.html#install-openacs-prepare-postgres">Prepare PostgreSQL for OpenACS</a>.
+          Create a new database instance called
+          <span class="emphasis"><em>birdnotes-dev</em></span>. Follow the instructions in
+          <a href="openacs.html#install-openacs-prepare-oracle">Prepare Oracle for OpenACS</a> or <a href="openacs.html#install-openacs-prepare-postgres">Prepare PostgreSQL for OpenACS</a>.
 
-		</p></li><li><p>
+        </p></li><li><p>
+          Start your new server!
+        </p><pre class="programlisting">
+joeuser:~/web$ cd
+joeuser:~/web$ /usr/local/aolserver/bin/nsd-postgres -t /home/joeuser/web/<span class="emphasis"><em>birdnotes-dev</em></span>/nsd.tcl</pre><p>
+          Visit the site with a web browser (using the port that you set
+          above). You should see the OpenACS installer. Once you install
+          the OpenACS datamodel, you'll also need to add your new aolserver
+          instance to <tt>/etc/inittab</tt> (or
+          daemontools) so it restarts automatically.</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-openfts"></a>Set up site-wide search</h3></div></div><p>
 
-		  You can either copy your current OpenACS installation:
-		</p><pre class="programlisting">
-nsadmin:~$ cd /web
-nsadmin:~$ cp -r birdnotes birdnotes-dev</pre><p>
-		  Or Download the <a href="http://www.openacs.org/software" target="_top">OpenACS
-		  4 software</a> into <tt>/tmp</tt> again.
-		</p><pre class="programlisting">
-nsadmin:~$ cd /web
-nsadmin:/web$ tar xzvf /tmp/alpha2.tgz
-nsadmin:/web$ mv openacs-4 birdnotes-dev</pre></li><li><p>
-		  Start your new server!
-		</p><pre class="programlisting">
-nsadmin:/web$ cd
-nsadmin:~$ /usr/local/aolserver/bin/nsd-postgres -t /usr/local/aolserver/<span class="emphasis"><em>birdnotes-dev</em></span>.tcl</pre><p>
-		  Visit the site with a web browser (using the port that you set
-		  above). You should see the OpenACS installer. Once you install
-		  the OpenACS datamodel, you'll also need to add your new aolserver
-		  instance to <tt>/etc/inittab</tt> (or
-		  daemontools) so it restarts automatically.</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-next-openfts"></a>Set up site-wide search</h3></div></div><p>
-	  OpenACS uses the <a href="http://openfts.sourceforge.net/" target="_top">OpenFTS</a> package to
-	  implement site-wide-search. You'll need to have the Tcl development
-	  libraries and headers installed. (Debian users:
-	  <tt>apt-get install tcl8.3-dev</tt>)
-	</p><div class="orderedlist"><ol type="1"><li><p>
-		  As <tt>root</tt>, download the
-		  Search-OpenFTS driver.
-		</p><pre class="programlisting">
-nsadmin:~$ su -
+      OpenACS uses the <a href="http://openfts.sourceforge.net/" target="_top">OpenFTS</a> package to
+      implement site-wide-search. As of this writing, the current version
+      is 0.3.2. There are good instructions included in the OpenFTS
+      instructions which I will repeat here. Be sure to look at those
+      instructions if you're installing a version later than 0.3.2; the
+      instructions may have changed. You'll need to have the Tcl
+      development libraries and headers installed. (Debian users:
+      <tt>apt-get install tcl8.3-dev</tt>)
+
+    </p><div class="orderedlist"><ol type="1"><li><p>
+
+          As <tt>root</tt>, download the latest TCL
+          version of the Search-OpenFTS driver from <a href="http://sourceforge.net/project/showfiles.php?group_id=30968" target="_top">SourceForge</a>
+          into <tt>/tmp</tt>. Extract the source
+          into <tt>/usr/local/src</tt>
+
+        </p><pre class="programlisting">
+joeuser:~$ su -
 Password: **********
-root:~# cd /tmp
-root:/tmp# wget http://prdownloads.sourceforge.net/openfts/Search-OpenFTS-tcl-0.2.tar.gz
 root:~# cd /usr/local/src
-root:/usr/local/src# tar xzf /tmp/Search-OpenFTS-tcl-0.2.tar.gz
-root:/usr/local/src# chown -R nsadmin.web Search-OpenFTS-tcl-0.2
-root:/usr/local/src# exit</pre></li><li><p>
-		  Configure it. Note that you may need to set
-		  <tt>--with-tcl=</tt>(your Tcl library
-		  location). For Debian, add this to the end of the
-		  <tt>./configure</tt> command:
-		  <tt>--with-tcl=/usr/lib/tcl8.3</tt>
-		</p><pre class="programlisting">
-nsadmin:~$ cd /usr/local/src/Search-OpenFTS-tcl-0.2
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver</pre></li><li><p>
-		  In order to compile on Debian, I had to edit my
-		  <tt>Makefile.global</tt>. Add
-		  <tt>-I/usr/include/tcl8.3</tt> to the
-		  line where INC is defined, so it looks like this:
-		</p><pre class="programlisting">
-INC          = ../include -I/usr/include/tcl8.3</pre><p>Then compile it:</p><pre class="programlisting">
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ make
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2$ cd aolserver
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ make</pre></li><li><p>
-		  Install it. You need to do this step as root since some of the
-		  libraries will be installed alongside your TCL libraries and some
-		  alongside your PostgreSQL libraries.
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ su -
-Password: ***********
-root:~# cd /usr/local/src/Search-OpenFTS-tcl-0.2
-root:/usr/local/src/Search-OpenFTS-tcl-0.2# make install
-root:/usr/local/src/Search-OpenFTS-tcl-0.2# exit
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ cp nsfts.so /usr/local/aolserver/bin/</pre></li><li><p>
-		  Add the following line to your aolserver config file (in our
-		  example:
-		  <tt>/usr/local/aolserver/birdnotes.tcl</tt>)
-		  in the &quot;ns_section ns/server/${server}/modules&quot; section:
-		</p><pre class="programlisting">
+root:/usr/local/src# tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
+root:/usr/local/src# chown -R root.root Search-OpenFTS-tcl-0.3.2
+root:/usr/local/src# cd Search-OpenFTS-tcl-0.3.2</pre></li><li><p>
+
+          Configure it. Note that you may need to set
+          <tt>--with-tcl=</tt>(your Tcl library
+          location). For Debian, add this to the end of the
+          <tt>./configure</tt> command:
+          <tt>--with-tcl=/usr/lib/tcl8.3</tt>
+
+        </p><pre class="programlisting">
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver</pre></li><li><p>
+
+          Then compile it, copy the module to your AOLserver
+          <tt>bin</tt> directory, and copy the TCL
+          files to your AOLserver <tt>tcl</tt>
+          directory:
+
+        </p><pre class="programlisting">
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cd aolserver
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# make
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# cp nsfts.so /usr/local/aolserver/bin
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2/aolserver# cd ..</pre></li><li><p>
+
+          Load the tsearch module SQL into your database and then compile
+          the openfts module in the Postgresql contrib directory.
+
+        </p><pre class="programlisting">
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib
+root:/usr/local/src/Search-OpenFTS-tcl-0.3.2# cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# make
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# su postgres
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ make install
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ /usr/local/pgsql/bin/psql birdnotes -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ /usr/local/pgsql/bin/psql birdnotes -f openfts.sql
+postgres:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts$ exit
+root:/usr/local/postgresql-7.2.3/contrib/pgsql_contrib_openfts# exit</pre></li><li><p>
+
+          Uncomment the following line in your aolserver config file (in our
+          example:
+          <tt>~/web/birdnotes/nsd.tcl</tt>)
+          in the &quot;ns_section ns/server/${server}/modules&quot; section:
+
+        </p><pre class="programlisting">
         ns_param   nsfts           ${bindir}/nsfts.so</pre></li><li><p>
-		  Load the openFTS code into your database:
-		</p><pre class="programlisting">
-nsadmin:/usr/local/src/Search-OpenFTS-tcl-0.2/aolserver$ cd
-nsadmin:~$ psql -f /web/<span class="emphasis"><em>birdnotes</em></span>/packages/openfts-driver/sql/postgresql/load.sql <span class="emphasis"><em>birdnotes</em></span>
-nsadmin:~$ restart-aolserver <span class="emphasis"><em>birdnotes</em></span></pre></li><li><p>
-		  Open a browser and go to your server
-		  (http://yourserver:port). Click on the &quot;Package Manager&quot; link in
-		  the &quot;Quick Links&quot; section on the right side of the page.
-		</p></li><li><p>
-		  Click on the &quot;Install packages&quot; link and follow the instructions
-		  to install the Note package and the OpenFTS Driver 4.2 package.
-		</p></li><li><p>
-		  Restart your server.
+          Open a browser and go to your server
+          (http://yourserver:port). Click on the &quot;Package Manager&quot; link in
+          the &quot;Quick Links&quot; section on the right side of the page.
+        </p></li><li><p>
+          Click on the &quot;Install packages&quot; link and follow the instructions
+          to install the Note package and the OpenFTS Driver 4.2 package.
+        </p></li><li><p>
+          Restart your server.
 
-		  <pre class="programlisting">
-nsadmin:~$ restart-aolserver <span class="emphasis"><em>birdnotes</em></span></pre>
-		</p></li><li><p> 
-		  Give the server a few minutes to restart and then go back to your
-		  server's front page and click on &quot;Site Map&quot; from the &quot;Quick
-		  Links&quot; 
-		</p></li><li><p> 		  
-		  Create a &quot;new sub folder&quot; under &quot;Main Site&quot;. Call the url
-		  &quot;openfts&quot;.  
-		</p></li><li><p> Click &quot;mount&quot; to mount the OpenFTS driver at the url
-		  &quot;openfts&quot; (despite what the system says about these packages not
-		  being meant to be mounted)
-		</p></li><li><p>Click on &quot;Set parameters&quot; for the OpenFTS instance
-		  and make sure that openfts_tcl_src_path properly points to your
-		  local copy of the Search package source code. If you've followed
-		  these directions strictly, you shouldn't need to change it.
-		</p></li><li><p>
-		  Create another folder under &quot;Main Site&quot; at the url
-		  &quot;search&quot;. Create a &quot;new application&quot;. Call the application
-		  &quot;Search&quot; and choose the &quot;Search&quot; package from the drop-down list.
-		  </p></li><li><p>
-		  Create a third folder under &quot;Main Site&quot; at the url
-		  &quot;notes&quot;. Create a &quot;new application&quot;. Call the application &quot;Notes&quot;
-		  and choose the &quot;Note&quot; package from the drop-down list.
-		  </p></li><li><p>
-		  Restart the server.
-		</p></li><li><p> 
-		  Return to your home page. Near the bottom of the page, Click on
-		  the &quot;OpenFTS Driver&quot; link. Then click on
-		  &quot;Administration&quot;. Finally, click on &quot;Initialize OpenFTS
-		  Engine&quot;. Accept the defaults and continue.
-		</p></li><li><p> 
-		  Click on the &quot;Main Site&quot; link to get back to the home page. Now,
-		  click on the &quot;ACS Service Contract&quot; link near the bottom of the
-		  home page.  
-		</p></li><li><p>
-		  Click on the link to &quot;install&quot; the FtsEngineDriver. Also, click
-		  the link to install the Note content provider.
-		</p></li><li><p>
-		  Restart the server. You can try inserting some notes and then
-		  going to the search page to search for stuff. Note that the
-		  content may not get indexed immediately, so give it a few
-		  minutes.
-		</p></li></ol></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="credits.html">Next</a></td></tr><tr><td width="40%" align="left">Install OpenACS 4.5&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Credits</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+          <pre class="programlisting">
+joeuser:~$ svc -t /service/<span class="emphasis"><em>birdnotes</em></span></pre>
+        </p></li><li><p> 
+          Give the server a few minutes to restart and then go back to your
+          server's front page and click on &quot;Site Map&quot; from the &quot;Quick
+          Links&quot; 
+        </p></li><li><p>        
+          Create a &quot;new sub folder&quot; under &quot;Main Site&quot;. Call the url
+          &quot;openfts&quot;.  
+        </p></li><li><p> Click &quot;mount&quot; to mount the OpenFTS driver at the url
+          &quot;openfts&quot; (despite what the system says about these packages not
+          being meant to be mounted)
+        </p></li><li><p>
+
+          Click the &quot;Set parameters&quot; link next to OpenFTS. Change the
+          <tt>openfts_tcl_src_path</tt> to
+          <tt>/usr/local/src/Search-OpenFTS-tcl-0.3.2</tt>
+
+        </p></li><li><p>
+          Create another folder under &quot;Main Site&quot; at the url
+          &quot;search&quot;. Create a &quot;new application&quot;. Call the application
+          &quot;Search&quot; and choose the &quot;Search&quot; package from the drop-down list.
+          </p></li><li><p>
+          Create a third folder under &quot;Main Site&quot; at the url
+          &quot;notes&quot;. Create a &quot;new application&quot;. Call the application &quot;Notes&quot;
+          and choose the &quot;Note&quot; package from the drop-down list.
+          </p></li><li><p>
+          Restart the server.
+        </p></li><li><p> 
+          Return to your home page. Near the bottom of the page, Click on
+          the &quot;OpenFTS Driver&quot; link. Then click on
+          &quot;Administration&quot;. Finally, click on &quot;Initialize OpenFTS
+          Engine&quot;. Accept the defaults and continue.
+        </p></li><li><p> 
+          Click on the &quot;Main Site&quot; link to get back to the home page. Now,
+          click on the &quot;ACS Service Contract&quot; link near the bottom of the
+          home page.  
+        </p></li><li><p>
+          Click on the link to &quot;install&quot; the FtsEngineDriver. Also, click
+          the link to install the Note content provider.
+        </p></li><li><p>
+          Restart the server. You can try inserting some notes and then
+          going to the search page to search for stuff. Note that the
+          content may not get indexed immediately, so give it a few
+          minutes.
+        </p></li></ol></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="credits.html">Next</a></td></tr><tr><td width="40%" align="left">Install OpenACS 4.6&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Credits</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/nextsteps.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/object-identity.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-identity.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/object-identity.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/object-identity.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,20 +1,20 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Object Identity</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 5. Other Developer Resources"><link rel="previous" href="parties.html" title="Parties in OpenACS 4.5"><link rel="next" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="parties.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-identity"></a>Object Identity</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Object Identity</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="previous" href="permissions-tediously-explained.html" title="OpenACS 4.x Permissions Tediously Explained"><link rel="next" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-tediously-explained.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-identity"></a>Object Identity</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>One of the major design features of OpenACS 4.5 is the explicit representation
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>One of the major design features of OpenACS 4.6 is the explicit representation
 of <span class="emphasis"><em>object identity</em></span>. The reason I say &quot;explicit
 representation&quot; is because the concept of object identity has been
 around forever. It is inherent to our problem domain. Consider the example of
 3.x style scoping. The 3.x data models use the triple (user_id, group_id,
-scope) to <span class="emphasis"><em>identify</em></span> an <span class="emphasis"><em>object</em></span>. In the 4.5 data model this
+scope) to <span class="emphasis"><em>identify</em></span> an <span class="emphasis"><em>object</em></span>. In the 4.6 data model this
 object is <span class="emphasis"><em>explicitly represented</em></span> by a single party_id.</p><p>Another good example of this is can be found in the user groups data
 model. The 3.x user groups data model contains another example of an
 <span class="emphasis"><em>implied identity</em></span>. Every mapping between a user and a group could
 have an arbitrary number of attached values (user_group_member_fields, etc.).
 In this case it is the pair (group_id, user_id) that implicitly refers to an
-object (the person's membership in a group). In the 4.5 data model this
+object (the person's membership in a group). In the 4.6 data model this
 object identity is made explicit by adding an integer primary key to the
 table that maps users to groups.</p><p>Coming from a purely relational world, this might seem slightly weird at
 first. The pair (group_id, user_id) is sufficient to uniquely identify the
@@ -33,6 +33,4 @@
 even capable of fully tracking the history of membership state.</p><p>The design choice of explicitly representing object identity with an
 integer primary key that is derived from a globally unique sequence is the
 key to eliminating redundant code and replacing it with generic <span class="emphasis"><em>object
-level services</em></span>.</p><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parties.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr><tr><td width="40%" align="left">Parties in OpenACS 4.5&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Programming with AOLserver</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+level services</em></span>.</p><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions-tediously-explained.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.x Permissions Tediously Explained&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Programming with AOLserver</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/object-identity.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/object-system-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/object-system-design.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/object-system-design.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Object Model Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="object-system-requirements.html" title="OpenACS 4 Object Model Requirements"><link rel="next" href="permissions-requirements.html" title="OpenACS 4 Permissions Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-system-design"></a>OpenACS 4 Object Model Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Object Model Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="object-system-requirements.html" title="OpenACS 4 Object Model Requirements"><link rel="next" href="permissions-requirements.html" title="OpenACS 4 Permissions Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-system-design"></a>OpenACS 4 Object Model Design</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a>,
    <a href="mailto:mcyoon@arsdigita.com" target="_top">Michael Yoon</a>,
    <a href="mailto:richardl@arsdigita.com" target="_top">Richard Li</a>
@@ -37,7 +37,7 @@
 object type (e.g. users) to instances of another object type (e.g.
 groups).
 </p></li></ul></div><p>The next section will explore these facilities in the context of the the
-particular programming idioms that we wish to generalize.</p><p><span class="strong">Related Links</span></p><p>This design document should be read along with the design documents for <a href="groups-design.html" title="OpenACS 4 Groups Design">the new groups system</a>, <a href="subsites-design.html" title="OpenACS 4 Subsites Design Document">subsites</a> and <a href="permissions-design.html" title="OpenACS 4 Permissions Design">the permissions system</a></p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-history"></a>History</h3></div></div><p>The motivation for most of the facilities in the OpenACS 4 Object Model can be
+particular programming idioms that we wish to generalize.</p><p><span class="strong"><em>Related Links</em></span></p><p>This design document should be read along with the design documents for <a href="groups-design.html" title="OpenACS 4 Groups Design">the new groups system</a>, <a href="subsites-design.html" title="OpenACS 4 Subsites Design Document">subsites</a> and <a href="permissions-design.html" title="OpenACS 4 Permissions Design">the permissions system</a></p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-history"></a>History</h3></div></div><p>The motivation for most of the facilities in the OpenACS 4 Object Model can be
 understood in the context of the 3.x code base and the kinds of programming
 idioms that evolved there. These are listed and discussed below.</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="objects-design-object-ident"></a>Object Identification</h4></div></div><p>Object identification is a central mechanism in OpenACS 4. Every application
 object in OpenACS 4 has a unique ID which is mapped to a row in a central table
@@ -77,14 +77,14 @@
 make sure every object the system is to manage is associated with a row in
 <tt>acs_objects</tt>. More importantly, if they do this, new services
 like general comments can be created without requiring existing applications
-to &quot;hook into&quot; them via new metadata.</p><p><span class="strong">Note:</span> Object identifiers are a good example of metadata
+to &quot;hook into&quot; them via new metadata.</p><p><span class="strong"><em>Note:</em></span> Object identifiers are a good example of metadata
 in the new system. Each row in <tt>acs_objects</tt> stores information
 <span class="emphasis"><em>about</em></span> the application object, but not the application object itself.
 This becomes more clear if you skip ahead and look at the SQL schema code
 that defines this table.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="objects-design-obj-context"></a>Object Context and Access Control</h4></div></div><p>Until the implementation of the general permissions system, every OpenACS
 application had to manage access control to its data separately. Later on, a
 notion of &quot;scoping&quot; was introduced into the core data model.</p><p>&quot;Scope&quot; is a term best explained by example. Consider some
-hypothetical rows in the <tt>address_book</tt> table:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col></colgroup><tbody><tr><td><span class="strong">...</span></td><td><span class="strong"><tt>scope</tt></span></td><td><span class="strong"><tt>user_id</tt></span></td><td><span class="strong"><tt>group_id</tt></span></td><td><span class="strong">...</span></td></tr><tr><td>...</td><td><tt>user</tt></td><td><tt>123</tt></td><td>�</td><td>...</td></tr><tr><td>...</td><td><tt>group</tt></td><td>�</td><td><tt>456</tt></td><td>...</td></tr><tr><td>...</td><td><tt>public</tt></td><td>�</td><td>�</td><td>...</td></tr></tbody></table></div></blockquote><p>The first row represents an entry in User 123's personal address book,
+hypothetical rows in the <tt>address_book</tt> table:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>...</em></span></td><td><span class="strong"><em><tt>scope</tt></em></span></td><td><span class="strong"><em><tt>user_id</tt></em></span></td><td><span class="strong"><em><tt>group_id</tt></em></span></td><td><span class="strong"><em>...</em></span></td></tr><tr><td>...</td><td><tt>user</tt></td><td><tt>123</tt></td><td>�</td><td>...</td></tr><tr><td>...</td><td><tt>group</tt></td><td>�</td><td><tt>456</tt></td><td>...</td></tr><tr><td>...</td><td><tt>public</tt></td><td>�</td><td>�</td><td>...</td></tr></tbody></table></div></blockquote><p>The first row represents an entry in User 123's personal address book,
 the second row represents an entry in User Group 456's shared address
 book, and the third row represents an entry in the site's public address
 book.</p><p>In this way, the scoping columns identify the security context in which a
@@ -245,8 +245,8 @@
 the more limited domain of the metadata model, this is acceptable since the
 type hierarchy is fairly small. But the object system data model is not
 designed to support, for example, a huge type tree like the Java runtime
-libraries might define.</p><p>This last point cannot be over-stressed: <span class="strong">the object model is not
-meant to be used for large scale application data storage</span>. It is
+libraries might define.</p><p>This last point cannot be over-stressed: <span class="strong"><em>the object model is not
+meant to be used for large scale application data storage</em></span>. It is
 meant to represent and store metadata, not application data.</p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-datamodel"></a>Data Model</h3></div></div><p>Like most data models, the OpenACS Core data model has two levels:</p><div class="orderedlist"><ol type="1"><li><p>The <span class="emphasis"><em>knowledge level</em></span> (i.e. the metadata model)</p></li><li><p>The <span class="emphasis"><em>operational level</em></span> (i.e. the concrete data model)</p></li></ol></div><p>
 You can browse the data models themselves from here: 
 </p><div class="itemizedlist"><ul type="disc"><li><p><a href="/doc/sql/display-sql?url=acs-metadata-create.sql&amp;package_key=acs-kernel" target="_top">
@@ -861,5 +861,5 @@
 type mechanism is a bit more complex, but in return it provides functionality
 on par with the old user/groups system in a more general way.</p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-future"></a>Future Improvements/Areas of Likely Change</h3></div></div><p>Nothing here yet.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-authors"></a>Authors</h3></div></div><p><a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a> generated this document
 from material culled from other documents by <a href="mailto:mcyoon@arsdigita.com" target="_top">Michael Yoon</a>, <a href="mailto:richardl@arsdigita.com" target="_top">Richard Li</a> and <a href="mailto:rhs@arsdigita.com" target="_top">Rafael Schloming</a>. But, any remaining lies
-are his and his alone.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-revision-hist"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/09/2000</td><td>Pete Su</td></tr><tr><td>0.2</td><td>Edited for ACS 4 Beta</td><td>9/30/2000</td><td>Kai Wu</td></tr><tr><td>0.3</td><td>Edited for ACS 4.0.1, fixed some mistakes, removed use of term
+are his and his alone.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-design-revision-hist"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/09/2000</td><td>Pete Su</td></tr><tr><td>0.2</td><td>Edited for ACS 4 Beta</td><td>9/30/2000</td><td>Kai Wu</td></tr><tr><td>0.3</td><td>Edited for ACS 4.0.1, fixed some mistakes, removed use of term
 &quot;OM&quot;</td><td>11/07/2000</td><td>Pete Su</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-system-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="permissions-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Object Model Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Permissions Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/object-system-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/object-system-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Object Model Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="kernel-overview.html" title="Overview"><link rel="next" href="object-system-design.html" title="OpenACS 4 Object Model Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-system-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-system-requirements"></a>OpenACS 4 Object Model Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Object Model Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="kernel-overview.html" title="Overview"><link rel="next" href="object-system-design.html" title="OpenACS 4 Object Model Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-system-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="object-system-requirements"></a>OpenACS 4 Object Model Requirements</h2></div></div><div class="authorblurb"><p>
 By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -24,7 +24,7 @@
 within the OpenACS, and typically corresponds to a single row within the
 relational database.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-vision"></a>Vision Statement</h3></div></div><p>The OpenACS 4 Object Model must address five high-level requirements that
 repeatedly exhibit themselves in the context of existing services in OpenACS 3.x,
-as described below.</p><p><span class="strong">Object Identifiers for General Services</span></p><p>Generic services require a single unambiguous way of identifying
+as described below.</p><p><span class="strong"><em>Object Identifiers for General Services</em></span></p><p>Generic services require a single unambiguous way of identifying
 application objects that they manage or manipulate. In OpenACS 3.x, there are
 several different idioms that construct object identifiers from other data.
 Many modules use a <tt>(user_id, group_id, scope)</tt> triple combination
@@ -46,12 +46,12 @@
 that their definition and use is ad-hoc and inconsistent. This makes the
 construction of generic application-independent services difficult.
 Therefore, the OpenACS 4 Object Model should provide a centralized and uniform
-mechanism for tagging application objects with unique identifiers.</p><p><span class="strong">Support for Unified Access Control</span></p><p>Access control should be as transparent as possible to the application
+mechanism for tagging application objects with unique identifiers.</p><p><span class="strong"><em>Support for Unified Access Control</em></span></p><p>Access control should be as transparent as possible to the application
 developer. Until the implementation of the general permissions system, every
 OpenACS application had to manage access control to its data separately. Later
 on, a notion of &quot;scoping&quot; was introduced into the core data
 model.</p><p>&quot;Scope&quot; is a term best explained by example. Consider some
-hypothetical rows in the <tt>address_book</tt> table:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">...</span></td><td><span class="strong"><tt>scope</tt></span></td><td><span class="strong"><tt>user_id</tt></span></td><td><span class="strong"><tt>group_id</tt></span></td><td><span class="strong">...</span></td></tr><tr><td>...</td><td><tt>user</tt></td><td><tt>123</tt></td><td>�</td><td>...</td></tr><tr><td>...</td><td><tt>group</tt></td><td>�</td><td><tt>456</tt></td><td>...</td></tr><tr><td>...</td><td><tt>public</tt></td><td>�</td><td>�</td><td>...</td></tr></tbody></table></div></blockquote><p>The first row represents an entry in User 123's personal address book,
+hypothetical rows in the <tt>address_book</tt> table:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>...</em></span></td><td><span class="strong"><em><tt>scope</tt></em></span></td><td><span class="strong"><em><tt>user_id</tt></em></span></td><td><span class="strong"><em><tt>group_id</tt></em></span></td><td><span class="strong"><em>...</em></span></td></tr><tr><td>...</td><td><tt>user</tt></td><td><tt>123</tt></td><td>�</td><td>...</td></tr><tr><td>...</td><td><tt>group</tt></td><td>�</td><td><tt>456</tt></td><td>...</td></tr><tr><td>...</td><td><tt>public</tt></td><td>�</td><td>�</td><td>...</td></tr></tbody></table></div></blockquote><p>The first row represents an entry in User 123's personal address book,
 the second row represents an entry in User Group 456's shared address
 book, and the third row represents an entry in the site's public address
 book.</p><p>In this way, the scoping columns identify the security context in which a
@@ -65,7 +65,7 @@
 page, a security problem could result.</p><p>Thus the OpenACS 4 Object Model must support a more general access control
 system that allows access control domains to be hierarchical, and specifiable
 with a single piece of data, instead of the old composite keys described
-above.</p><p><span class="strong">Extensible Data Models</span></p><p>Another problem with previous OpenACS data models is that many of the central
+above.</p><p><span class="strong"><em>Extensible Data Models</em></span></p><p>Another problem with previous OpenACS data models is that many of the central
 tables in the system became bloated as they were extended to support an
 increasing number of modules. The <tt>users</tt> table is the best case
 in point: it became full of columns that exist for various special
@@ -83,10 +83,10 @@
 custom extensions to the existing data models, and the OM does the
 bookkeeping necessary to make this easier, providing a generic API for object
 creation that automatically keeps track of the location and relationships
-between data.</p><p><span class="strong">Design Note:</span> While this doesn't really belong in a
+between data.</p><p><span class="strong"><em>Design Note:</em></span> While this doesn't really belong in a
 requirements document, the fact that we are constrained to using relational
 databases means that certain constraints on the overall design of the object
-data model exist, which you can read about in <a href="object-system-design.html#object-system-design-summary">Summary and Design Considerations</a>.</p><p><span class="strong">Modifiable Data Models</span></p><p>Another recurring applications problem is how to store a modifiable data
+data model exist, which you can read about in <a href="object-system-design.html#object-system-design-summary">Summary and Design Considerations</a>.</p><p><span class="strong"><em>Modifiable Data Models</em></span></p><p>Another recurring applications problem is how to store a modifiable data
 model, or how to store information that may change extensively between
 releases or in different client installations. Furthermore, we want to avoid
 changes to an application's database queries in the face of any custom
@@ -103,7 +103,7 @@
 store values for those attributes.</p></li></ul></div><p>Thus the Object Model must provide a general mechanism for applications
 and developers to modify or extend data models, without requiring changes to
 the SQL schema of the system. This ensures that all applications use the same
-base schema, resulting in a uniform and more maintainable system.</p><p><span class="strong">Generic Relations</span></p><p>Many OpenACS applications define simple relationships between application
+base schema, resulting in a uniform and more maintainable system.</p><p><span class="strong"><em>Generic Relations</em></span></p><p>Many OpenACS applications define simple relationships between application
 objects, and tag those relationships with extra data. In OpenACS 3.x, this was
 done using <span class="emphasis"><em>mapping tables</em></span>. The user/groups module has the most
 highly developed data model for this purpose, using a single table called
@@ -127,8 +127,8 @@
 that store metadata on application objects. The object type system supports
 subtyping with inheritance, so new object types can be defined in terms of
 existing object types.</p><p>The OM data model forms the main part of the OpenACS 4 Kernel data model. The
-other parts of the Kernel data model include:</p><div class="itemizedlist"><ul type="disc"><li><p>Parties and Groups</p></li><li><p>Permissions</p></li></ul></div><p>Each of these is documented elsewhere at length.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><p>(Pending as of 8/27/00)</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="object-system-design.html">OpenACS 4 Object Model Design</a></p></li><li><p><a href="objects.html">OpenACS 4.6 Data Models and the Object System</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-data-model"></a>Requirements: Data Model</h3></div></div><p>The data model for the object system provides support for the following
-kinds of schema patterns that are used by many existing OpenACS modules:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">10.0 Object Identification and Storage</span></span></dt><dd><p>Object identification is a central mechanism in the new metadata system.
+other parts of the Kernel data model include:</p><div class="itemizedlist"><ul type="disc"><li><p>Parties and Groups</p></li><li><p>Permissions</p></li></ul></div><p>Each of these is documented elsewhere at length.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><p>(Pending as of 8/27/00)</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="object-system-design.html">OpenACS 4 Object Model Design</a></p></li><li><p><a href="objects.html">OpenACS Data Models and the Object System</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-data-model"></a>Requirements: Data Model</h3></div></div><p>The data model for the object system provides support for the following
+kinds of schema patterns that are used by many existing OpenACS modules:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>10.0 Object Identification and Storage</em></span></span></dt><dd><p>Object identification is a central mechanism in the new metadata system.
 The fact that every object has a known unique identifier means that the core
 can deal with all objects in a generic way. Thus the only action required of
 an application to obtain any general service is to &quot;hook into&quot; the
@@ -149,15 +149,15 @@
 application data. More importantly, object identifiers will enable developers
 to readily build and use generic services that work globally across a
 system.</p><p>The object identifiers should be subject to the following
-requirements:</p><p><span class="strong">10.10 Uniqueness</span></p><p>The object ID should be unique among all the IDs in the entire OpenACS system
-in which the object lives.</p><p><span class="strong">10.20 Useful as a Reference</span></p><p>Applications should be able to use the unique object ID as a reference,
-with which they can fetch any or all of the object's attributes.</p><p><span class="strong">10.30 Storable</span></p><p>Object IDs should be storable in tables. e.g. you should be able to use
+requirements:</p><p><span class="strong"><em>10.10 Uniqueness</em></span></p><p>The object ID should be unique among all the IDs in the entire OpenACS system
+in which the object lives.</p><p><span class="strong"><em>10.20 Useful as a Reference</em></span></p><p>Applications should be able to use the unique object ID as a reference,
+with which they can fetch any or all of the object's attributes.</p><p><span class="strong"><em>10.30 Storable</em></span></p><p>Object IDs should be storable in tables. e.g. you should be able to use
 them to implement mapping tables between objects, to represent
-relationships.</p><p><span class="strong">10.40 Moveable</span></p><p>Objects should be mobile between databases. That is, information will
+relationships.</p><p><span class="strong"><em>10.40 Moveable</em></span></p><p>Objects should be mobile between databases. That is, information will
 often need to be moved between multiple servers (development, staging, and
 production), so a mechanism for moving this data is necessary. In addition, a
 mechanism for tagging these objects in a way similar to CVS would be useful
-in determining which objects need to be synchronized.</p></dd><dt><span class="term"><span class="strong">20.0 Object Types</span></span></dt><dd><p>An <span class="emphasis"><em>object type</em></span> refers to a specification of one or more
+in determining which objects need to be synchronized.</p></dd><dt><span class="term"><span class="strong"><em>20.0 Object Types</em></span></span></dt><dd><p>An <span class="emphasis"><em>object type</em></span> refers to a specification of one or more
 attributes to be managed along with a piece of application data.</p><p>The object system should provide a data model for describing and
 representing object types. This data model is somewhat analogous to the
 Oracle data dictionary, which stores information about all user defined
@@ -170,33 +170,33 @@
 is meant to be a generalization of this mechanism. The data model should
 allow developers to at least do everything they used to with user/groups, but
 without its administrative hassles.</p><p>Therefore, the data model must be able to represent object types that have
-the following characteristics:</p><p><span class="strong">20.10 Type Name</span></p><p>A human readable name for the object type.</p><p><span class="strong">20.20 Type Attributes</span></p><p>Attributes whose values are shared by all instances of the object
-type.</p><p><span class="strong">20.30 Object Attributes</span></p><p>Attributes that are specific to each particular object belonging to a
-given type.</p><p>The data model must also enforce certain constraints on object types:</p><p><span class="strong">20.40 Type Uniqueness</span></p><p>Object type names must be unique.</p><p><span class="strong">20.50 Attribute Name Uniqueness</span></p><p>Attribute names must be unique in the scope of a single object type and
-any of its parent types.</p></dd><dt><span class="term"><span class="strong">30.0 Type Extension</span></span></dt><dd><p>The Object Model must support the definition of object types that are
+the following characteristics:</p><p><span class="strong"><em>20.10 Type Name</em></span></p><p>A human readable name for the object type.</p><p><span class="strong"><em>20.20 Type Attributes</em></span></p><p>Attributes whose values are shared by all instances of the object
+type.</p><p><span class="strong"><em>20.30 Object Attributes</em></span></p><p>Attributes that are specific to each particular object belonging to a
+given type.</p><p>The data model must also enforce certain constraints on object types:</p><p><span class="strong"><em>20.40 Type Uniqueness</em></span></p><p>Object type names must be unique.</p><p><span class="strong"><em>20.50 Attribute Name Uniqueness</em></span></p><p>Attribute names must be unique in the scope of a single object type and
+any of its parent types.</p></dd><dt><span class="term"><span class="strong"><em>30.0 Type Extension</em></span></span></dt><dd><p>The Object Model must support the definition of object types that are
 subtypes of existing types. A subtype inherits all the attributes of its
 parent type, and defines some attributes of its own. A critical aspect of the
 OM is parent types may be altered, and any such change must propagate to
 child subtypes.</p><p>The OM data model must enforce constraints on subtypes that are similar to
-the ones on general object types.</p><p><span class="strong">30.10 Subtype Uniqueness</span></p><p>Subtype names must be unique (this parallels requirement 10.40).</p><p><span class="strong">30.20 Subtype Attribute Name Uniqueness</span></p><p>Attribute names must be unique in the scope of a single object
-subtype.</p><p><span class="strong">30.30 Parent Type Prerequisite</span></p><p>Subtypes must be defined in terms of parent types that, in fact, already
-exist.</p><p><span class="strong">30.40</span></p><p>The extended attribute names in a subtype must not be the same as those in
-its parent type.</p></dd><dt><span class="term"><span class="strong">35.0 Methods</span></span></dt><dd><p><span class="strong">35.10 Method and Type Association</span></p><p>The OM data model should define a mechanism for associating procedural
+the ones on general object types.</p><p><span class="strong"><em>30.10 Subtype Uniqueness</em></span></p><p>Subtype names must be unique (this parallels requirement 10.40).</p><p><span class="strong"><em>30.20 Subtype Attribute Name Uniqueness</em></span></p><p>Attribute names must be unique in the scope of a single object
+subtype.</p><p><span class="strong"><em>30.30 Parent Type Prerequisite</em></span></p><p>Subtypes must be defined in terms of parent types that, in fact, already
+exist.</p><p><span class="strong"><em>30.40</em></span></p><p>The extended attribute names in a subtype must not be the same as those in
+its parent type.</p></dd><dt><span class="term"><span class="strong"><em>35.0 Methods</em></span></span></dt><dd><p><span class="strong"><em>35.10 Method and Type Association</em></span></p><p>The OM data model should define a mechanism for associating procedural
 code, called <span class="emphasis"><em>methods</em></span>, with objects of a given type. Methods are
 associated with the each object <span class="emphasis"><em>type</em></span> - not each object
-<span class="emphasis"><em>instance</em></span>.</p><p><span class="strong">35.20 Method Sharing</span></p><p>All instances of a given object type should share the same set of defined
-methods for that type.</p></dd><dt><span class="term"><span class="strong">40.0 Object Attribute Value Storage</span></span></dt><dd><p>In addition to information on types, the OM data model provides for the
+<span class="emphasis"><em>instance</em></span>.</p><p><span class="strong"><em>35.20 Method Sharing</em></span></p><p>All instances of a given object type should share the same set of defined
+methods for that type.</p></dd><dt><span class="term"><span class="strong"><em>40.0 Object Attribute Value Storage</em></span></span></dt><dd><p>In addition to information on types, the OM data model provides for the
 centralized storage of object attribute values. This facility unifies the
 many ad-hoc attribute/value tables that exist in various OpenACS 3.x data models,
 such as:</p><div class="itemizedlist"><ul type="disc"><li><p>User groups: Each instance of a group type can have custom data.</p></li><li><p>Photo DB: Users can define their own custom metadata to attach to
 photograph objects.</p></li><li><p>Ecommerce: Vendors can attach custom fields to the data model describing
-their products.</p></li></ul></div><p><span class="strong">40.10 Generic Retrieval</span></p><p>Attributes should be stored so that they are retrievable in a way that is
+their products.</p></li></ul></div><p><span class="strong"><em>40.10 Generic Retrieval</em></span></p><p>Attributes should be stored so that they are retrievable in a way that is
 independent of the type of the object that they belong to. That is, the only
 data needed to retrieve an attribute should be the system-wide ID of an
-object (see requirement 10.20 above) and the attribute name.</p><p><span class="strong">40.20 Inherited Attributes</span></p><p>The system should allow for the automatic retrieval of inherited attribute
-values, for an object belonging to a subtype.</p><p><span class="strong">40.30. Constraints on Attributes</span></p><p>The system should allow the developer to put down constraints on the
+object (see requirement 10.20 above) and the attribute name.</p><p><span class="strong"><em>40.20 Inherited Attributes</em></span></p><p>The system should allow for the automatic retrieval of inherited attribute
+values, for an object belonging to a subtype.</p><p><span class="strong"><em>40.30. Constraints on Attributes</em></span></p><p>The system should allow the developer to put down constraints on the
 values that an attribute may hold, for the purposes of maintaining
-application specific integrity rules.</p></dd><dt><span class="term"><span class="strong">50.0 Object Contexts</span></span></dt><dd><p>In OpenACS 3.x, there was a notion of &quot;scope&quot; for application
+application specific integrity rules.</p></dd><dt><span class="term"><span class="strong"><em>50.0 Object Contexts</em></span></span></dt><dd><p>In OpenACS 3.x, there was a notion of &quot;scope&quot; for application
 objects. An object could be belong to one of three scopes: public, group or
 user. This provided a crude way to associate objects with particular scopes
 in the system, but it was awkward to use and limited in flexibility.</p><p>The OpenACS 4 Object Model provides a generalized notion of scope that allows
@@ -205,64 +205,64 @@
 object has no explicit permissions attached to it, then it inherits
 permissions from its context.</p><p>The context data model also forms the basis of the <a href="subsites-requirements.html" title="OpenACS 4 Subsites Requirements">subsites system</a>, and is
 a basic part of the <a href="permissions-requirements.html" title="OpenACS 4 Permissions Requirements">permissions system</a>,
-described in separate documents.</p><p>The context data model should provide the following facilities:</p><p><span class="strong">50.10 Unique ID</span></p><p>Every context should have a unique ID in the system.</p><p><span class="strong">50.20 Tree Structure</span></p><p>The data model should support a tree structured organization of contexts.
+described in separate documents.</p><p>The context data model should provide the following facilities:</p><p><span class="strong"><em>50.10 Unique ID</em></span></p><p>Every context should have a unique ID in the system.</p><p><span class="strong"><em>50.20 Tree Structure</em></span></p><p>The data model should support a tree structured organization of contexts.
 That is, contexts can be logically &quot;contained&quot; within other
 contexts (i.e. contexts have parents) and contexts can contain other contexts
-(i.e. contexts can have children).</p><p><span class="strong">50.30 Data Model Constraints</span></p><p>All objects must have a context ID. This ID must refer to an existing
+(i.e. contexts can have children).</p><p><span class="strong"><em>50.30 Data Model Constraints</em></span></p><p>All objects must have a context ID. This ID must refer to an existing
 context or be NULL. The meaning of a NULL context is determined by the
-implementation.</p><p><span class="strong">Note:</span></p><p>The current system interprets the NULL context as meaning the default
+implementation.</p><p><span class="strong"><em>Note:</em></span></p><p>The current system interprets the NULL context as meaning the default
 &quot;site-wide&quot; context in some sense. I wanted to note this fact for
 others, but there is no need to make this a requirement of the system. I
 think it would be reasonable to have a NULL context be an error (psu
-8/24/2000).</p></dd><dt><span class="term"><span class="strong">55.0 Object Relations</span></span></dt><dd><p>The data model should include a notion of pair-wise relations between
+8/24/2000).</p></dd><dt><span class="term"><span class="strong"><em>55.0 Object Relations</em></span></span></dt><dd><p>The data model should include a notion of pair-wise relations between
 objects. Relations should be able to record simple facts of the form
 &quot;object X is related to object Y by relationship R,&quot; and also be
-able to attach attributes to these facts.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-api"></a>Requirements: API</h3></div></div><p>The API should let programmers accomplish the following actions:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">60.0 Object Type Creation</span></span></dt><dd><p><span class="strong">60.10 Create a New Object Type</span></p><p>The object system API should provide a procedure call that creates a new
+able to attach attributes to these facts.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-api"></a>Requirements: API</h3></div></div><p>The API should let programmers accomplish the following actions:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><em>60.0 Object Type Creation</em></span></span></dt><dd><p><span class="strong"><em>60.10 Create a New Object Type</em></span></p><p>The object system API should provide a procedure call that creates a new
 object type by running the appropriate transactions on the object system data
 model. This API call is subject to the constraints laid out in the data
-model. We call this operation &quot;instantiating&quot; an object.</p><p><span class="strong">60.20 Create a New Object Subtype</span></p><p>The object system API should provide a procedure call for creating
+model. We call this operation &quot;instantiating&quot; an object.</p><p><span class="strong"><em>60.20 Create a New Object Subtype</em></span></p><p>The object system API should provide a procedure call for creating
 subtypes of a given type. Operationally, this API is the same as requirement
 60.10. Instances of subtypes automatically contain all attributes of the
 parent type in addition to all attributes of the subtype. This API is subject
-to the constraints laid out in the data model.</p><p><span class="strong">60.30 Create a New Relation Type</span></p><p>There should be an API call to create a new type of object relation.
+to the constraints laid out in the data model.</p><p><span class="strong"><em>60.30 Create a New Relation Type</em></span></p><p>There should be an API call to create a new type of object relation.
 Relation types can be modeled as object types. The API below for manipulating
-attributes can then be used to add attributes to relation types.</p></dd><dt><span class="term"><span class="strong">70.0 Update an Object Type</span></span></dt><dd><p>The object system API must allow the programmer to modify, add, and delete
+attributes can then be used to add attributes to relation types.</p></dd><dt><span class="term"><span class="strong"><em>70.0 Update an Object Type</em></span></span></dt><dd><p>The object system API must allow the programmer to modify, add, and delete
 attributes from any object type. Updates should be propagated to any child
 subtypes. This API is subject to the constraints laid out in the data
-model.</p></dd><dt><span class="term"><span class="strong">80.0 Delete an Object Type</span></span></dt><dd><p>The system provides an API call for deleting an object type.</p><p><span class="strong">80.10</span></p><p>Deleting an object type destroys all instances of the type. It should be
+model.</p></dd><dt><span class="term"><span class="strong"><em>80.0 Delete an Object Type</em></span></span></dt><dd><p>The system provides an API call for deleting an object type.</p><p><span class="strong"><em>80.10</em></span></p><p>Deleting an object type destroys all instances of the type. It should be
 an error to delete types that have dependent subtypes. This API is subject to
-the constraints laid out in the data model.</p><p><span class="strong">80.10.10</span></p><p>However, the programmer should also be able to specify that all the
+the constraints laid out in the data model.</p><p><span class="strong"><em>80.10.10</em></span></p><p>However, the programmer should also be able to specify that all the
 subtypes and instances of those subtypes be destroyed before destroying the
 object type. This is similar to a &quot;delete cascade&quot; constraint in
-SQL.</p></dd><dt><span class="term"><span class="strong">90.0 Object Instance Creation and Destruction</span></span></dt><dd><p>The system must provide API calls to manage the creation and destruction
-of object instances.</p><p><span class="strong">90.10 Create an Instance of an Object Type</span></p><p>The system should provide an API call for creating a new instance of a
+SQL.</p></dd><dt><span class="term"><span class="strong"><em>90.0 Object Instance Creation and Destruction</em></span></span></dt><dd><p>The system must provide API calls to manage the creation and destruction
+of object instances.</p><p><span class="strong"><em>90.10 Create an Instance of an Object Type</em></span></p><p>The system should provide an API call for creating a new instance of a
 given object type. The new instance should be populated with values for each
 of the attributes specified in the definition of the type. In addition, it
 should be possible to create the new instance with an optional context ID
-that refers to the default context that the object will live in.</p><p><span class="strong">90.20 Delete an Object Instance</span></p><p>The OM should provide an API call for object deletion. Objects can be
+that refers to the default context that the object will live in.</p><p><span class="strong"><em>90.20 Delete an Object Instance</em></span></p><p>The OM should provide an API call for object deletion. Objects can be
 deleted only when no other objects in the system refer to them. Since it
 might not be practical to provide a mechanism like &quot;delete cascade&quot;
 here in a reliable way, providing such a facility in the system is
-optional.</p></dd><dt><span class="term"><span class="strong">94.0 Object Relation Creation and Destruction</span></span></dt><dd><p>The system must provide API calls to manage the creation and destruction
-of object relations.</p></dd><dt><span class="term"><span class="strong">94.10 Create an Object Relation</span></span></dt><dd><p>The OM must provide an API call to declare that two objects are related to
+optional.</p></dd><dt><span class="term"><span class="strong"><em>94.0 Object Relation Creation and Destruction</em></span></span></dt><dd><p>The system must provide API calls to manage the creation and destruction
+of object relations.</p></dd><dt><span class="term"><span class="strong"><em>94.10 Create an Object Relation</em></span></span></dt><dd><p>The OM must provide an API call to declare that two objects are related to
 each other by a given relation type. This API call should also allow
-programmers to attach attributes to this object relation.</p></dd><dt><span class="term"><span class="strong">94.20 Destroy an Object Relation</span></span></dt><dd><p>There should be an API call for destroying object relations and their
-attributes.</p></dd><dt><span class="term"><span class="strong">95.10 Create and Destroy Contexts</span></span></dt><dd><p>The system should provide an API to create and destroy object
-contexts.</p></dd><dt><span class="term"><span class="strong">100.10 Set Attribute Values for an Object</span></span></dt><dd><p>The system should provide an API for updating the attribute values of a
-particular instance of an object type.</p></dd><dt><span class="term"><span class="strong">110.10 Get Attribute Values for an Object</span></span></dt><dd><p>The system should provide an API for retrieving attribute values from a
-particular instance of an object type.</p></dd><dt><span class="term"><span class="strong">120.10 Efficiency</span></span></dt><dd><p>The Object Model must support the efficient storage and retrieval of
+programmers to attach attributes to this object relation.</p></dd><dt><span class="term"><span class="strong"><em>94.20 Destroy an Object Relation</em></span></span></dt><dd><p>There should be an API call for destroying object relations and their
+attributes.</p></dd><dt><span class="term"><span class="strong"><em>95.10 Create and Destroy Contexts</em></span></span></dt><dd><p>The system should provide an API to create and destroy object
+contexts.</p></dd><dt><span class="term"><span class="strong"><em>100.10 Set Attribute Values for an Object</em></span></span></dt><dd><p>The system should provide an API for updating the attribute values of a
+particular instance of an object type.</p></dd><dt><span class="term"><span class="strong"><em>110.10 Get Attribute Values for an Object</em></span></span></dt><dd><p>The system should provide an API for retrieving attribute values from a
+particular instance of an object type.</p></dd><dt><span class="term"><span class="strong"><em>120.10 Efficiency</em></span></span></dt><dd><p>The Object Model must support the efficient storage and retrieval of
 object attributes. Since the OM is intended to form the core of many general
 services in the OpenACS, and these services will likely make extensive use of the
 OM tables, queries on these tables must be fast. The major problem here seems
 to be supporting subtyping and inheritance in a way that does not severely
-impact query performance.</p></dd><dt><span class="term"><span class="strong">130.10 Ease of Use</span></span></dt><dd><p>Most OpenACS packages will be expected to use the Object Model in one way or
+impact query performance.</p></dd><dt><span class="term"><span class="strong"><em>130.10 Ease of Use</em></span></span></dt><dd><p>Most OpenACS packages will be expected to use the Object Model in one way or
 another. Since it is important that the largest audience of developers
 possible adopts and uses the OM, it must be easy to incorporate into
 applications, and it must not impose undue requirements on an
 application's data model. In other words, it should be easy to &quot;hook
 into&quot; the object model, and that ability should not have a major impact
-on the application data model.</p><p><span class="strong">Note:</span> Is the API the only way to obtain values? How does
-this integrate with application level SQL queries?</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/10/2000</td><td>Bryan Quinn</td></tr><tr><td>0.2</td><td>Major re-write</td><td>08/11/2000</td><td>Pete Su</td></tr><tr><td>0.3</td><td>Draft completed after initial reviews</td><td>08/22/2000</td><td>Pete Su</td></tr><tr><td>0.4</td><td>Edited, updated to conform to requirements template, pending freeze</td><td>08/23/2000</td><td>Kai Wu</td></tr><tr><td>�</td><td>Final edits before freeze</td><td>08/24/2000</td><td>Pete Su</td></tr><tr><td>0.5</td><td>Edited for consistency</td><td>08/27/2000</td><td>Kai Wu</td></tr><tr><td>0.6</td><td>Put Object ID stuff first, because it makes more sense</td><td>08/28/2000</td><td>Pete Su</td></tr><tr><td>0.7</td><td>Added requirement that knowledge-level objects must be moveable between
+on the application data model.</p><p><span class="strong"><em>Note:</em></span> Is the API the only way to obtain values? How does
+this integrate with application level SQL queries?</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="object-system-requirements-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/10/2000</td><td>Bryan Quinn</td></tr><tr><td>0.2</td><td>Major re-write</td><td>08/11/2000</td><td>Pete Su</td></tr><tr><td>0.3</td><td>Draft completed after initial reviews</td><td>08/22/2000</td><td>Pete Su</td></tr><tr><td>0.4</td><td>Edited, updated to conform to requirements template, pending freeze</td><td>08/23/2000</td><td>Kai Wu</td></tr><tr><td>�</td><td>Final edits before freeze</td><td>08/24/2000</td><td>Pete Su</td></tr><tr><td>0.5</td><td>Edited for consistency</td><td>08/27/2000</td><td>Kai Wu</td></tr><tr><td>0.6</td><td>Put Object ID stuff first, because it makes more sense</td><td>08/28/2000</td><td>Pete Su</td></tr><tr><td>0.7</td><td>Added requirement that knowledge-level objects must be moveable between
 databases.</td><td>08/29/2000</td><td>Richard Li</td></tr><tr><td>0.8</td><td>Rewrote intro to match language and concepts in the design document. Also
 cleaned up usage a bit in the requirements section. Added short vague
 requirements on relation types.</td><td>09/06/2000</td><td>Pete Su</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release.</td><td>09/30/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="object-system-design.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Object Model Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/object-system-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/objects.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/objects.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/objects.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.5 Data Models and the Object System</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="packages.html" title="OpenACS 4.5 Packages"><link rel="next" href="request-processor.html" title="The Request Processor"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="packages.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="request-processor.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="objects"></a>OpenACS 4.5 Data Models and the Object System</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Data Models and the Object System</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="packages.html" title="OpenACS 4.6 Packages"><link rel="next" href="request-processor.html" title="The Request Processor"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="packages.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="request-processor.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="objects"></a>OpenACS Data Models and the Object System</h2></div></div><div class="authorblurb"><p>
 By Pete Su
 <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="objects-overview"></a>Overview</h3></div></div><p>
-Developing data models in OpenACS 4.5 is much like developing data models
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="objects-overview"></a>Overview</h3></div></div><p>
+Developing data models in OpenACS 4.6 is much like developing data models
 for OpenACS 3, save for the implementation.  As usual, you need to examine
 how to model the information that the application must store and
 manipulate, and define a suitable set of SQL tables.  In our Notes
@@ -28,12 +28,12 @@
 Thinking further ahead, we can imagine doing any of the following
 things with Notes as well:
 </p><div class="itemizedlist"><ul type="opencircle"><li style="list-style-type: opencircle"><p>Define access control policies on notes.</p></li><li style="list-style-type: opencircle"><p>Attach user comments on notes.</p></li><li style="list-style-type: opencircle"><p>Allow users to define custom fields to store on their notes.</p></li><li style="list-style-type: opencircle"><p>Automatically generate input forms or output displays for notes.</p></li><li style="list-style-type: opencircle"><p>Allow other applications to use notes in ways we don't know of yet.</p></li></ul></div><p>
-In OpenACS 4.5, the key to enabling these types of services on your
+In OpenACS, the key to enabling these types of services on your
 application data is to take advantage of the Object System.  The first
 question, then, is &quot;Just what are objects, and what do
 you use them for anyway?&quot;.  The short answer: objects are anything
 represented in the application's data model that will need to be
-managed by any central service in OpenACS 4.5, or that may be reusable in
+managed by any central service in OpenACS, or that may be reusable in
 the context of future applications. Every object in the system is
 represented using a row in the <tt>acs_objects</tt> table. This
 table defines all the standard attributes that are stored on every
@@ -63,8 +63,8 @@
 new <span class="emphasis"><em>object type</em></span>. Object types are analogous to classes in
 programming languages such as C++ and Java. In Java, a
 class defines a set of attributes that store data and a set of methods
-that run code. In OpenACS 4.5, we use one or more Oracle tables to store the
-data attributes, and we define a PL/SQL package to hold procedures to
+that run code. In OpenACS, we use one or more database tables to store the
+data attributes, and we define a stored procedure package to hold procedures to
 define the programming interface to the data model.
 </p><p>
 The object type itself is described using data in the
@@ -80,8 +80,8 @@
 </p><p>
 Fire up your text editor and open the
 <tt>ROOT/packages/notes/sql/oracle/notes-create.sql</tt> (<tt>ROOT/packages/notes/sql/postgresql/notes-create.sql</tt> for the PG version) file created
-when we <a href="packages.html" title="OpenACS 4.5 Packages">created the package</a>.  Then, do the following:
-</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2846754"></a>Describe the new type to the type system</h4></div></div><p>
+when we <a href="packages.html" title="OpenACS 4.6 Packages">created the package</a>.  Then, do the following:
+</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2849462"></a>Describe the new type to the type system</h4></div></div><p>
 First, add an entry to the <tt>acs_object_types</tt> table with the following PL/SQL call:
 </p><pre class="programlisting">
 begin  
@@ -141,7 +141,7 @@
 because the new type <tt>note</tt> is a subtype of
 <tt>acs_object</tt>, it will inherit these attributes, so there is
 no need for us to define them.
-</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2846917"></a>Define a table in which to store your objects</h4></div></div><p>
+</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2849624"></a>Define a table in which to store your objects</h4></div></div><p>
 The next thing we do is make a small modification to the data model to
 reflect the fact that each row in the <tt>notes</tt> table
 represents something that is not only an object of type
@@ -166,7 +166,7 @@
 use the <tt>acs_objects</tt> table to find objects will
 transparently find any objects that are instances of any subtype of
 <tt>acs_objects</tt>.
-</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2847040"></a>Define a package for type specific procedures</h4></div></div><p>
+</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2849747"></a>Define a package for type specific procedures</h4></div></div><p>
 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:
@@ -197,7 +197,7 @@
 You might be wondering what all the extra parameters are to these
 calls, since we haven't mentioned them before.  These parameters are
 needed to fill out information that will be stored about the object
-that's not stored directly in the table you defined. The OpenACS 4.5 Object
+that's not stored directly in the table you defined. The OpenACS Object
 System defines these attributes on the type <tt>acs_object</tt>
 since all objects should have these attributes. Internally, there are
 tables that store this information for you. Most of the data is pretty
@@ -214,7 +214,7 @@
 object OBJ was &quot;read only&quot;, then any other object that used OBJ as its
 context would also be &quot;read only&quot; by default. We'll talk about this more
 later.
-</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2847145"></a>Define a package body for type specific procedures</h4></div></div><p>
+</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="id2849852"></a>Define a package body for type specific procedures</h4></div></div><p>
 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
 <tt>acs_object.new</tt> to insert a row into
@@ -317,7 +317,7 @@
 models that are meant to be integrated with the OpenACS object
 system. 
 </p><p>
-There are two basic rules you should follow when designing OpenACS 4.5 data
+There are two basic rules you should follow when designing OpenACS 4.6 data
 models:
 
 
@@ -372,7 +372,7 @@
 requires a good amount of thought at design time even for simple
 applications.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="objects-summary"></a>Summary</h3></div></div><p>
-Hooking into the OpenACS 4.5 object system brings the application developer
+Hooking into the OpenACS 4.6 object system brings the application developer
 numerous benefits, and doing it involves only four easy steps:
 
 
@@ -396,6 +396,4 @@
 especially true for the <tt>context_id</tt> field.
 </p></li></ul></div><p>
 
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="packages.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="request-processor.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.5 Packages&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;The Request Processor</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="packages.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="request-processor.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Packages&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;The Request Processor</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/objects.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/openacs-overview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-overview.html,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/acs-core-docs/www/openacs-overview.html	30 Nov 2002 17:16:24 -0000	1.4
+++ openacs-4/packages/acs-core-docs/www/openacs-overview.html	28 Feb 2003 05:36:04 -0000	1.5
@@ -1,28 +1,36 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="general-documents.html" title="Chapter�1.�High level information: What is OpenACS?"><link rel="previous" href="general-documents.html" title="Chapter�1.�High level information: What is OpenACS?"><link rel="next" href="release-notes.html" title="OpenACS 4.6 Release Notes"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="general-documents.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�1.�High level information: What is OpenACS?</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="release-notes.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="openacs-overview"></a>Overview</h2></div></div><p>
-	    OpenACS (Open Architecture Community System) is an advanced
-	    toolkit for building scalable, community-oriented web applications. 
-	    If you're thinking of building an enterprise-level web application, 
-	    OpenACS is a solid, proven foundation that will give you a 3-6 month headstart.
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="previous" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="next" href="release-notes.html" title="OpenACS 4.6 Release Notes"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="general-documents.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. High level information: What is OpenACS?</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="release-notes.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="openacs-overview"></a>Overview</h2></div></div><p>
+	    OpenACS (Open Architecture Community System) is an
+	    advanced toolkit for building scalable, community-oriented
+	    web applications.  If you're thinking of building an
+	    enterprise-level web application, OpenACS is a solid,
+	    proven foundation that will give you a 3-6 month
+	    headstart.
 	  </p><p>
-	    OpenACS is also a collection of pre-built applications and services that
-	    you can use to build your web site/application. Through a modular architecture,
-	    OpenACS has packages for user/groups management, content management, e-commerce,
-	    news, FAQ, calendar, forums, bug tracking, full-text searching, and 
-	    <a href="http://dev.openacs.org/packages/package-list" target="_top">much more</a>.
+	    OpenACS is also a collection of pre-built applications and
+	    services that you can use to build your web
+	    site/application. Through a modular architecture, OpenACS
+	    has packages for user/groups management, content
+	    management, e-commerce, news, FAQ, calendar, forums, bug
+	    tracking, full-text searching, and <a href="http://dev.openacs.org/packages/package-list" target="_top">much
+	    more</a>.
 	  </p><p>
-	    OpenACS relies on <a href="http://www.aolserver.com/" target="_top">AOLserver</a>, 
-	    the free, multithreaded, scalable, Tcl-enabled, web/application server used by 
-	    America On-Line for most of its web sites, and a true acid-compliant 
-	    Relational Database Management System (RDBMS). Currently OpenACS supports 
-	    PostgreSQL, an open source RDBMS, and Oracle. (<a href="http://openacs.org/about/what-is-openacs" target="_top">read more</a>)
+	    OpenACS relies on <a href="http://www.aolserver.com/" target="_top">AOLserver</a>, the
+	    free, multithreaded, scalable, Tcl-enabled,
+	    web/application server used by America On-Line for most of
+	    its web sites, and a true acid-compliant Relational
+	    Database Management System (RDBMS). Currently OpenACS
+	    supports PostgreSQL, an open source RDBMS, and
+	    Oracle. (<a href="http://openacs.org/about/what-is-openacs" target="_top">read
+	    more</a>)
 	  </p><p>
-	    The OpenACS toolkit is based on the ArsDigita Community System. ArsDigita 
-	    (now part of Red Hat, Inc.) kindly made their work available under the
-	    <a href="http://dev.openacs.org/about/licensing/" target="_top">GPL</a>, 
-	    making all of this possible. 
+	    The OpenACS toolkit is based on the ArsDigita Community
+	    System. ArsDigita (now part of Red Hat, Inc.) kindly made
+	    their work available under the <a href="http://dev.openacs.org/about/licensing/" target="_top">GPL</a>,
+	    making all of this possible.
 	  </p><p>
-	    The OpenACS community would like to hear your comments and help you
-	    in your endeavors with the system. Stop by our <a href="http://openacs.org" target="_top">web site</a> 
-	    and feel free to ask a question, post ideas or whatever.
-	  </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="general-documents.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="release-notes.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�1.�High level information: What is OpenACS?&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="general-documents.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Release Notes</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/openacs-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
+	    The OpenACS community would like to hear your comments and
+	    help you in your endeavors with the system. Stop by our
+	    <a href="http://openacs.org" target="_top">web site</a> and feel
+	    free to ask a question, post ideas or whatever.
+	  </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="general-documents.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="release-notes.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 1. High level information: What is OpenACS?&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="general-documents.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Release Notes</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/openacs-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/openacs.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/acs-core-docs/www/openacs.html	10 Aug 2002 20:07:20 -0000	1.6
+++ openacs-4/packages/acs-core-docs/www/openacs.html	28 Feb 2003 05:36:04 -0000	1.7
@@ -1,26 +1,30 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install OpenACS 4.5</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="aolserver.html" title="Install AOLserver 3.3+ad13"><link rel="next" href="nextsteps.html" title="Next Steps"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="aolserver.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="nextsteps.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="openacs"></a>Install OpenACS 4.5</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install OpenACS 4.6</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="aolserver.html" title="Install AOLserver 3.3+ad13"><link rel="next" href="nextsteps.html" title="Next Steps"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="aolserver.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="nextsteps.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="openacs"></a>Install OpenACS 4.6</h2></div></div><div class="authorblurb"><p>
 	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-download"></a>Downloading OpenACS</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p> Download the <a href="http://www.openacs.org/software" target="_top">OpenACS 4.5 software</a>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-download"></a>Downloading OpenACS</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p> Download the <a href="http://www.openacs.org/software" target="_top">OpenACS 4.6 software</a>
 		  to the <tt>/tmp</tt> directory:
         </p></li><li><p> 
-		  Login as <tt>nsadmin</tt>
-		  and untar the downloaded components into
-		  <tt>/web</tt> directory. The OpenACS
-		  4.5 tarball is currently named
-		  <tt>openacs-4-5-release.tgz</tt>. Replace
-		  <tt>openacs-4-5-release.tgz</tt> in the
+
+		  Create a directory called <tt>web</tt>
+		  inside your home directory and untar the downloaded components
+		  there. Set the permissions as directed. The OpenACS 4.6
+		  tarball is currently named
+		  <tt>openacs-4-6-release.tgz</tt>. Replace
+		  <tt>openacs-4-6-release.tgz</tt> in the
 		  commands below with whatever the current tarball is named.
+
 		</p><pre class="programlisting">
-joeuser:~$ su - nsadmin
-Password: ***********
-nsadmin:~$ cd /web
-nsadmin:/web$ tar xzf /tmp/openacs-4-5-release.tgz</pre></li><li><p> 
+joeuser:~$ mkdir -p web
+joeuser:~$ chown <span class="emphasis"><em>joeuser</em></span>.web web
+joeuser:~$ cd web
+joeuser:~/web$ tar xzf /tmp/openacs-4-6-release.tgz
+joeuser:~/web$ chown -R <span class="emphasis"><em>joeuser</em></span>.web openacs-4
+joeuser:~/web$ chmod -R g+w openacs-4</pre></li><li><p> 
 		  You should now have an
 		  <tt>openacs-4/</tt> directory tree in
-		  <tt>/web</tt>. Rename this directory to
+		  <tt>~/web</tt>. Rename this directory to
 		  whatever you want your web service to be identified as. The name
 		  of your web service is referred to as the
 		  <span class="emphasis"><em>service_name</em></span>. Since you can run multiple
@@ -33,49 +37,54 @@
 		  community. We'll use <span class="emphasis"><em>birdnotes</em></span> as an example
 		  in these docs.
 		</p><pre class="programlisting">
-nsadmin:/web$ ls -l
-total 4
-drwxr-xr-x    8 nsadmin  nsadmin      4096 Nov 27 09:32 openacs-4
-nsadmin:/web$ mv openacs-4 <span class="emphasis"><em>birdnotes</em></span>
-nsadmin:/web$ ls -l
-total 4
-drwxr-xr-x    8 nsadmin  nsadmin      4096 Dec 20 14:37 birdnotes</pre></li></ul></div></div><p>
+joeuser:~/web$ ls -l
+drwxrwxr-x    8 joeuser  web      4096 Nov 27 09:32 openacs-4
+joeuser:~/web$ mv openacs-4 <span class="emphasis"><em>birdnotes</em></span>
+joeuser:~/web$ ls -l
+drwxrwxr-x    8 joeuser  web      4096 Dec 20 14:37 birdnotes</pre></li><li><p>
+
+		  Finally create a directory for the AOLserver logs.
+
+		</p><pre class="programlisting">
+joeuser:~/web$ mkdir birdnotes/log</pre></li></ul></div></div><p>
 	Skip ahead if you want to <a href="openacs.html#install-openacs-prepare-postgres">Prepare PostgreSQL for OpenACS</a>
-  </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-prepare-oracle"></a>Prepare Oracle for OpenACS</h3></div></div><p>You should be logged on as
-	  <tt>nsadmin</tt> for this step and you should
-	  make sure that <tt>nsadmin</tt> is in the
-	  <tt>dba</tt> group.</p><div class="itemizedlist"><ul type="disc"><li><p> 
-		  Verify nsadmin membership by typing
+  </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-prepare-oracle"></a>Prepare Oracle for OpenACS</h3></div></div><p>
+
+	  You should be sure that your user account
+	  (e.g. <tt>joeuser</tt>) is in the
+	  <tt>dba</tt> group.
+
+	</p><div class="itemizedlist"><ul type="disc"><li><p> 
+		  Verify membership by typing
 		  <tt>groups</tt> when you login:
 
 		  <pre class="programlisting">
-nsadmin:~$ groups
-nsadmin dba web</pre>
+joeuser:~$ groups
+dba web</pre>
 
 		  If you do not see these groups, take the following action: 
 
 		  <pre class="programlisting">
-nsadmin:~$ su -      
+joeuser:~$ su -      
 Password: ************
-root:~# usermod -g nsadmin -G dba,web nsadmin</pre>
+root:~# adduser <span class="emphasis"><em>joeuser</em></span> dba</pre>
 
 		  If you get an error about an undefined group, then add that group
 		  manually:
 
 <pre class="programlisting">
 root:~# groupadd dba
-root:~# groupadd nsadmin
 root:~# groupadd web</pre>
 
 		  Make sure to logout as <tt>root</tt> when
 		  you are finished with this step and log back in as
-		  <tt>nsadmin</tt>.
+		  your regular user.
 		</p></li><li><p> 
 		  Connect to Oracle using
 		  <tt>svrmgrl</tt> and login:
         
 		  <pre class="programlisting">
-nsadmin:~$ svrmgrl
+joeuser:~$ svrmgrl
 
 SVRMGR&gt; connect internal
 Connected.</pre>
@@ -104,33 +113,35 @@
 		  <tt>m02</tt>. This enables your Oracle
 		  system and database files to be on separate disks for optimized
 		  performance. For more information on such a configuration, see
-		  <a href="http://www.arsdigita.com/books/panda/databases-choosing" target="_top">Chapter
-		  12</a> of <a href="http://www.arsdigita.com/books/panda/" target="_top">Philip's
+		  <a href="http://philip.greenspun.com/panda/databases-choosing" target="_top">Chapter
+		  12</a> of <a href="http://philip.greenspun.com/panda/" target="_top">Philip's
 		  book</a>.  For this example, we'll use
 		  <tt>/ora8/m02/oradata/ora8/</tt>.
 		</p></li><li><p> 
 		  Create the directory for the datafile; to do this,
 		  exit from <tt>svrmgrl</tt> and login as
 		  <tt>root</tt> for this step: </p><pre class="programlisting">
 SVRMGR&gt; exit
-nsadmin:~$ su -
+joeuser:~$ su -
 Password: ************
 root:~# mkdir -p /ora8/m02/oradata/ora8/
-root:~# chown nsadmin.web /ora8/m02/oradata/ora8
+root:~# chown <span class="emphasis"><em>joeuser</em></span>.web /ora8/m02/oradata/ora8
 root:~# chmod 775 /ora8/m02/oradata/ora8
 root:~# exit
-nsadmin:~$</pre></li><li><p> 
-		  As <tt>nsadmin</tt>, create a tablespace for
-		  the service. It is important that the tablespace can
-		  <tt>autoextend</tt>. This allows the
-		  tablespace's storage capacity to grow as the size of the data
-		  grows. We set the pctincrease to be a very low value so that our
-		  extents won't grow geometrically. We do not set it to 0 at
-		  the tablespace level because this would affect Oracle's
-		  ability to automatically coalesce free space in the
-		  tablespace. </p><pre class="programlisting">
-nsadmin:~$ svrmgrl
+joeuser:~$</pre></li><li><p> 
 
+		  Create a tablespace for the service. It is important that the
+		  tablespace can <tt>autoextend</tt>. This
+		  allows the tablespace's storage capacity to grow as the size
+		  of the data grows. We set the pctincrease to be a very low value
+		  so that our extents won't grow geometrically. We do not set
+		  it to 0 at the tablespace level because this would affect
+		  Oracle's ability to automatically coalesce free space in the
+		  tablespace.
+
+		</p><pre class="programlisting">
+joeuser:~$ svrmgrl
+
 SVRMGR&gt; connect internal;
 SVRMGR&gt; create tablespace <span class="emphasis"><em>birdnotes</em></span> 
              datafile '/ora8/m02/oradata/ora8/<span class="emphasis"><em>birdnotes</em></span>01.dbf' 
@@ -161,7 +172,7 @@
 		</p></li><li><p>
         Make sure that you can login to Oracle using your
         <span class="emphasis"><em>service_name</em></span> account: </p><pre class="programlisting">
-nsadmin:~$ sqlplus <span class="emphasis"><em>birdnotes</em></span>/<span class="emphasis"><em>birdnotespassword</em></span>
+joeuser:~$ sqlplus <span class="emphasis"><em>birdnotes</em></span>/<span class="emphasis"><em>birdnotespassword</em></span>
 SQL&gt; select sysdate from dual;
 
 SYSDATE
@@ -178,20 +189,28 @@
 		  variables set before launching. Download this <a href="files/nsd-oracle.txt" target="_top">nsd-oracle script</a> into
 		  <tt>/tmp/nsd-oracle.txt</tt> : 
 		</p><pre class="programlisting">
-nsadmin:~$ cp /tmp/nsd-oracle.txt ./bin/nsd-oracle
-nsadmin:~$ chmod 700 ./bin/nsd-oracle</pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-prepare-postgres"></a>Prepare PostgreSQL for OpenACS</h3></div></div><p>
+joeuser:~$ su -
+Password: ********
+root:~# cd /usr/local/aolserver/bin
+root:/usr/local/aolserver/bin# cp /tmp/nsd-oracle.txt ./nsd-oracle
+root:/usr/local/aolserver/bin# chmod 750 nsd-oracle
+root:/usr/local/aolserver/bin# exit</pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-prepare-postgres"></a>Prepare PostgreSQL for OpenACS</h3></div></div><p>
 	  Preparing PostgreSQL is just a little bit simpler than preparing
 	  Oracle. We simply need to create a database with the name of our
 	  <span class="emphasis"><em>service-name</em></span>
 	  (i.e. <tt>birdnotes</tt>)
 	</p><pre class="programlisting">
-nsadmin:/web$ createdb <span class="emphasis"><em>birdnotes</em></span>
+joeuser:~/web$ createdb <span class="emphasis"><em>birdnotes</em></span>
 CREATE DATABASE</pre><p>Next we'll set up AOLserver so that it has the proper environment
 	  variables set before launching. Download this <a href="files/nsd-postgres.txt" target="_top">nsd-postgres script</a> into
 	  <tt>/tmp/nsd-postgres.txt</tt> :</p><pre class="programlisting">
-nsadmin:/web$ cd
-nsadmin:~$ cp /tmp/nsd-postgres.txt ./bin/nsd-postgres
-nsadmin:~$ chmod 700 ./bin/nsd-postgres</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-configure-aol"></a>Configuring AOLserver</h3></div></div><p>
+joeuser:~/web$ cd
+joeuser:~$ su -
+Password: ********
+root:~# cd /usr/local/aolserver/bin
+root:/usr/local/aolserver/bin# cp /tmp/nsd-postgres.txt ./nsd-postgres
+root:/usr/local/aolserver/bin# chmod 755 nsd-postgres
+root:/usr/local/aolserver/bin# exit</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-configure-aol"></a>Configuring AOLserver</h3></div></div><p>
 	  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 the OpenACS to work, you
@@ -201,14 +220,16 @@
 		  Download <a href="files/openacs4.tcl.txt" target="_top"><tt>openacs4.tcl.txt</tt></a>
 			into <tt>/tmp</tt>.  
 		</p></li><li><p> 
-		  Modify it for your needs and save it in
-		  <tt>/usr/local/aolserver/birdnotes.tcl</tt>
-		  (Of course change <tt>birdnotes</tt> to
-		  whatever you're using as your <span class="emphasis"><em>service-name</em></span>
+
+		  Modify it for your needs and save it inside your
+		  <tt>~/web/birdnotes</tt> directory.  (Of
+		  course change <tt>birdnotes</tt> to
+		  whatever you're using as your <span class="emphasis"><em>service-name</em></span>.)
+
 		</p></li></ol></div><pre class="programlisting">
-nsadmin:~$ cp /tmp/openacs4.tcl.txt ./<span class="emphasis"><em>birdnotes</em></span>.tcl
-nsadmin:~$ chmod 660 <span class="emphasis"><em>birdnotes</em></span>.tcl
-nsadmin:~$ emacs <span class="emphasis"><em>birdnotes</em></span>.tcl</pre><p>
+joeuser:~$ cp /tmp/openacs4.tcl.txt ./web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl
+joeuser:~$ chmod 600 ./web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl
+joeuser:~$ emacs ./web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl</pre><p>
 	  Specifically, you'll have set the following variables
 	</p><div class="itemizedlist"><ul type="disc"><li><p> 
 		  <span class="emphasis"><em>server</em></span> - This is the name of
@@ -224,7 +245,12 @@
 		  *pretty* name for your server. For example, we might call ours
 		  &quot;Birdnotes.net Community&quot; 
 		</p></li><li><p><span class="emphasis"><em>httpport</em></span> - If you want your
-		  server on a different port, enter it here</p></li></ul></div><p>
+		  server on a different port, enter it here</p></li><li><p>
+
+		  <span class="emphasis"><em>user_account</em></span> - The account that will both
+		  own OpenACS files and connect to the database (for Postgresql).
+		
+		</p></li></ul></div><p>
 	  AOLServer is very configurable. These settings should get you
 	  started, but for more options, read the <a href="http://aolserver.com/docs/admin/config.adp" target="_top">AOLServer
 	  docs</a>.
@@ -233,26 +259,27 @@
 	  one. (Note, if you are using Oracle, rather than PostgreSQL, replace
 	  <tt>nsd-postgres</tt> with
 	  <tt>nsd-oracle</tt>): </p><pre class="programlisting">
-nsadmin:~$ killall nsd
+joeuser:~$ killall nsd
 ; Should probably see:
 nsd: no process killed
-nsadmin:~$ /usr/local/aolserver/bin/nsd-postgres -t /usr/local/aolserver/<span class="emphasis"><em>birdnotes</em></span>.tcl</pre><p>
+joeuser:~$ /usr/local/aolserver/bin/nsd-postgres -t ~/web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl</pre><p>
 	  Attempt to connect to the service from a web browser as you did
 	  in the <a href="aolserver.html#install-aolserver-test">Test AOLserver</a> section. You should
 	  specify a URL like:
 	</p><pre class="programlisting">
 http://<span class="emphasis"><em>ip_name</em></span>:<span class="emphasis"><em>ip_port</em></span>/</pre><p>
 	  You should see a page that looks like <a href="files/openacs-start.html" target="_top">this</a> - if so, go on to <a href="openacs.html#install-openacs-using-installer">Using the OpenACS Installer</a>.
 	</p><p>
+
 	  If you don't see the login page, view your error log
-        (<tt>/usr/local/aolserver/log/<span class="emphasis"><em>birdnotes</em></span>-error.log</tt>)
+	  (<tt>~/web/<span class="emphasis"><em>birdnotes</em></span>/log/error.log</tt>)
 	  to make sure the service is starting without any problems. If you
-	  need to make changes, don't forget to kill any running
-	  servers.
+	  need to make changes, don't forget to kill any running servers.
+
 	</p><pre class="programlisting">
-nsadmin:~$ killall nsd</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-using-installer"></a>Using the OpenACS Installer</h3></div></div><p>
+joeuser:~$ killall nsd</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-using-installer"></a>Using the OpenACS Installer</h3></div></div><p>
 	  Now that you've got AOLserver up and running, let's install OpenACS
-	  4.5.
+	  4.6.
 	</p><div class="itemizedlist"><ul type="disc"><li><p> 
 		  You should see a page from the webserver titled
 		  <tt>OpenACS Installation:
@@ -263,28 +290,36 @@
 		  side. But if everything is fine, you can click
 		  <tt>Next</tt> to proceed to load the
 		  OpenACS Kernel data model.  
-		</p></li><li><p> 
+		</p></li><li><p>
+
 		  The next page shows the results of loading the OpenACS Kernel
 		  data model - be prepared to wait a few minutes as it works. You
-		  should see a string of &quot;No errors.&quot; as the tables are
-		  created.  You'll see the line:
+		  should see a string of output messages from the database as the
+		  datamodel is created.  You'll see the line:
+
 		</p><pre class="programlisting">
 Loading package .info files ... this will take a few minutes</pre><p>
-		  This will really take a few minutes. Have faith! Finally,
-		  another <tt>Next</tt> button will appear at
-		  the bottom - click it.
+
+		  This will really take a few minutes. Have faith! Finally, another
+		  <tt>Next</tt> button will appear at the
+		  bottom - click it.
+
 		</p></li><li><p> 		  
-		  The following page shows the results of loading the package data
-		  models. You should see positive results for each of the
+
+		  The following page shows the results of loading the core package
+		  data models. You should see positive results for each of the
 		  previously selected packages, but watch out for any
 		  errors. Eventually, the page will display &quot;Generating secret
 		  tokens&quot; and then &quot;Done&quot;- click
-		  <tt>Next</tt>.  
+		  <tt>Next</tt>.
+
 		</p></li><li><p>
+
 		  You should see a page, &quot;OpenACS Installation: Create
 		  Administrator&quot; with form fields to define the OpenACS site
 		  administrator. Fill out the fields as appropriate, and click
-		  <tt>Create User</tt>.  
+		  <tt>Create User</tt>.
+
 		</p></li><li><p>
 		  You should see a page, &quot;OpenACS Installation: Set System
 		  Information&quot; allowing you to name your service. Fill out the
@@ -297,11 +332,11 @@
 		  AOLServer to restart itself (ie. inittab or daemontools),
 		  you'll need to manually restart your service.
 		</p><pre class="programlisting">
-nsadmin:~$ /usr/local/aolserver/bin/nsd-postgres -t /usr/local/aolserver/<span class="emphasis"><em>birdnotes</em></span>.tcl</pre></li><li><p> 
+joeuser:~$ /usr/local/aolserver/bin/nsd-postgres -t ~/web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl</pre></li><li><p> 
 		  Give the server a few minutes to start up. Then
 		  reload the final page above. You should see the front page, with
 		  an area to login near the upper right.  Congratulations, OpenACS
-		  4.5 is now up and running!  
+		  4.6 is now up and running!  
 		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-keepalive"></a>Keep AOLserver alive</h3></div></div><p>
 	  Now, we'll describe how to start AOLserver automatically on boot,
 	  or whenever else the service dies.
@@ -347,7 +382,7 @@
 			have Perl installed and also a symbolic link to it in
 			<tt>/usr/local/bin</tt>. 
 		  </p><pre class="programlisting">
-nsadmin:~$ su - 
+joeuser:~$ su - 
 Password: ***********
 root:~# cp /tmp/restart-aolserver.txt /usr/local/bin/restart-aolserver
 root:~# chown root.web /usr/local/bin/restart-aolserver
@@ -360,194 +395,206 @@
 			<tt>restart-aolserver</tt> to kill
 			it. If it works, then there should be no more servers
 			running. You should see the following lines. </p><pre class="programlisting">
-nsadmin:~$ killall nsd
+joeuser:~$ killall nsd
 nsd: no process killed
-nsadmin:~$ /usr/local/aolserver/bin/nsd-postgres -t /usr/local/aolserver/<span class="emphasis"><em>birdnotes</em></span>.tcl
-nsadmin:~$ restart-aolserver <span class="emphasis"><em>birdnotes</em></span>
+joeuser:~$ /usr/local/aolserver/bin/nsd-postgres -t ~/web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl
+joeuser:~$ restart-aolserver <span class="emphasis"><em>birdnotes</em></span>
 Killing 23727 
-nsadmin:~$ killall nsd
+joeuser:~$ killall nsd
 nsd: no process killed</pre><p>
-			The number 23727 indicates the process id(s) (PIDs) of the
-			processes being killed. It is important that <span class="strong"><em>no processes are killed</em></span> by the second
-			call to <tt>killall</tt>. If there are
-			processes being killed, it means that the script is not
-			working.</p></li><li><p> 
-		  Assuming that the <tt>restart-aolserver</tt>
-		  script worked, login as root and open
-		  <tt>/etc/inittab</tt> for
-		  editing. </p><pre class="programlisting">
-nsadmin:~$ su -
+            The number 23727 indicates the process id(s) (PIDs) of the
+            processes being killed. It is important that <span class="strong"><em>no processes are killed</em></span> by the second
+            call to <tt>killall</tt>. If there are
+            processes being killed, it means that the script is not
+            working.</p></li><li><p> 
+          Assuming that the <tt>restart-aolserver</tt>
+          script worked, login as root and open
+          <tt>/etc/inittab</tt> for
+          editing. </p><pre class="programlisting">
+joeuser:~$ su -
 Password: ************
 root:~# emacs -nw /etc/inittab</pre></li><li><p> 
-			Copy this line into the bottom of the file as a template,
-			making sure that the first field
-			<tt>nss1</tt> is unique.
-		  </p><pre class="programlisting">
-nss1:2345:respawn:/usr/local/aolserver/bin/nsd-postgres -i -u nsadmin -g web -t /usr/local/aolserver/<span class="emphasis"><em>birdnotes</em></span>.tcl</pre></li><li><p>
-			<span class="strong"><em>Important:</em></span> Make sure there is a
-			newline at the end of the file. If there is not a newline at
-			the end of the file, the system may suffer catastrophic
-			failures.  
-		  </p></li><li><p>
-			Still as root, enter the following command to re-initialize
-			<tt>/etc/inittab</tt>. </p><pre class="programlisting">
+            Copy this line into the bottom of the file as a template,
+            making sure that the first field
+            <tt>nss1</tt> is unique.
+          </p><pre class="programlisting">
+nss1:345:respawn:/usr/local/aolserver/bin/nsd-postgres -i -u nobody -g web -t /home/<span class="emphasis"><em>joeuser</em></span>/web/<span class="emphasis"><em>birdnotes</em></span>/nsd.tcl</pre></li><li><p>
+            <span class="strong"><em>Important:</em></span> Make sure there is a
+            newline at the end of the file. If there is not a newline at
+            the end of the file, the system may suffer catastrophic
+            failures.  
+          </p></li><li><p>
+            Still as root, enter the following command to re-initialize
+            <tt>/etc/inittab</tt>. </p><pre class="programlisting">
 root:~# killall nsd    
 nsd: no process killed
 root:~# /sbin/init q</pre></li><li><p> 
-			See if it worked by running the
-			<tt>restart-aolserver</tt> script
-			again. </p><pre class="programlisting">
+            See if it worked by running the
+            <tt>restart-aolserver</tt> script
+            again. </p><pre class="programlisting">
 root:~# restart-aolserver <span class="emphasis"><em>birdnotes</em></span>
 Killing 23750</pre></li></ul></div><p>
-		If processes were killed, congratulations, your server is now
-		automated for startup and shutdown. 
-	  </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-openacs-daemontools"></a>Install daemontools</h4></div></div><p>
+        If processes were killed, congratulations, your server is now
+        automated for startup and shutdown. 
+      </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-openacs-daemontools"></a>Install daemontools</h4></div></div><p>
 
-		Installation instructions:
+        Installation instructions:
 
-		</p><div class="variablelist"><dl><dt><span class="term">Debian</span></dt><dd><p><pre class="programlisting">
+        </p><div class="variablelist"><dl><dt><span class="term">Debian</span></dt><dd><p><pre class="programlisting">
 root:~# apt-get install daemontools-installer
-root:~# build-daemontools
-root:~# # answer 'yes' when asked to create symlink from /service to /var/lib/svscan</pre>
-			  </p></dd><dt><span class="term">Red Hat</span></dt><dd><p>RPMs for RH 6.2 and RPM 7.1 are available
-			  <a href="http://untroubled.org/rpms/daemontools/" target="_top">http://untroubled.org/rpms/daemontools</a>. I
-			  have not tested these, so I have no idea whether they work
-			  properly.
-				</p></dd><dt><span class="term">Other distributions</span></dt><dd><p>
+root:~# build-daemontools</pre>
+              </p></dd><dt><span class="term">Red Hat</span></dt><dd><p>RPMs for RH 6.2 and RPM 7.1 are available
+              <a href="http://untroubled.org/rpms/daemontools/" target="_top">http://untroubled.org/rpms/daemontools</a>. I
+              have not tested these, so I have no idea whether they work
+              properly.
+                </p></dd><dt><span class="term">Other distributions</span></dt><dd><p>
 
-				You can download the source directly from the author's site
-				at <a href="http://cr.yp.to/daemontools/install.html" target="_top">http://cr.yp.to/daemontools/install.html</a>.
+                You can download the source directly from the author's site
+                at <a href="http://cr.yp.to/daemontools/install.html" target="_top">http://cr.yp.to/daemontools/install.html</a>.
 
-			  </p></dd></dl></div><p>
-	  </p><p>
-		Create a file called <tt>run</tt> inside
-		<tt>/web/<span class="emphasis"><em>birdnotes</em></span></tt>:
-	  </p><pre class="programlisting">
-nsadmin:~$ cd /web/birdnotes
-nsadmin:/web/birdnotes$ emacs run</pre><p>
-		Copy this text into that file:
-	  </p><pre class="programlisting">
+              </p></dd></dl></div><p>
+      </p><p>
+        Create a file called <tt>run</tt> inside
+        <tt>~/web/<span class="emphasis"><em>birdnotes</em></span></tt>:
+      </p><pre class="programlisting">
+joeuser:~$ cd web/birdnotes
+joeuser:~/web/birdnotes$ emacs run</pre><p>
+        Copy this text into that file:
+      </p><pre class="programlisting">
 #!/bin/sh 
 
-exec /usr/local/aolserver/bin/nsd-postgres -it /usr/local/aolserver/birdnotes.tcl -u nsadmin -g web</pre><p>
-		As root, change the ownership of this file:
-	  </p><pre class="programlisting">
-nsadmin:/web/birdnotes$ su -
+exec /usr/local/aolserver/bin/nsd-postgres -it /home/<span class="emphasis"><em>joeuser</em></span>/web/birdnotes/nsd.tcl -u nobody -g web</pre><p>
+
+        As root, change the ownership of this file. We also need to delete
+        any logs that may be present from previous testing. If they are
+        owned by users other than <tt>nobody</tt>,
+        then AOLserver willl not be able to append to them.
+
+      </p><pre class="programlisting">
+joeuser:~/web/birdnotes$ rm log/*
+joeuser:~/web/birdnotes$ su -
 Password: ***********
-root:~# chown root.root /web/birdnotes/run
-root:~# chmod 700 /web/birdnotes/run</pre><p>
-		Now, we'll link our web root to the
-		<tt>/service</tt> directory. This causes
-		daemontools to monitor this directory. It should find your
-		<tt>run</tt> script and run it as soon as
-		you hit return.
-	  </p><pre class="programlisting">
+root:~# chown root.root /home/<span class="emphasis"><em>joeuser</em></span>/web/birdnotes/run
+root:~# chmod 700 /home/<span class="emphasis"><em>joeuser</em></span>/web/birdnotes/run</pre><p>
+        Now, we'll link our web root to the
+        <tt>/service</tt> directory. This causes
+        daemontools to monitor this directory. It should find your
+        <tt>run</tt> script and run it as soon as
+        you hit return.
+      </p><pre class="programlisting">
 root:~# killall nsd
-root:~# ln -s /web/birdnotes /service
+root:~# ln -s /home/<span class="emphasis"><em>joeuser</em></span>/web/birdnotes /service
 root:~# ps -A | grep nsd
 19359 pts/3    00:00:08 nsd
 19361 pts/3    00:00:00 nsd
 19362 pts/3    00:00:00 nsd
 19363 pts/3    00:00:00 nsd
 19364 pts/3    00:00:00 nsd</pre><p>
-		At this point, you should be able to use the
-		<tt>restart-aolserver</tt> script described
-		in <a href="openacs.html#install-openacs-inittab">Editing inittab</a>. Daemontools, however,
-		allows you much more precision control.
-	  </p><div class="itemizedlist"><ul type="disc"><li><p>
-			<tt>svc -d /web/birdnotes</tt> - Bring
-			the server down
-		  </p></li><li><p>
-			<tt>svc -u /web/birdnotes</tt> - Start
-			the server up. Also, restart it whenever it stops.
-		  </p></li><li><p>
-			<tt>svc -o /web/birdnotes</tt> - Start
-			the server up once. Do not restart it if it stops.
-		  </p></li><li><p>
-			<tt>svc -t /web/birdnotes</tt> - Stop
-			and immediately restart the server
-		  </p></li><li><p>
-		
-			<tt>svc -k /web/birdnotes</tt> - Sends
-			the server a KILL signal. This is like KILL -9. AOLserver exits
-			immediately. If svc -t fails to fully kill AOLserver, use this
-			option.
+        At this point, you should be able to use the
+        <tt>restart-aolserver</tt> script described
+        in <a href="openacs.html#install-openacs-inittab">Editing inittab</a>. Daemontools, however,
+        provides you with more precise control.
+      </p><div class="itemizedlist"><ul type="disc"><li><p>
 
-		  </p></li></ul></div><p>
-		At this point, these commands will work only for the
-		<tt>root</tt> user. We can give a group
-		permission to run these commands as well. Download this <a href="files/svgroup.txt" target="_top">script</a> to
-		<tt>/tmp</tt>.
-	  </p><pre class="programlisting">
+            <tt>svc -d /service/birdnotes</tt> -
+            Bring the server down
+
+          </p></li><li><p>
+
+            <tt>svc -u /service/birdnotes</tt> -
+            Start the server up. Also, restart it whenever it stops.
+
+          </p></li><li><p>
+
+            <tt>svc -o /service/birdnotes</tt> -
+            Start the server up once. Do not restart it if it stops.
+
+          </p></li><li><p>
+
+            <tt>svc -t /service/birdnotes</tt> -
+            Stop and immediately restart the server
+
+          </p></li><li><p>
+        
+            <tt>svc -k /service/birdnotes</tt> -
+            Sends the server a KILL signal. This is like KILL -9. AOLserver
+            exits immediately. If svc -t fails to fully kill AOLserver, use
+            this option.
+
+          </p></li></ul></div><p>
+        At this point, these commands will work only for the
+        <tt>root</tt> user. We can give a group
+        permission to run these commands as well. Download this <a href="files/svgroup.txt" target="_top">script</a> to
+        <tt>/tmp</tt>.
+      </p><pre class="programlisting">
 root:~# cp /tmp/svgroup.txt /usr/local/bin/svgroup
 root:~# chmod 755 /usr/local/bin/svgroup
 root:~# svgroup web /service/birdnotes</pre><p>
-		This command will give the <tt>web</tt>
-		group permission to use <tt>svc</tt> commands
-		on the <span class="emphasis"><em>birdnotes</em></span> server.
-	  </p><p>
-		Try it out. You may want to <tt>tail -f
-		/usr/local/aolserver/log/birdnotes-error.log</tt> in
-		another window, so you can see what happens when you type these
-		commands.
-	  </p><pre class="programlisting">
+        This command will give the <tt>web</tt>
+        group permission to use <tt>svc</tt> commands
+        on the <span class="emphasis"><em>birdnotes</em></span> server.
+      </p><p>
+        Try it out. You may want to <tt>tail -f
+        ~/web/birdnotes/log/error.log</tt> in
+        another window, so you can see what happens when you type these
+        commands.
+      </p><pre class="programlisting">
 root:~# exit
-nsadmin:~$ # first, bring the server down
-nsadmin:~$ svc -d /web/birdnotes
-nsadmin:~$ # now, start the server up
-nsadmin:~$ svc -u /web/birdnotes
-nsadmin:~$ # wait for server to come up, then restart it
-nsadmin:~$ svc -t /web/birdnotes</pre><p>
-		Most of this information comes from Tom Jackson's <a href="http://zmbh.com/daemontools-aolserver/aolserver%2Bdaemontools.html" target="_top">AOLServer+Daemontools
-		  Mini-HOWTO</a>.
-	  </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-port80"></a>Running AOLserver on Port 80</h3></div></div><p>
-	  If you want to run the service on port 80 (the default HTTP port),
-	  you need to set the port to 80 in your
-	  <tt>service_name.tcl</tt> file in
-	  <tt>/usr/local/aolserver</tt>. 
-	</p><p>
-	  Moreover, you will need to start the service as
-	  <tt>root</tt>. If you follow the instructions
-	  above for <a href="openacs.html#install-openacs-keepalive" title="Keep AOLserver alive">automating
-	  startup</a>, this will be taken care of, but if you ever start the
-	  server from the command line, be sure to <tt>su
-	  -</tt> first.
-	</p><p>
-	  Port 80 is a <span class="emphasis"><em>privileged</em></span> port. Only certain users
-	  can claim it. When you start <tt>nsd</tt> as
-	  root, it obtains the port, and then changes to run as whatever user
-	  you specify in the server configuration file. This ensures a high
-	  level of security, as the server, once started, is not running as
-	  <tt>root</tt>. This mean that if someone was
-	  able to exploit your web server to execute a command on your server,
-	  they would not be able to gain <tt>root</tt>
-	  access.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-delete-tablespace"></a>Deleting a tablespace</h3></div></div><p>Skip down for instructions on <a href="openacs.html#install-openacs-delete-postgres-tablespace">Deleting a PostgreSQL tablespace</a>.
-	</p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-openacs-delete-oracle-tablespace"></a>Deleting an Oracle tablespace</h4></div></div><p>
-		Should it become necessary to rebuild a tablespace from scratch,
-		you can use the <tt>drop user</tt> command
-		in SVRMGRL with the <tt>cascade</tt>
-		option. This command will drop the user and every database object
-		the user owns.</p><pre class="programlisting">
+joeuser:~$ # first, bring the server down
+joeuser:~$ svc -d /service/birdnotes
+joeuser:~$ # now, start the server up
+joeuser:~$ svc -u /service/birdnotes
+joeuser:~$ # wait for server to come up, then restart it
+joeuser:~$ svc -t /service/birdnotes</pre><p>
+
+        Most of this information comes from Tom Jackson's <a href="http://zmbh.com/daemontools-aolserver/aolserver%2Bdaemontools.html" target="_top">AOLServer+Daemontools
+          Mini-HOWTO</a>.
+
+      </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-port80"></a>Running AOLserver on Port 80</h3></div></div><p>
+      If you want to run the service on port 80 (the default HTTP port),
+      you need to set the port to 80 in your
+      <tt>nsd.tcl</tt> config file.
+    </p><p>
+      Moreover, you will need to start the service as
+      <tt>root</tt>. If you follow the instructions
+      above for <a href="openacs.html#install-openacs-keepalive" title="Keep AOLserver alive">automating
+      startup</a>, this will be taken care of, but if you ever start the
+      server from the command line, be sure to <tt>su
+      -</tt> first.
+    </p><p>
+      Port 80 is a <span class="emphasis"><em>privileged</em></span> port. Only certain users
+      can claim it. When you start <tt>nsd</tt> as
+      root, it obtains the port, and then changes to run as whatever user
+      you specify in the server configuration file. This ensures a high
+      level of security, as the server, once started, is not running as
+      <tt>root</tt>. This mean that if someone was
+      able to exploit your web server to execute a command on your server,
+      they would not be able to gain <tt>root</tt>
+      access.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-openacs-delete-tablespace"></a>Deleting a tablespace</h3></div></div><p>Skip down for instructions on <a href="openacs.html#install-openacs-delete-postgres-tablespace">Deleting a PostgreSQL tablespace</a>.
+    </p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-openacs-delete-oracle-tablespace"></a>Deleting an Oracle tablespace</h4></div></div><p>
+        Should it become necessary to rebuild a tablespace from scratch,
+        you can use the <tt>drop user</tt> command
+        in SVRMGRL with the <tt>cascade</tt>
+        option. This command will drop the user and every database object
+        the user owns.</p><pre class="programlisting">
 SVRMGR&gt; drop user <span class="emphasis"><em>birdnotes</em></span> cascade;</pre><p>
-		If this does not work because svrmgrl &quot;cannot drop a user that
-		is currently connected&quot;, make sure to kill the AOLserver using
-		this user. If it still does not work, do:</p><pre class="programlisting">
+        If this does not work because svrmgrl &quot;cannot drop a user that
+        is currently connected&quot;, make sure to kill the AOLserver using
+        this user. If it still does not work, do:</p><pre class="programlisting">
 SVRMGR&gt; select username, sid, serial# from v$session where lower(username)='<span class="emphasis"><em>birdnotes</em></span>';</pre><p>and then</p><pre class="programlisting">
 SVRMGR&gt; alter system kill session '<span class="emphasis"><em>sid</em></span>,<span class="emphasis"><em>serial#</em></span>';</pre><p>
-		where <span class="emphasis"><em>sid</em></span> and <span class="emphasis"><em>serial#</em></span> are
-		replaced with the corresponding values for the open session.</p><p><span class="strong"><em>Use with caution!</em></span></p><p>
-		If you feel the need to delete <span class="emphasis"><em>everything</em></span>
-		related to the service, you can also issue the following:</p><pre class="programlisting">
+        where <span class="emphasis"><em>sid</em></span> and <span class="emphasis"><em>serial#</em></span> are
+        replaced with the corresponding values for the open session.</p><p><span class="strong"><em>Use with caution!</em></span></p><p>
+        If you feel the need to delete <span class="emphasis"><em>everything</em></span>
+        related to the service, you can also issue the following:</p><pre class="programlisting">
 SVRMGR&gt; drop tablespace <span class="emphasis"><em>birdnotes</em></span> including contents cascade constraints;</pre></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="install-openacs-delete-postgres-tablespace"></a>Deleting a PostgreSQL tablespace</h4></div></div><p>
-		Dropping a PostgreSQL tablespace is easy. You have to stop any
-		AOLserver instances that are using the database that you wish to
-		drop. If you're using daemontools, this is simple, just use the
-		'down' flag (-d). If you're using inittab, you have to comment out
-		your server in <tt>/etc/inittab</tt>,
-		reread the inittab with <tt>/sbin/init
-		q</tt>, and then <tt>restart-aolserver
-		<span class="emphasis"><em>birdnotes</em></span></tt>.</p><p>Then, to drop the db, just do:</p><pre class="programlisting">
-nsadmin:~$ dropdb <span class="emphasis"><em>birdnotes</em></span>
-DROP DATABASE</pre></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="nextsteps.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 3.3+ad13&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Next Steps</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+        Dropping a PostgreSQL tablespace is easy. You have to stop any
+        AOLserver instances that are using the database that you wish to
+        drop. If you're using daemontools, this is simple, just use the
+        'down' flag (-d). If you're using inittab, you have to comment out
+        your server in <tt>/etc/inittab</tt>,
+        reread the inittab with <tt>/sbin/init
+        q</tt>, and then <tt>restart-aolserver
+        <span class="emphasis"><em>birdnotes</em></span></tt>.</p><p>Then, to drop the db, just do:</p><pre class="programlisting">
+joeuser:~$ dropdb <span class="emphasis"><em>birdnotes</em></span>
+DROP DATABASE</pre></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="nextsteps.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 3.3+ad13&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Next Steps</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/openacs.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/operating-system.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/operating-system.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/operating-system.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/operating-system.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install an Operating System</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="install-overview.html" title="Overview"><link rel="next" href="oracle.html" title="Install Oracle 8.1.7"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="oracle.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="operating-system"></a>Install an Operating System</h2></div></div><div class="authorblurb"><p>
 	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
 	We won't provide detailed instructions to install an operating system
 	since there are so many valid choices available and each OS has their
 	own installation procedures.
@@ -12,7 +12,7 @@
 	  and even Windows systems. The remainder of this guide will
 	  be specific to Linux. Users of other OS's may find some helpful
 	  information here, but we recommend that you instead use one of these
-	  OS specific guides to install OpenACS 4.5.
+	  OS specific guides to install OpenACS 4.6.
 	</p><div class="itemizedlist"><ul type="disc"><li><p>
 		  <a href="http://www.orchardlabs.com/freebsd/" target="_top">FreeBSD guide</a>
 		</p></li><li><p> 
@@ -25,14 +25,15 @@
 		</p></li><li><p>
 		  <a href="win2k-installation.html">OpenACS Installation Guide for Windows 2000</a>
 		</p><p>
+
 		  This was written for ACS and has <span class="emphasis"><em>not</em></span> yet
-		  been updated for OpenACS. (Note: AOLServer is no longer
-		  supporting Windows - it may be possible to run AOLServer under
-		  <a href="http://www.cygwin.com" target="_top">Cygwin</a>, but I haven't
-		  seen any success reports yet). Another alternative is to use John
-		  Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis
-		  VM</a>, which is basically a fully working OpenACS 4.5
+		  been updated for OpenACS. (Note: AOLServer is not currently
+		  supported on Windows, but this may change soon. Keep an eye on
+		  the AOLserver mailing list or the OpenACS forums) Another
+		  alternative is to use John Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis
+		  VM</a>, which is basically a fully working OpenACS 4.6
 		  system that you load into <a href="http://vmware.com" target="_top">VMware</a>.
+
 		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="os-linux"></a>Linux Information</h3></div></div><p>
 	  I'm currently using Debian GNU/Linux, so this guide may show that
 	  bias. Installation on any Linux distribution should be similar and
@@ -43,22 +44,25 @@
 	  to set aside a swap partition which is twice your RAM size.
 	</p><p>
 	  Some things that you will need:
-	</p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Requirement</th><th>Reason</th></tr></thead><tbody><tr><td>recent kernel</td><td>Currently version 2.2.19 or
-			greater is the standard requirement. Some people are using 2.4.x
-			(2.4.16) kernels.</td></tr><tr><td>bash </td><td>Bash is the standard Linux shell.
-			  We assume you are using bash for these instructions.  If you're
-			  not using bash, then you will need to substitute your shell's
-			  conventions for setting environment variables when appropriate.
+	</p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Requirement</th><th>Reason</th></tr></thead><tbody><tr><td>recent kernel</td><td>
+
+			  Version 2.2.22 or greater is the standard requirement. I used
+			  version 2.4.19 for this guide.
+
+			</td></tr><tr><td>bash</td><td>
+
+			  Bash is the standard Linux shell and we assume you are using
+			  bash for these instructions.  If not, you will need to
+			  substitute your shell's conventions for setting environment
+			  variables when appropriate.
+
 			</td></tr><tr><td>glibc 2.1 (or greater)</td><td>
 			  You need recent versions of these libraries for Oracle to
 			  work properly. If you want Unicode support, you'll need glibc
 			  2.2.
-			</td></tr><tr><td>perl (and perl-suid)</td><td>
-			  A few parts of the ACS require <a href="http://www.perl.org/" target="_top">perl</a> to work correctly.
-				(Debian users: <tt>apt-get install
-				perl-suid</tt>)</td></tr><tr><td>GNU Make (3.76.1 or better)</td><td>
-			  PostgreSQL and AOLServer require gmake to compile. Note that
-			  on some linux distributions, GNU Make is simply named
+			</td></tr><tr><td>GNU Make (3.76.1 or better)</td><td>
+			  PostgreSQL and AOLserver require gmake to compile. Note that
+			  on most linux distributions, GNU Make is simply named
 			  <tt>make</tt> and there is no
 			  <tt>gmake</tt>, whereas on BSD
 			  distributions, <tt>make</tt> and
@@ -68,45 +72,122 @@
 			  compile. (Debian users: <tt>apt-get install
 			  tcl8.3-dev</tt>)
 			</td></tr><tr><td>libxml2</td><td>
-			  OpenACS 4.5 stores queries in XML files, so libxml2 is used to
-			  parse these files. (Debian users: <tt>apt-get
-			  install libxml2-dev</tt>)
+
+			  OpenACS 4.6 stores queries in XML files, so libxml2 is
+			  used to parse these files. (Debian users:
+			  <tt>apt-get install libxml2-dev</tt>)
+
+			</td></tr><tr><td>daemontools</td><td>
+
+			  If you decide to follow our recommendations, you'll need
+			  daemontools installed. We'll explain where to get it when you
+			  need it.
+
+			</td></tr><tr><td>docbook-xml, docbook-xsl, libxslt, xsltproc</td><td>
+
+			  Only needed if you plan to write or edit OpenACS
+			  documentation. (docbook-xml v4.2, docbook-xsl v1.56, libxslt
+			  1.0.21, xsltproc 1.0.21)
+
+			</td></tr><tr><td>a MTA (Mail Transfer Agent)</td><td>
+
+			  An MTA is needed for OpenACS to send notifications or handle
+			  incoming mail. Qmail seems to be the most popular choice in
+			  the OpenACS community. Other options include Postfix, Exim
+			  and Sendmail.
+
 			</td></tr></tbody></table></div><p>
 	  Locations:
 	</p><div class="itemizedlist"><ul type="disc"><li><p> 
+
 		  We'll compile stuff in
 		  <tt>/usr/local/src</tt>
+
 		  </p></li><li><p>
-		  PostgreSQL will go into <tt>/usr/local/pgsql</tt>
+		  
+		  PostgreSQL will go into
+		  <tt>/usr/local/pgsql</tt>
+
 		</p></li><li><p>
-		  AOLServer will go into <tt>/usr/local/aolserver</tt>
+
+		  AOLServer will go into
+		  <tt>/usr/local/aolserver</tt>
+
 		</p></li><li><p>
-		  The web root will go into <tt>/web</tt>
+
+		  The web root will go into your home directory
+		  (e.g. <tt>/home/<span class="emphasis"><em>joeuser</em></span>/web</tt>)
+
 		</p></li></ul></div><p>
+
 	  None of these locations are set in stone - they're simply the values
 	  that we've chosen. You are free to install your software in other
 	  locations, but you'll need to adjust the instructions in this
 	  document to point to those locations.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="os-install"></a>Linux Install Guides</h3></div></div><p>
-	  Here's a list of some helpful documentation for various OS's
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  <a href="http://tinyplanet.ca/pubs/debian/" target="_top">Painless Debian
-		  GNU/Linux</a> by Stephen van Egmond
-		</p></li><li><p> <a href="http://www.debian.org/releases/stable/installmanual" target="_top">Official
-		  Debian Guide</a> </p></li><li><p><a href="http://www.redhat.com/docs/manuals/linux/" target="_top">RedHat</a></p></li><li><p><a href="http://www.linux-mandrake.com/en/fdoc.php3" target="_top">Mandrake</a></p></li><li><p><a href="http://sdb.suse.de/sdb/en/html/" target="_top">SuSE</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="os-security"></a>Security Information</h3></div></div><p>
-	  Once you get your OS installed, it's imperative that you secure your
-	  installation. As Jon Griffin repeatedly warns us, &quot;No distribution is
-	  secure out of the box.&quot; Again, this topic is too big to cover properly
-	  here, so see these links.
-	</p><div class="itemizedlist"><ul type="disc"><li><p> 
-		  <a href="http://jongriffin.com/static/linuxnotes" target="_top">Jon Griffin's notes</a>
-		  </p></li><li><p> 
-		  <a href="http://www.seifried.org/lasg/" target="_top">Linux Administrators Security Guide</a>
-		  </p></li><li><p> 
-		  <a href="http://www.suse.com/en/support/howto/secure_webserv/index.html" target="_top">Installation
-			of a Secure Webserver</a>
-		</p></li><li><p>
-		  Others?
-		  </p></li></ul></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="oracle.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install Oracle 8.1.7</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+
+	</p><p>
+
+	  Note that previous versions of this document recommended using
+	  <tt>/web</tt> for the web root and running
+	  AOLserver as the <tt>nsadmin</tt> user. For
+	  security and compatibility reasons, this is no longer recommended.
+
+	</p><p>
+
+	  This guide will use <tt>joeuser</tt> as a
+      normal user. Substitute your own username wherever you see
+      <tt>joeuser</tt>.
+
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="os-install"></a>Linux Install Guides</h3></div></div><p>
+      Here's a list of some helpful documentation for various OS's
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          <a href="http://tinyplanet.ca/pubs/debian/" target="_top">Painless Debian
+          GNU/Linux</a> by Stephen van Egmond
+        </p></li><li><p> 
+
+          <a href="http://www.debian.org/releases/stable/installmanual" target="_top">Official
+          Debian Guide</a> 
+
+        </p></li><li><p>
+
+          <a href="http://www.redhat.com/docs/manuals/linux/" target="_top">RedHat</a>
+
+        </p></li><li><p>
+
+          <a href="http://www.linux-mandrake.com/en/fdoc.php3" target="_top">Mandrake</a>
+
+        </p></li><li><p>
+
+          <a href="http://sdb.suse.de/sdb/en/html/" target="_top">SuSE</a>
+
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="os-security"></a>Security Information</h3></div></div><p>
+
+      Once you get your OS installed, it's imperative that you secure your
+      installation. As Jon Griffin repeatedly warns us, &quot;No distribution is
+      secure out of the box.&quot; Again, this topic is too big to cover properly
+      here, so see these links.
+
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+
+          <a href="http://www.openna.com/products/books/sol/solus.php" target="_top">Securing and Optimizing Linux - version 2.0</a>
+
+        </p></li><li><p> 
+
+          <a href="http://jongriffin.com/static/linuxnotes" target="_top">Jon
+          Griffin's notes</a>
+
+          </p></li><li><p> 
+
+          <a href="http://www.seifried.org/lasg/" target="_top">Linux Administrators
+          Security Guide</a>
+
+          </p></li><li><p> 
+
+          <a href="http://www.suse.com/en/support/howto/secure_webserv/index.html" target="_top">Installation
+            of a Secure Webserver</a>
+
+        </p></li><li><p>
+
+          Others?
+
+          </p></li></ul></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="oracle.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install Oracle 8.1.7</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/operating-system.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/oracle.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/oracle.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/oracle.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,133 +1,200 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install Oracle 8.1.7</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="operating-system.html" title="Install an Operating System"><link rel="next" href="postgres.html" title="Install PostgreSQL 7.1.3"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="operating-system.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="postgres.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="oracle"></a>Install Oracle 8.1.7</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install Oracle 8.1.7</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="operating-system.html" title="Install an Operating System"><link rel="next" href="postgres.html" title="Install PostgreSQL 7.2.3"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="operating-system.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="postgres.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="oracle"></a>Install Oracle 8.1.7</h2></div></div><div class="authorblurb"><p>
 	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>Skip this page if you're not interested in Oracle</p><p><span class="strong"><em>NOTE:</em></span> We've not yet tested
-	OpenACS 4.5 under Oracle 9i</p><p><span class="strong"><em>NOTE:</em></span> This document assumes that
-	you'll be installing Oracle on the same box as AOLServer. For more
-	details on a remote Oracle installation, see Daryl Biberdorf's <a href="http://openacs.org/new-file-storage/one-file?file_id=273" target="_top">document</a>.
-  </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-getit"></a>Acquire Oracle 8.1.7 Enterprise Edition</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
+
+	Skip this page if you're not interested in Oracle
+
+  </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+
+	  OpenACS 4.6 does not yet work with Oracle 9i
+
+	</p><p>
+
+	  This document assumes that you'll be installing Oracle on the same
+	  box as AOLServer. For more details on a remote Oracle installation,
+	  see Daryl Biberdorf's <a href="http://openacs.org/new-file-storage/one-file?file_id=273" target="_top">document</a>.
+  
+	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-getit"></a>Acquire Oracle 8.1.7 Enterprise Edition</h3></div></div><p>
+
 	  You can obtain the software through a variety of methods (You'll need
 	  to become a member of <a href="http://technet.oracle.com" target="_top">technet.oracle.com</a>, which is
 	  free):
+
 	</p><div class="orderedlist"><ol type="1"><li><p>
-		  Order a CD from the <a href="http://oraclestore.oracle.com" target="_top">Oracle
-			Store</a>.  The cost is currently $39.95 for a 30-day
-			evaluation copy with delivery estimated between 3-4 business
-			days.  
-		</p></li><li><p> 
-		  Download the software from the <a href="http://otn.oracle.com/software/content.html" target="_top">
-		  Oracle Downloads</a> page. 
-		</p><div class="itemizedlist"><ul type="disc"><li><p> 
-			  Oracle 8.1.7 now comes with a Java RunTime
-			  Environment built-in to the distribution, so you no longer
-			  have to download and install it separately.
-			</p></li><li><p> 
-			  After the download is complete, untar the file
-			  to a convenient location.  To do this, you will need to login
-			  and cd to the directory where the archive is. 
-			</p><pre class="programlisting">
+
+          Order a CD from the <a href="http://oraclestore.oracle.com" target="_top">Oracle
+            Store</a>.  The cost is currently $39.95 for a 30-day
+            evaluation copy with delivery estimated between 3-4 business
+            days.  
+
+        </p></li><li><p> 
+
+          Download the software from the <a href="http://otn.oracle.com/software/content.html" target="_top">
+          Oracle Downloads</a> page. 
+
+        </p><div class="itemizedlist"><ul type="disc"><li><p> 
+
+              Oracle 8.1.7 now comes with a Java RunTime
+              Environment built-in to the distribution, so you no longer
+              have to download and install it separately.
+
+            </p></li><li><p>
+
+              See <a href="http://openacs.org/forums/message-view?message_id=33004" target="_top">these
+              instructions</a> to download the 8.1.7.4 patchset. Note
+              that you can't back out of an Oracle patchset once it's
+              installed. You have to reinstall the whole thing from scratch.
+
+            </p></li><li><p> 
+
+              After the download is complete, untar the file
+              to a convenient location.  To do this, you will need to login
+              and cd to the directory where the archive is. 
+
+            </p><pre class="programlisting">
 $ cd /directory/where/oracle/is
 $ tar xvf oracle81701.tar</pre></li></ul></div></li><li><p> 
-		  It used to be possible to get a free CD by mail, but
-		  I can no longer find the link for that option.
-		</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-keepinmind"></a>Things to Keep in Mind</h3></div></div><p>
-	  Throughout these instructions, we will refer to a number of
-	  configurable settings and advise certain defaults. With the exception
-	  of passwords, we advise you to follow these defaults unless you know
-	  what you are doing.  Subsequent documents will expect that you used
-	  the defaults, so a change made here will necessitate further changes
-	  later. For a guide to the defaults, please see <a href="oracle.html#install-oracle-defaults" title="Defaults">the section called &#8220;Defaults&#8221;</a>.
-	</p><p>
-	  For additional resources/documentation, please see this <a href="http://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=0003o2&amp;topic_id=11&amp;topic=OpenACS" target="_top">thread</a>.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-preinstall"></a>Pre-Installation Tasks</h3></div></div><p>
-	  Though Oracle 8.1.7 has an automated installer, we still need to
-	  perform several manual, administrative tasks before we can launch
-	  it. You must perform all of these steps as the
-	  <tt>root</tt> user. We recommend entering the
-	  X window system as a normal user and then doing a <tt>su
-	  -</tt>. This command gives you full root access.
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  Login as a non-root user and start X by typing
-		  <tt>startx</tt>
-		  
-		  <pre class="programlisting">
+
+          It used to be possible to get a free CD by mail, but
+          I can no longer find the link for that option.
+
+        </p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-keepinmind"></a>Things to Keep in Mind</h3></div></div><p>
+
+      Throughout these instructions, we will refer to a number of
+      configurable settings and advise certain defaults. With the exception
+      of passwords, we advise you to follow these defaults unless you know
+      what you are doing.  Subsequent documents will expect that you used
+      the defaults, so a change made here will necessitate further changes
+      later. For a guide to the defaults, please see <a href="oracle.html#install-oracle-defaults" title="Defaults">the section called &#8220;Defaults&#8221;</a>.
+
+    </p><p>
+
+      For additional resources/documentation, please see this <a href="http://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=0003o2&amp;topic_id=11&amp;topic=OpenACS" target="_top">thread</a>
+      and <a href="http://openacs.org/forums/message-view?message_id=67108" target="_top">Andrew
+      Piskorski's mini-guide</a>..
+
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-preinstall"></a>Pre-Installation Tasks</h3></div></div><p>
+
+      Though Oracle 8.1.7 has an automated installer, we still need to
+      perform several manual, administrative tasks before we can launch
+      it. You must perform all of these steps as the
+      <tt>root</tt> user. We recommend entering the
+      X window system as a normal user and then doing a <tt>su
+      -</tt>. This command gives you full root access.
+
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+
+          Login as a non-root user and start X by typing
+          <tt>startx</tt>
+          
+          <pre class="programlisting">
 joeuser:~$ startx</pre>
-		</p></li><li><p>
-		  Open a terminal window type and login as root 
 
-		  <pre class="programlisting">
+        </p></li><li><p>
+
+          Open a terminal window type and login as root 
+
+          <pre class="programlisting">
 joeuser:~$ su -
 Password: ***********
 root:~#</pre>
-		</p></li><li><p>
 
-		  Create and setup the <tt>oracle</tt>
-		  group and <tt>oracle</tt> account
-		</p><p>
-		  We need to create a user <tt>oracle</tt>,
-		  which is used to install the product, as well as starting and
-		  stopping the database.
-		</p><pre class="programlisting">
+        </p></li><li><p>
+
+          Create and setup the <tt>oracle</tt>
+          group and <tt>oracle</tt> account
+
+        </p><p>
+
+          We need to create a user <tt>oracle</tt>,
+          which is used to install the product, as well as starting and
+          stopping the database.
+
+        </p><pre class="programlisting">
 root:~# groupadd dba
 root:~# groupadd oinstall
 root:~# groupadd oracle
 root:~# useradd -g dba -G oinstall,oracle -m oracle
 root:~# passwd oracle</pre><p>
-		  You will be prompted for the New Password and Confirmation of
-		  that password.
-		</p></li><li><p> Setup the installation location for Oracle. While
-		  Oracle can reside in a variety of places in the file system,
-		  OpenACS has adopted <tt>/ora8</tt> as the
-		  base directory.
-		</p><p>
-		  <span class="strong"><em>Note:</em></span> the Oracle install needs
-		  about 1 GB free on <tt>/ora8</tt> to
-		  install successfully.
-		</p><pre class="programlisting">
+
+          You will be prompted for the New Password and Confirmation of
+          that password.
+
+        </p></li><li><p> 
+
+          Setup the installation location for Oracle. While Oracle can
+          reside in a variety of places in the file system, OpenACS has
+          adopted <tt>/ora8</tt> as the base
+          directory.
+
+        </p><p>
+
+          <span class="strong"><em>Note:</em></span> the Oracle install needs
+          about 1 GB free on <tt>/ora8</tt> to
+          install successfully.
+
+        </p><pre class="programlisting">
 root:~# mkdir /ora8
 root:/ora8# cd /ora8
 root:/ora8# mkdir -p m01 m02 m03/oradata/ora8
 root:/ora8# chown -R oracle.dba /ora8
 root:/ora8# exit</pre></li><li><p>
-		  Set up the <tt>oracle</tt> user's
-		  environment
-		</p><div class="itemizedlist"><ul type="round"><li><p> 
-			  Log in as the user
-			  <tt>oracle</tt> by typing the
-			  following:
-			</p><pre class="programlisting">
+
+          Set up the <tt>oracle</tt> user's
+          environment
+
+        </p><div class="itemizedlist"><ul type="round"><li><p> 
+
+              Log in as the user
+              <tt>oracle</tt> by typing the
+              following:
+
+            </p><pre class="programlisting">
 joeuser:~$ su - oracle
 Password: ********</pre></li><li><p>
-			  Use a text editor to edit the
-			  <tt>.bash_profile</tt> file in the
-			  <tt>oracle</tt> account home
-			  directory. 
-			</p><pre class="programlisting">
+
+              Use a text editor to edit the
+              <tt>.bash_profile</tt> file in the
+              <tt>oracle</tt> account home
+              directory. 
+
+            </p><pre class="programlisting">
 oracle:~$ emacs .bash_profile</pre><p>
-			  You may get this error trying to start emacs: 
-			</p><pre class="programlisting">
+
+              You may get this error trying to start emacs: 
+
+            </p><pre class="programlisting">
 Xlib: connection to &quot;:0.0&quot; refused by server
 Xlib: Client is not authorized to connect to Server
 emacs: Cannot connect to X server :0.
 Check the DISPLAY environment variable or use `-d'.
 Also use the `xhost' program to verify that it is set to permit
 connections from your machine.</pre><p>
-			  If so, open a new terminal window and do the following:
-			</p><pre class="programlisting">
+
+              If so, open a new terminal window and do the following:
+
+            </p><pre class="programlisting">
 joeuser:~$ xhost +localhost</pre><p>
-			  Now, back in the oracle terminal:
-			</p><pre class="programlisting">
+
+              Now, back in the oracle terminal:
+
+            </p><pre class="programlisting">
 oracle:~$ export DISPLAY=localhost:0.0
-oracle:~$ emacs .bash_profile</pre><p>			  
-			  Try this procedure anytime you get an Xlib connection refused
-			  error.
-			</p></li><li><p> 
-			  Add the following lines (substituting your
-			  Oracle version number as needed) to
-			  <tt>.bash_profile</tt>:
-			</p><pre class="programlisting">
+oracle:~$ emacs .bash_profile</pre><p>            
+
+              Try this procedure anytime you get an Xlib connection refused
+              error.
+
+            </p></li><li><p> 
+
+              Add the following lines (substituting your
+              Oracle version number as needed) to
+              <tt>.bash_profile</tt>:
+
+            </p><pre class="programlisting">
 export ORACLE_BASE=/ora8/m01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
 export PATH=$PATH:$ORACLE_HOME/bin
@@ -137,140 +204,197 @@
 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
 
 umask 022</pre><p>
-			  Save the file by typing <tt>CTRL-X
-				CTRL-S</tt> and then exit by typing
-			  <tt>CTRL-X
-				CTRL-C</tt>. Alternatively, use the
-			  menus.
-			</p></li></ul></div><p>
-		  Make sure that you do <span class="strong"><em>not</em></span> add
-		  any lines like the following
-		</p><pre class="programlisting">
+
+              Save the file by typing <tt>CTRL-X
+                CTRL-S</tt> and then exit by typing
+                <tt>CTRL-X
+                CTRL-C</tt>. Alternatively, use the menus.
+
+            </p></li></ul></div><p>
+
+          Make sure that you do <span class="strong"><em>not</em></span> add
+          any lines like the following
+
+        </p><pre class="programlisting">
 # NLS_LANG=american
 # export NLS_LANG</pre><p>
-		  These lines will change the Oracle date settings and will break
-		  OpenACS since OpenACS depends on the ANSI date format, YYYY-MM-DD
-		  dates.
-		</p></li><li><p>
-		  Log out as oracle
-		</p><pre class="programlisting">
+
+          These lines will change the Oracle date settings and will break
+          OpenACS since OpenACS depends on the ANSI date format, YYYY-MM-DD
+          dates.
+
+        </p></li><li><p>
+
+          Log out as oracle
+
+        </p><pre class="programlisting">
 oracle:~$ exit</pre></li><li><p> 
-		  Log back in as <tt>oracle</tt> and double
-		  check that your environment variables are as intended. The
-		  <tt>env</tt> command lists all of the
-		  variables that are set in your environment, and
-		  <tt>grep</tt> shows you just the lines
-		  you want (those with ORA in it).
-		</p><pre class="programlisting">
-oracle:~$ su - oracle
+
+          Log back in as <tt>oracle</tt> and double
+          check that your environment variables are as intended. The
+          <tt>env</tt> command lists all of the
+          variables that are set in your environment, and
+          <tt>grep</tt> shows you just the lines
+          you want (those with ORA in it).
+
+        </p><pre class="programlisting">
+joeuser:~$ su - oracle
 oracle:~$ env | grep ORA</pre><p>
-		  If it worked, you should see: 
-		</p><pre class="programlisting">
+
+          If it worked, you should see: 
+
+        </p><pre class="programlisting">
 ORACLE_SID=ora8
 ORACLE_BASE=/ora8/m01/app/oracle
 ORACLE_TERM=vt100
 ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7
 ORA_NLS33=/ora8/m01/app/oracle/product/8.1.7/ocommon/nls/admin/data</pre><p>
-		  If not, try adding the files to
-		  <tt>~/.bashrc</tt> instead of
-		  <tt>.bash_profile</tt>. Then logout and
-		  log back in again. Also, be certain you are doing
-		  <tt>su - oracle</tt> and not just
-		  <tt>su oracle</tt>. The
-		  <tt>-</tt> means that
-		  <tt>.bashrc</tt> and
-		  <tt>.bash_profile</tt> will be
-		  evaluated.
-		</p><p>
-		  Make sure that <tt>/bin</tt>,
-		  <tt>/usr/bin</tt>, and
-		  <tt>/usr/local/bin</tt> are in your path
-		  by typing:
-		</p><pre class="programlisting">
+
+          If not, try adding the files to
+          <tt>~/.bashrc</tt> instead of
+          <tt>.bash_profile</tt>. Then logout and
+          log back in again. Also, be certain you are doing
+          <tt>su - oracle</tt> and not just
+          <tt>su oracle</tt>. The
+          <tt>-</tt> means that
+          <tt>.bashrc</tt> and
+          <tt>.bash_profile</tt> will be
+          evaluated.
+
+        </p><p>
+
+          Make sure that <tt>/bin</tt>,
+          <tt>/usr/bin</tt>, and
+          <tt>/usr/local/bin</tt> are in your path
+          by typing:
+
+        </p><pre class="programlisting">
 oracle:~$ echo $PATH
 /bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/ora8/m01/app/oracle/product/8.1.7/bin</pre><p>
-		  If they are not, then add them to the
-		  <tt>.bash_profile</tt> by changing the
-		  PATH statement above to
-		  <tt>PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin</tt>
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-install"></a>Installing Oracle 8.1.7 Server</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>
-		  Log in as <tt>oracle</tt> and
-		  start X if not already running. Start a new terminal:
-		</p><pre class="programlisting">
+
+          If they are not, then add them to the
+          <tt>.bash_profile</tt> by changing the
+          PATH statement above to
+          <tt>PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin</tt>
+
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-install"></a>Installing Oracle 8.1.7 Server</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>
+          Log in as <tt>oracle</tt> and
+          start X if not already running. Start a new terminal:
+        </p><pre class="programlisting">
 joeuser:~$ xhost +localhost
 joeuser:~$ su - oracle
 Password: **********
 oracle:~$ export DISPLAY=localhost:0.0</pre></li><li><p>
-		  Find the <tt>runInstaller</tt> script
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  If you are installing Oracle from a CD-ROM, it is located in
-			  the <tt>install/linux</tt> path from
-			  the cd-rom mount point
-			</p><pre class="programlisting">
+
+          Find the <tt>runInstaller</tt> script
+
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+
+              If you are installing Oracle from a CD-ROM, it is located in
+              the <tt>install/linux</tt> path from
+              the cd-rom mount point
+
+            </p><pre class="programlisting">
 oracle:~$ su - root
 root:~# mount -t iso9660 /dev/cdrom /mnt/cdrom
 root:~# exit
 oracle:~$ cd /mnt/cdrom</pre></li><li><p>
-			  If you are installing from the tarball, the install script is
-			  located in the <tt>Oracle8iR2</tt>
-			  directory that was created when you expanded the archive.
-			</p><pre class="programlisting">
+
+              If you are installing from the tarball, the install script is
+              located in the <tt>Oracle8iR2</tt>
+              directory that was created when you expanded the archive.
+
+            </p><pre class="programlisting">
 oracle:~$ cd /where/oracle/Disk1</pre></li></ul></div><p>
-		  Check to make sure the file is there. 
-		</p><pre class="programlisting">
+
+          Check to make sure the file is there. 
+
+        </p><pre class="programlisting">
 oracle:/where/oracle/Disk1$ ls
 doc  index.htm  install  runInstaller  stage  starterdb</pre><p>
-		  If you don't see
-		  <tt>runInstaller</tt>, you are in the
-		  wrong directory.
-		</p></li><li><p>
-		  Run the installer
-		</p><pre class="programlisting">
+
+          If you don't see
+          <tt>runInstaller</tt>, you are in the
+          wrong directory.
+
+        </p></li><li><p>
+
+          Run the installer
+
+        </p><pre class="programlisting">
 oracle:/where/oracle/Disk1$ ./runInstaller</pre><p>
-		  A window will open that welcomes you to the 'Oracle Universal
-		  Installer' (OUI). Click on
-		  &quot;<tt>Next</tt>&quot;
-		</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
-			Some people have had trouble with this step on RedHat 7.3. If
-			so, try the following steps before calling
-			<b>./runInstaller</b>:
-		  </p><div class="orderedlist"><ol type="1"><li><p>Install the compat-glibc, compat-egcs, compat-libs RPM for 2.1.3.</p></li><li><p>
-				Execute the following command: <b>/usr/i386-glib21-linux/bin/i386-glibc21-linux-env.sh</b>
-			  </p></li><li><p>
-				Type <b>export LD_ASSUME_KERNEL=2.2.5</b>
-			  </p></li></ol></div></div></li><li><p>
-		  The &quot;File Locations&quot; screen in the OUI: 
-		</p><div class="itemizedlist"><ul type="round"><li><p> 
-			  &quot;Source&quot; path should have been
-			  prefilled with &quot;(wherever you mounted the
-			  CDROM)<tt>/stage/products.jar</tt>&quot;
-			</p></li><li><p> 
-			  &quot;destination&quot; path says
-			  &quot;<tt>/ora8/m01/app/oracle/product/8.1.7</tt>&quot;
-			</p><p>
-			  If the destination is not correct it is because your
-			  environment variables are not set properly. Make sure you
-			  logged on as <tt>oracle</tt> using
-			  <tt>su - oracle</tt>. If so, edit the
-			  <tt>~/.bash_profile</tt> as you
-			  did in <a href="oracle.html#install-oracle-preinstall" title="Pre-Installation Tasks">the section called &#8220;Pre-Installation Tasks&#8221;</a>
-			</p></li><li><p>
-			  Click &quot;Next&quot; (a pop up window will display Loading
-			  Product information).
-			</p></li></ul></div></li><li><p>
-		  The &quot;Unix Group Name&quot; screen in the OUI:
-		</p><div class="itemizedlist"><ul type="round"><li><p> 
-			  The Unix Group name needs to be set to
-			  '<tt>oinstall</tt>' ( we made
-			  this Unix group earlier ).
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li><li><p> 
-			  A popup window appears instantly, requesting you
-			  to run a script as root:
-			</p></li><li><p>
-			  Open a new terminal window, then type:
-			</p><pre class="programlisting">
+
+          A window will open that welcomes you to the 'Oracle Universal
+          Installer' (OUI). Click on
+          &quot;<tt>Next</tt>&quot;
+
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+            Some people have had trouble with this step on RedHat 7.3 and 8.0. If
+            so, try the following steps before calling
+            <b>./runInstaller</b>:
+
+          </p><div class="orderedlist"><ol type="1"><li><p>
+
+                Execute the following command:
+                <b>/usr/i386-glib21-linux/bin/i386-glibc21-linux-env.sh</b>
+
+              </p></li><li><p>
+
+                Type <b>export LD_ASSUME_KERNEL=2.2.5</b>
+
+              </p></li></ol></div></div></li><li><p>
+
+          The &quot;File Locations&quot; screen in the OUI: 
+
+        </p><div class="itemizedlist"><ul type="round"><li><p> 
+
+              &quot;Source&quot; path should have been
+              prefilled with &quot;(wherever you mounted the
+              CDROM)<tt>/stage/products.jar</tt>&quot;
+
+            </p></li><li><p> 
+
+              &quot;destination&quot; path says
+              &quot;<tt>/ora8/m01/app/oracle/product/8.1.7</tt>&quot;
+
+            </p><p>
+
+              If the destination is not correct it is because your
+              environment variables are not set properly. Make sure you
+              logged on as <tt>oracle</tt> using
+              <tt>su - oracle</tt>. If so, edit the
+              <tt>~/.bash_profile</tt> as you
+              did in <a href="oracle.html#install-oracle-preinstall" title="Pre-Installation Tasks">the section called &#8220;Pre-Installation Tasks&#8221;</a>
+
+            </p></li><li><p>
+
+              Click &quot;Next&quot; (a pop up window will display Loading
+              Product information).
+
+            </p></li></ul></div></li><li><p>
+
+          The &quot;Unix Group Name&quot; screen in the OUI:
+          
+        </p><div class="itemizedlist"><ul type="round"><li><p> 
+              
+              The Unix Group name needs to be set to
+              '<tt>oinstall</tt>' ( we made
+              this Unix group earlier ).
+              
+            </p></li><li><p>
+              
+              Click &quot;Next&quot;
+              
+            </p></li><li><p> 
+              
+              A popup window appears instantly, requesting you
+              to run a script as root:
+              
+            </p></li><li><p>
+          
+          Open a new terminal window, then type:
+          
+        </p><pre class="programlisting">
 joeuser:~$ su -
 root:~# cd /ora8/m01/app/oracle/product/8.1.7
 root:~# ./orainstRoot.sh  
@@ -280,95 +404,165 @@
 root:~# mkdir -p /usr/local/java
 root:~# exit
 joeuser:~$ exit</pre></li><li><p>
-			  Click &quot;Retry&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Available Products&quot; screen in the OUI:
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;Oracle 8i Enterprise Edition 8.1.7.1.0&quot;
-			</p></li><li><p>Click &quot;Next&quot;</p></li></ul></div></li><li><p>
-		  The &quot;Installation Types&quot; screen
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select the &quot;Custom&quot; installation type.
-			</p></li><li><p>Click &quot;Next&quot;</p></li></ul></div></li><li><p>
-		  The &quot;Available Product Components&quot; screen
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  In addition to the defaults, make sure that &quot;Oracle SQLJ
-			  8.1.7.0,&quot; &quot;Oracle Protocol Support 8.1.7.0.0,&quot; and
-			  &quot;Linux Documentation 8.1.7.0.0&quot; are also checked.
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li><li><p>
-			  A progress bar will appear for about 1 minute.
-			</p></li></ul></div></li><li><p>
-		  The &quot;Component Locations&quot; screen in the OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p> 
-			  Click on the &quot;Java Runtime Environment 1.1.8&quot; It
-			  should have the path
-			  &quot;<tt>/ora8/m01/app/oracle/jre/1.1.8</tt>&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li><li><p>
-			  A progress bar will appear for about 1 minute.
-			</p></li></ul></div></li><li><p>
-		  The &quot;Privileged Operation System Groups&quot; screen in the
-		  OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Enter &quot;dba&quot; for &quot;Database Administrator
-			  (OSDBA) Group&quot;
-			</p></li><li><p>			  
-			  Enter &quot;dba&quot; for the &quot;Database Operator
-			  (OSOPER) Group&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li><li><p>
-			  A progress bar will appear for about 1 minute.
-			</p></li></ul></div></li><li><p>
-		  The &quot;Authentication Methods&quot; screen
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The next screen is &quot;Choose JDK home directory&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Keep the default path: <tt>/usr/local/java</tt>
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Create a Database&quot; screen in the OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;No&quot; as we will do this later, after some
-			  important configuration changes.
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The next screen is &quot;Oracle Product Support&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  TCP should be checked with &quot;Status&quot; listed as
-			  Required
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Summary&quot; screen in the OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Check the &quot;Space Requirements&quot; section to verify
-			  you have enough disk space for the install.
-			</p></li><li><p>
-			  Check that &quot;(144 products)&quot; is in the &quot;New
-			  Installations&quot; section title.
-			</p></li><li><p>
-			  Click &quot;Install&quot;
-			</p></li><li><p>
-			  A progress bar will appear for about 20 - 30 minutes. Now is a
-			  good time to take a break.
-			</p></li><li><p>
-			  A &quot;Setup Privileges&quot; window will popup towards the
-			  end of the installation asking you to run a script as
-			  <tt>root</tt>
-			</p></li><li><p> 
-			Run the script. Switch to the oracle user first
-			to set the environment appropriately and then do
-			<b>su</b> to get root privileges, while keeping
-			the oracle user's enviroment.
-			</p><pre class="programlisting">
+          
+          Click &quot;Retry&quot;
+          
+        </p></li></ul></div></li><li><p>
+        
+        The &quot;Available Products&quot; screen in the OUI:
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+            
+            Select &quot;Oracle 8i Enterprise Edition 8.1.7.1.0&quot;
+            
+          </p></li><li><p>
+
+            Click &quot;Next&quot;
+            
+          </p></li></ul></div></li><li><p>
+        
+        The &quot;Installation Types&quot; screen
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+            
+            Select the &quot;Custom&quot; installation type.
+            
+          </p></li><li><p>
+            
+            Click &quot;Next&quot;
+            
+          </p></li></ul></div></li><li><p>
+        
+        The &quot;Available Product Components&quot; screen
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+            
+            In addition to the defaults, make sure that &quot;Oracle SQLJ
+            8.1.7.0,&quot; &quot;Oracle Protocol Support 8.1.7.0.0,&quot; and
+            &quot;Linux Documentation 8.1.7.0.0&quot; are also checked.
+            
+          </p></li><li><p>
+            
+            Click &quot;Next&quot;
+            
+          </p></li><li><p>
+            
+            A progress bar will appear for about 1 minute.
+            
+          </p></li></ul></div></li><li><p>
+        
+        The &quot;Component Locations&quot; screen in the OUI
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p> 
+            
+            Click on the &quot;Java Runtime Environment 1.1.8&quot; It
+            should have the path
+            &quot;<tt>/ora8/m01/app/oracle/jre/1.1.8</tt>&quot;
+            
+          </p></li><li><p>
+            
+            Click &quot;Next&quot;
+            
+          </p></li><li><p>
+            
+            A progress bar will appear for about 1 minute.
+            
+          </p></li></ul></div></li><li><p>
+        
+        The &quot;Privileged Operation System Groups&quot; screen in the
+        OUI
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+            
+            Enter &quot;dba&quot; for &quot;Database Administrator
+            (OSDBA) Group&quot;
+            
+          </p></li><li><p>              
+
+            Enter &quot;dba&quot; for the &quot;Database Operator
+            (OSOPER) Group&quot;
+
+          </p></li><li><p>
+
+            Click &quot;Next&quot;
+
+          </p></li><li><p>
+
+            A progress bar will appear for about 1 minute.
+
+          </p></li></ul></div></li><li><p>
+
+        The &quot;Authentication Methods&quot; screen
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+
+            Click &quot;Next&quot;
+
+          </p></li></ul></div></li><li><p>
+
+        The next screen is &quot;Choose JDK home directory&quot;
+
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+
+              Keep the default path: <tt>/usr/local/java</tt>
+
+          </p></li><li><p>
+
+            Click &quot;Next&quot;
+
+          </p></li></ul></div></li><li><p>
+
+        The &quot;Create a Database&quot; screen in the OUI
+        
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+
+            Select &quot;No&quot; as we will do this later, after some
+            important configuration changes.
+            
+          </p></li><li><p>
+
+            Click &quot;Next&quot;
+            
+          </p></li></ul></div></li><li><p>
+
+        The next screen is &quot;Oracle Product Support&quot;
+
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+
+            TCP should be checked with &quot;Status&quot; listed as
+            Required
+
+          </p></li><li><p>
+
+            Click &quot;Next&quot;
+
+          </p></li></ul></div></li><li><p>
+
+        The &quot;Summary&quot; screen in the OUI
+
+      </p><div class="itemizedlist"><ul type="round"><li><p>
+
+            Check the &quot;Space Requirements&quot; section to verify
+            you have enough disk space for the install.
+
+          </p></li><li><p>
+              Check that &quot;(144 products)&quot; is in the &quot;New
+              Installations&quot; section title.
+            </p></li><li><p>
+              Click &quot;Install&quot;
+            </p></li><li><p>
+              A progress bar will appear for about 20 - 30 minutes. Now is a
+              good time to take a break.
+            </p></li><li><p>
+              A &quot;Setup Privileges&quot; window will popup towards the
+              end of the installation asking you to run a script as
+              <tt>root</tt>
+            </p></li><li><p> 
+            Run the script. Switch to the oracle user first
+            to set the environment appropriately and then do
+            <b>su</b> to get root privileges, while keeping
+            the oracle user's enviroment.
+            </p><pre class="programlisting">
 joeuser:~$ su - oracle
 Password: *********
 oracle:~$ su
@@ -400,294 +594,294 @@
                 Agent. These files may be found in the directories
                 you use for storing other Net8 log and trace files.
                 If such files exist, the OEM IA may not restart.</pre></li><li><p> 
-			  Do not follow the instructions on deleting trace
-			  and log files, it is not necessary.
-			</p></li></ul></div><pre class="programlisting">
+              Do not follow the instructions on deleting trace
+              and log files, it is not necessary.
+            </p></li></ul></div><pre class="programlisting">
 root:~# exit
 joeuser:~$ exit</pre></li><li><p>
-		  Go back to the pop-up window and click &quot;OK&quot;
-		</p></li><li><p>
-		  The &quot;Configuration Tools&quot; screen in the OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  This window displays the config tools that will automatically
-			  be launched.
-			</p></li></ul></div></li><li><p>
-		  The &quot;Welcome&quot; screen in the &quot;net 8 Configuration
-		  Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Make sure the &quot;Perform Typical installation&quot; is
-			  <span class="strong"><em>not</em></span> selected.
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li><li><p> 
-			  The &quot;Directory Service Access&quot; screen in the
-			  &quot;Net 8 Configuration Assistant&quot;
-			</p></li><li><p>
-			  Select &quot;No&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Listener Configuration, Listener Name&quot; screen in
-		  the &quot;Net 8 Configuration Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Accept the default listener name of &quot;LISTENER&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p> 
-		  The &quot;Listener Configuration, Select
-		  Protocols&quot; screen in the &quot;Net 8 Configuration
-		  Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  The only choice in &quot;Select protocols:&quot; should be
-			  &quot;TCP/IP&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Listener Configuration TCP/IP Protocol&quot; screen in
-		  the &quot;Net 8 Configuration Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Default Port should be 1521 and selected.
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p> 
-		  The &quot;Listener Configuration, More Listeners&quot; screen in
-		  the &quot;Net 8 Configuration Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;No&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Listener Configuration Done&quot; screen in the
-		  &quot;Net 8 Configuration Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p> 
-		  The &quot;Naming Methods Configuration&quot; screen
-		  in the &quot;Net 8 Configuration Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;No&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Done&quot; screen in the &quot;Net 8 Configuration
-		  Assistant&quot;
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Click &quot;Finish&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;End of Installation&quot; screen in the OUI
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Click &quot;Exit&quot;
-			</p></li><li><p>
-			  Click &quot;Yes&quot; on the confirmation pop up window.
-			</p></li><li><p>
-			  The Oracle Universal Installer window should have disappeared!
-			</p></li></ul></div></li></ul></div><p>
-	  Congratulations, you have just installed Oracle 8.1.7 Server!
-	  However, you still need to create a database which can take about an
-	  hour of non-interactive time, so don't quit yet.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-create"></a>Creating the First Database</h3></div></div><p>
-	  This step will take you through the steps of creating a customized
-	  database. Be warned that this process takes about an hour on a
-	  Pentium II with 128 MB of RAM.
-	</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>RedHat 7.3 users: Before running <b>dbassist</b>, do the following.</p><div class="orderedlist"><ol type="1"><li><p>
-			Download the <a href="http://otn.oracle.com/software/products/oracle8i/htdocs/linuxsoft.html" target="_top">glibc
-			patch</a> from Oracle Technet into <pre class="screen">/tmp</pre>.
-		  </p></li><li><p>
-			cd $ORACLE_HOME
-			</p></li><li><p>
-			tar xzf /tmp/glibc2.1.3-stubs.tgz
-			</p></li><li><p>
-			./setup_stubs
-			</p></li></ol></div></div><div class="itemizedlist"><ul type="disc"><li><p> 
-		  Make sure you are running X. Open up a terminal and
-		  <tt>su</tt> to oracle and then run the
-		  <tt>dbassist</tt> program.
-		</p><pre class="programlisting">
+          Go back to the pop-up window and click &quot;OK&quot;
+        </p></li><li><p>
+          The &quot;Configuration Tools&quot; screen in the OUI
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              This window displays the config tools that will automatically
+              be launched.
+            </p></li></ul></div></li><li><p>
+          The &quot;Welcome&quot; screen in the &quot;net 8 Configuration
+          Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Make sure the &quot;Perform Typical installation&quot; is
+              <span class="strong"><em>not</em></span> selected.
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li><li><p> 
+              The &quot;Directory Service Access&quot; screen in the
+              &quot;Net 8 Configuration Assistant&quot;
+            </p></li><li><p>
+              Select &quot;No&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Listener Configuration, Listener Name&quot; screen in
+          the &quot;Net 8 Configuration Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Accept the default listener name of &quot;LISTENER&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p> 
+          The &quot;Listener Configuration, Select
+          Protocols&quot; screen in the &quot;Net 8 Configuration
+          Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              The only choice in &quot;Select protocols:&quot; should be
+              &quot;TCP/IP&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Listener Configuration TCP/IP Protocol&quot; screen in
+          the &quot;Net 8 Configuration Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Default Port should be 1521 and selected.
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p> 
+          The &quot;Listener Configuration, More Listeners&quot; screen in
+          the &quot;Net 8 Configuration Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;No&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Listener Configuration Done&quot; screen in the
+          &quot;Net 8 Configuration Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p> 
+          The &quot;Naming Methods Configuration&quot; screen
+          in the &quot;Net 8 Configuration Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;No&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Done&quot; screen in the &quot;Net 8 Configuration
+          Assistant&quot;
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Click &quot;Finish&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;End of Installation&quot; screen in the OUI
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Click &quot;Exit&quot;
+            </p></li><li><p>
+              Click &quot;Yes&quot; on the confirmation pop up window.
+            </p></li><li><p>
+              The Oracle Universal Installer window should have disappeared!
+            </p></li></ul></div></li></ul></div><p>
+      Congratulations, you have just installed Oracle 8.1.7 Server!
+      However, you still need to create a database which can take about an
+      hour of non-interactive time, so don't quit yet.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-create"></a>Creating the First Database</h3></div></div><p>
+      This step will take you through the steps of creating a customized
+      database. Be warned that this process takes about an hour on a
+      Pentium II with 128 MB of RAM.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>RedHat 7.3 and 8.0 users: Before running <b>dbassist</b>, do the following.</p><div class="orderedlist"><ol type="1"><li><p>
+            Download the <a href="http://otn.oracle.com/software/products/oracle8i/htdocs/linuxsoft.html" target="_top">glibc
+            patch</a> from Oracle Technet into <tt>/tmp</tt>.
+          </p></li><li><p>
+            cd $ORACLE_HOME
+            </p></li><li><p>
+            tar xzf /tmp/glibc2.1.3-stubs.tgz
+            </p></li><li><p>
+            ./setup_stubs
+            </p></li></ol></div></div><div class="itemizedlist"><ul type="disc"><li><p> 
+          Make sure you are running X. Open up a terminal and
+          <tt>su</tt> to oracle and then run the
+          <tt>dbassist</tt> program.
+        </p><pre class="programlisting">
 joeuser:~$ xhost +localhost
 joeuser:~$ su - oracle
 Password: *********
 oracle:~$ export DISPLAY=localhost:0.0
 oracle:~$ dbassist</pre></li><li><p>
-		  The &quot;Welcome&quot; screen in the Oracle Database
-		  Configuration Agent (ODCA)
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;Create a database&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Select database type&quot; screen in the ODCA 
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;Custom&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;Primary Database Type&quot; window in ODCA 
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;Multipurpose&quot;
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  The &quot;concurrent users&quot; screen of the ODCA 
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Select &quot;60&quot; concurrent users. 
-			</p></li><li><p>
-			  Click &quot;Next&quot;
-			</p></li></ul></div></li><li><p>
-		  Select &quot;<tt>Dedicated Server
-			Mode</tt>&quot;, click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p>
-		  Accept all of the options, and click
-		  &quot;<tt>Next</tt>&quot; Oracle Visual
-		  Information Retrieval may be grayed out. If so, you can ignore
-		  it; just make sure that everything else is checked.
-		</p></li><li><p>
-		  For &quot;Global Database Name&quot;, enter
-		  &quot;<tt>ora8</tt>&quot;; for
-		  &quot;SID&quot;, also enter
-		  &quot;<tt>ora8</tt>&quot; (it should do
-		  this automatically). Click
-		  &quot;<tt>Next</tt>&quot;.
-		</p></li><li><p>
-		  Accept the defaults for the next screen (control file
-		  location). Click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p>
-		  Go to the &quot;temporary&quot; and
-		  &quot;rollback&quot; tabs, and change the Size
-		  (upper-right text box) to
-		  <tt>150</tt>MB. Click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p>
-		  Increase the redo log sizes to
-		  <tt>10000K</tt> each. Click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p>
-		  Use the default checkpoint interval &amp; timeout. Click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p> 		  
-		  Increase &quot;<tt>Processes</tt>&quot;
-		  to <tt>100</tt>;
-		  &quot;<tt>Block Size</tt>&quot; to
-		  <tt>4096</tt> (better for small Linux
-		  boxes; use 8192 for a big Solaris machine).
-		</p></li><li><p>
-		  Accept the defaults for the Trace File Directory. Click
-		  &quot;<tt>Next</tt>&quot;
-		</p></li><li><p>
-		  Finally, select &quot;<tt>Save information to a shell
-			script</tt>&quot; and click
-		  &quot;<tt>Finish</tt>&quot; (We're
-		  going to examine the contents of this file before creating our
-		  database.)
-		</p></li><li><p>
-		  Click the &quot;<tt>Save</tt>&quot;
-		  button. Oracle will automatically save it to the correct
-		  directory and with the correct file name. This will likely be
-		  <tt>/ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh</tt>
-		</p></li><li><p> 
-		  It will alert you that the script has been saved
-		  successfully.
-		</p></li><li><p> 
-		  Now we need to customize the database configuration a bit. While
-		  still logged on as <tt>oracle</tt>, edit
-		  the database initialization script (run when the db loads). The
-		  scripts are kept in
-		  <tt>$ORACLE_HOME/dbs</tt> and the name of
-		  the script is usually
-		  <tt>init</tt><span class="emphasis"><em>SID</em></span><tt>.ora</tt>
-		  where <span class="emphasis"><em>SID</em></span> is the SID of your
-		  database. Assuming your
-		  <tt>$ORACLE_HOME</tt> matches our default
-		  of
-		  <tt>/ora8/m01/app/oracle/product/8.1.7</tt>,
-		  the following will open the file for editing.
-		</p><pre class="programlisting">
+          The &quot;Welcome&quot; screen in the Oracle Database
+          Configuration Agent (ODCA)
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;Create a database&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Select database type&quot; screen in the ODCA 
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;Custom&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;Primary Database Type&quot; window in ODCA 
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;Multipurpose&quot;
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          The &quot;concurrent users&quot; screen of the ODCA 
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Select &quot;60&quot; concurrent users. 
+            </p></li><li><p>
+              Click &quot;Next&quot;
+            </p></li></ul></div></li><li><p>
+          Select &quot;<tt>Dedicated Server
+            Mode</tt>&quot;, click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>
+          Accept all of the options, and click
+          &quot;<tt>Next</tt>&quot; Oracle Visual
+          Information Retrieval may be grayed out. If so, you can ignore
+          it; just make sure that everything else is checked.
+        </p></li><li><p>
+          For &quot;Global Database Name&quot;, enter
+          &quot;<tt>ora8</tt>&quot;; for
+          &quot;SID&quot;, also enter
+          &quot;<tt>ora8</tt>&quot; (it should do
+          this automatically). Click
+          &quot;<tt>Next</tt>&quot;.
+        </p></li><li><p>
+          Accept the defaults for the next screen (control file
+          location). Click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>
+          Go to the &quot;temporary&quot; and
+          &quot;rollback&quot; tabs, and change the Size
+          (upper-right text box) to
+          <tt>150</tt>MB. Click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>
+          Increase the redo log sizes to
+          <tt>10000K</tt> each. Click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>
+          Use the default checkpoint interval &amp; timeout. Click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>        
+          Increase &quot;<tt>Processes</tt>&quot;
+          to <tt>100</tt>;
+          &quot;<tt>Block Size</tt>&quot; to
+          <tt>4096</tt> (better for small Linux
+          boxes; use 8192 for a big Solaris machine).
+        </p></li><li><p>
+          Accept the defaults for the Trace File Directory. Click
+          &quot;<tt>Next</tt>&quot;
+        </p></li><li><p>
+          Finally, select &quot;<tt>Save information to a shell
+            script</tt>&quot; and click
+          &quot;<tt>Finish</tt>&quot; (We're
+          going to examine the contents of this file before creating our
+          database.)
+        </p></li><li><p>
+          Click the &quot;<tt>Save</tt>&quot;
+          button. Oracle will automatically save it to the correct
+          directory and with the correct file name. This will likely be
+          <tt>/ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh</tt>
+        </p></li><li><p> 
+          It will alert you that the script has been saved
+          successfully.
+        </p></li><li><p> 
+          Now we need to customize the database configuration a bit. While
+          still logged on as <tt>oracle</tt>, edit
+          the database initialization script (run when the db loads). The
+          scripts are kept in
+          <tt>$ORACLE_HOME/dbs</tt> and the name of
+          the script is usually
+          <tt>init</tt><span class="emphasis"><em>SID</em></span><tt>.ora</tt>
+          where <span class="emphasis"><em>SID</em></span> is the SID of your
+          database. Assuming your
+          <tt>$ORACLE_HOME</tt> matches our default
+          of
+          <tt>/ora8/m01/app/oracle/product/8.1.7</tt>,
+          the following will open the file for editing.
+        </p><pre class="programlisting">
 oracle:~$ emacs /ora8/m01/app/oracle/product/8.1.7/dbs/initora8.ora</pre></li><li><p>
-		  Add the following line to the end:
-		</p><pre class="programlisting">
+          Add the following line to the end:
+        </p><pre class="programlisting">
 nls_date_format = &quot;YYYY-MM-DD&quot;</pre></li><li><p>
-		  Now find the <tt>open_cursors</tt> line
-		  in the file. If you're using
-		  <tt>emacs</tt> scroll up to the top of
-		  the buffer and do <tt>CTRL-S</tt> and
-		  type <tt>open_cursors</tt> to find the
-		  line. The default is <tt>100</tt>. Change
-		  it to <tt>500</tt>.
-		</p><pre class="programlisting">
+          Now find the <tt>open_cursors</tt> line
+          in the file. If you're using
+          <tt>emacs</tt> scroll up to the top of
+          the buffer and do <tt>CTRL-S</tt> and
+          type <tt>open_cursors</tt> to find the
+          line. The default is <tt>100</tt>. Change
+          it to <tt>500</tt>.
+        </p><pre class="programlisting">
 open_cursors = 500</pre></li><li><p>
-		  Save the file. In emacs, do <tt>CTRL-X
-			CTRL-S</tt> to save followed by
-		  <tt>CTRL-X CTRL-C</tt> to exit or use
-		  the menu.
-		</p></li><li><p>
-		  At this point, you are ready to initiate database creation. We
-		  recommend shutting down X to free up some RAM unless you have 256
-		  MB of RAM or more.  You can do this quickly by doing a
-		  <tt>CRTL-ALT-BACKSPACE</tt>, but make
-		  sure you have saved any files you were editing. You should now be
-		  returned to a text shell prompt. If you get sent to a graphical
-		  login screen instead, switch to a virtual console by doing
-		  <tt>CRTL-ALT-F1</tt>. Then login as
-		  <tt>oracle</tt>.
-		</p></li><li><p>		  
-		  Change to the directory where the database creation script is and
-		  run it:
-		</p><pre class="programlisting">
+          Save the file. In emacs, do <tt>CTRL-X
+            CTRL-S</tt> to save followed by
+          <tt>CTRL-X CTRL-C</tt> to exit or use
+          the menu.
+        </p></li><li><p>
+          At this point, you are ready to initiate database creation. We
+          recommend shutting down X to free up some RAM unless you have 256
+          MB of RAM or more.  You can do this quickly by doing a
+          <tt>CRTL-ALT-BACKSPACE</tt>, but make
+          sure you have saved any files you were editing. You should now be
+          returned to a text shell prompt. If you get sent to a graphical
+          login screen instead, switch to a virtual console by doing
+          <tt>CRTL-ALT-F1</tt>. Then login as
+          <tt>oracle</tt>.
+        </p></li><li><p>        
+          Change to the directory where the database creation script is and
+          run it:
+        </p><pre class="programlisting">
 oracle:~$ cd /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib
 oracle:/ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib$ ./sqlora8.sh</pre><p>
-		  In some instances, Oracle will save the file to
-		  <tt>/ora8/m01/app/oracle/product/8.1.7/assistants/dbca</tt>
-		  Try running the script there if your first attempt does not
-		  succeed.
-		</p></li><li><p>
-		  Your database will now be built. It will take &gt; 1 hour - no
-		  fooling.  You will see lots of errors scroll by (like:
-		  &quot;ORA-01432: public synonym to be dropped does not
-		  exist&quot;) Fear not, this is normal.
-		</p><p>
-		  Eventually, you'll be returned to your shell prompt. In the
-		  meantime, relax, you've earned it.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="istall-oracle-test"></a>Acceptance Test</h3></div></div><p>
-	  For this step, open up a terminal and
-	  <tt>su</tt> to
-	  <tt>oracle</tt> as usual. You should be
-	  running X and Netscape (or other web browser) for this phase.
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  You need to download the &quot;Oracle Acceptance Test&quot; file.
-		  It's available <a href="files/acceptance-sql.txt" target="_top">here</a> and at <a href="http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt" target="_top">http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt</a>.
-		  Save the file to <tt>/tmp</tt>
-		</p></li><li><p>
-		  In the oracle shell, copy the file.
-		</p><pre class="programlisting">
-oracle:~$ cp /tmp/acceptance-sql.txt /tmp/acceptance.sql</pre></li><li><p>		  
-		  Once you've got the acceptance test file all set, stay in
-		  your term and type the following:
-		</p><pre class="programlisting">
+          In some instances, Oracle will save the file to
+          <tt>/ora8/m01/app/oracle/product/8.1.7/assistants/dbca</tt>
+          Try running the script there if your first attempt does not
+          succeed.
+        </p></li><li><p>
+          Your database will now be built. It will take &gt; 1 hour - no
+          fooling.  You will see lots of errors scroll by (like:
+          &quot;ORA-01432: public synonym to be dropped does not
+          exist&quot;) Fear not, this is normal.
+        </p><p>
+          Eventually, you'll be returned to your shell prompt. In the
+          meantime, relax, you've earned it.
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="istall-oracle-test"></a>Acceptance Test</h3></div></div><p>
+      For this step, open up a terminal and
+      <tt>su</tt> to
+      <tt>oracle</tt> as usual. You should be
+      running X and Netscape (or other web browser) for this phase.
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+          You need to download the &quot;Oracle Acceptance Test&quot; file.
+          It's available <a href="files/acceptance-sql.txt" target="_top">here</a> and at <a href="http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt" target="_top">http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt</a>.
+          Save the file to <tt>/tmp</tt>
+        </p></li><li><p>
+          In the oracle shell, copy the file.
+        </p><pre class="programlisting">
+oracle:~$ cp /tmp/acceptance-sql.txt /tmp/acceptance.sql</pre></li><li><p>        
+          Once you've got the acceptance test file all set, stay in
+          your term and type the following:
+        </p><pre class="programlisting">
 oracle:~$ sqlplus system/manager</pre><p>
-		  SQL*Plus should startup. If you get an <tt>ORA-01034:
-			Oracle not Available</tt> error, it is because your
-		  Oracle instance is not running.  You can manually start it as
-		  the <tt>oracle</tt> user.</p><pre class="programlisting">
+          SQL*Plus should startup. If you get an <tt>ORA-01034:
+            Oracle not Available</tt> error, it is because your
+          Oracle instance is not running.  You can manually start it as
+          the <tt>oracle</tt> user.</p><pre class="programlisting">
 oracle:~$ svrmgrl
 SVRMGR&gt; connect internal
 SVRMGR&gt; startup</pre></li><li><p>
-		  Now that you're into SQL*Plus, change the default passwords
-		  for system, sys, and ctxsys to &quot;alexisahunk&quot; (or to
-		  something you'll remember):
-		</p><pre class="programlisting">
+          Now that you're into SQL*Plus, change the default passwords
+          for system, sys, and ctxsys to &quot;alexisahunk&quot; (or to
+          something you'll remember):
+        </p><pre class="programlisting">
 SQL&gt; alter user system identified by alexisahunk;
 SQL&gt; alter user sys identified by alexisahunk;
 SQL&gt; alter user ctxsys identified by alexisahunk;</pre></li><li><p>
-		  Verify that your date settings are correct. 
-		</p><pre class="programlisting">
+          Verify that your date settings are correct. 
+        </p><pre class="programlisting">
 SQL&gt; select sysdate from dual;</pre><p>
-		  If you don't see a date that fits the format
-		  <tt>YYYY-MM-DD</tt>, please read <a href="oracle.html#install-oracle-troubleshooting" title="Troubleshooting Oracle Dates">the section called &#8220;Troubleshooting Oracle Dates&#8221;</a>.
-		</p></li><li><p>
-		  At this point we are going to hammer your database with an
-		  intense acceptance test. This usually takes around 30 minutes.
-		</p><pre class="programlisting">
+          If you don't see a date that fits the format
+          <tt>YYYY-MM-DD</tt>, please read <a href="oracle.html#install-oracle-troubleshooting" title="Troubleshooting Oracle Dates">the section called &#8220;Troubleshooting Oracle Dates&#8221;</a>.
+        </p></li><li><p>
+          At this point we are going to hammer your database with an
+          intense acceptance test. This usually takes around 30 minutes.
+        </p><pre class="programlisting">
 SQL&gt; @ /tmp/acceptance.sql
 
 ; A bunch of lines will scroll by.  You'll know if the test worked if
@@ -698,77 +892,77 @@
 2000-06-10
 
 SQL&gt;</pre><p>
-		  Many people encounter an error regarding <tt>maximum
-			key length</tt>:
-		</p><pre class="programlisting">
+          Many people encounter an error regarding <tt>maximum
+            key length</tt>:
+        </p><pre class="programlisting">
 ERROR at line 1:
 ORA-01450: maximum key length (758) exceeded</pre><p>
-		  This error occurs if your database block size is wrong and is
-		  usually suffered by people trying to load OpenACS into a
-		  pre-existing database.  Unfortunately, the only solution is to
-		  create a new database with a block size of at least
-		  <tt>4096</tt>. For instructions on how to
-		  do this, see <a href="oracle.html#install-oracle-create" title="Creating the First Database">the section called &#8220;Creating the First Database&#8221;</a> above. You
-		  can set the parameter using the
-		  <tt>dbassist</tt> program or by setting
-		  the <tt>DB_BLOCK_SIZE</tt> parameter in
-		  your database's creation script.
-		</p><p>
-		  If there were no errors, then consider yourself fortunate. Your
-		  Oracle installation is working.
-		</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-automating"></a>Automating Startup &amp; Shutdown</h3></div></div><p>
-	  You will want to automate the database startup and shutdown process.
-	  It's probably best to have Oracle spring to life when you boot up
-	  your machine.
-	</p><div class="itemizedlist"><ul type="disc"><li><p> 
-		  Oracle includes a script called
-		  <tt>dbstart</tt> that can be used to
-		  automatically start the database. Unfortunately, the script
-		  shipped in the Linux distribution does not work out of the
-		  box. The fix is simple. Follow these directions to apply
-		  it. First, save <a href="files/dbstart.txt" target="_top">dbstart</a> to
-		  <tt>/tmp</tt>. Then, as 
-		  <tt>oracle</tt>, do the following:
-		</p><pre class="programlisting">
+          This error occurs if your database block size is wrong and is
+          usually suffered by people trying to load OpenACS into a
+          pre-existing database.  Unfortunately, the only solution is to
+          create a new database with a block size of at least
+          <tt>4096</tt>. For instructions on how to
+          do this, see <a href="oracle.html#install-oracle-create" title="Creating the First Database">the section called &#8220;Creating the First Database&#8221;</a> above. You
+          can set the parameter using the
+          <tt>dbassist</tt> program or by setting
+          the <tt>DB_BLOCK_SIZE</tt> parameter in
+          your database's creation script.
+        </p><p>
+          If there were no errors, then consider yourself fortunate. Your
+          Oracle installation is working.
+        </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-automating"></a>Automating Startup &amp; Shutdown</h3></div></div><p>
+      You will want to automate the database startup and shutdown process.
+      It's probably best to have Oracle spring to life when you boot up
+      your machine.
+    </p><div class="itemizedlist"><ul type="disc"><li><p> 
+          Oracle includes a script called
+          <tt>dbstart</tt> that can be used to
+          automatically start the database. Unfortunately, the script
+          shipped in the Linux distribution does not work out of the
+          box. The fix is simple. Follow these directions to apply
+          it. First, save <a href="files/dbstart.txt" target="_top">dbstart</a> to
+          <tt>/tmp</tt>. Then, as 
+          <tt>oracle</tt>, do the following:
+        </p><pre class="programlisting">
 oracle:~$ cp /tmp/dbstart.txt /ora8/m01/app/oracle/product/8.1.7/bin/dbstart 
 oracle:~$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/dbstart</pre></li><li><p>
 
-		  While you're logged in as
-		  <tt>oracle</tt>, you should configure the
-		  <tt>oratab</tt> file to load your
-		  database at start.  Edit the file
-		  <tt>/etc/oratab</tt>: 
-		</p><div class="itemizedlist"><ul type="round"><li><p>You will see this line. </p><pre class="programlisting">
+          While you're logged in as
+          <tt>oracle</tt>, you should configure the
+          <tt>oratab</tt> file to load your
+          database at start.  Edit the file
+          <tt>/etc/oratab</tt>: 
+        </p><div class="itemizedlist"><ul type="round"><li><p>You will see this line. </p><pre class="programlisting">
 ora8:/ora8/m01/app/oracle/product/8.1.7:N</pre><p>
-			  By the way, if you changed the service name or have multiple
-			  databases, the format of this file is:
-			</p><p>
-			  <span class="emphasis"><em><tt>service_name:$ORACLE_HOME:Y || N
-				  (for autoload)</tt></em></span>
-			</p></li><li><p>
-			  Change the last letter from &quot;N&quot; to
-			  &quot;Y&quot;. This tells Oracle that you want the database
-			  to start when the machine boots. It should look like this.
-			</p><pre class="programlisting">
+              By the way, if you changed the service name or have multiple
+              databases, the format of this file is:
+            </p><p>
+              <span class="emphasis"><em><tt>service_name:$ORACLE_HOME:Y || N
+                  (for autoload)</tt></em></span>
+            </p></li><li><p>
+              Change the last letter from &quot;N&quot; to
+              &quot;Y&quot;. This tells Oracle that you want the database
+              to start when the machine boots. It should look like this.
+            </p><pre class="programlisting">
 ora8:/ora8/m01/app/oracle/product/8.1.7:Y</pre></li><li><p>
-			  Save the file &amp; quit the terminal.
-			</p></li></ul></div></li><li><p> 
-		  You need a script to automate startup and shutdown. Save <a href="files/oracle8i.txt" target="_top">oracle8i.txt</a> in
-		  <tt>/tmp</tt>. Then login as
-		  <tt>root</tt> and install the
-		  script. (Debian users: substitute
-		  <tt>/etc/init.d</tt> for
-		  <tt>/etc/rc.d/init.d</tt> throughout 
-		  this section)
-		</p><pre class="programlisting">
+              Save the file &amp; quit the terminal.
+            </p></li></ul></div></li><li><p> 
+          You need a script to automate startup and shutdown. Save <a href="files/oracle8i.txt" target="_top">oracle8i.txt</a> in
+          <tt>/tmp</tt>. Then login as
+          <tt>root</tt> and install the
+          script. (Debian users: substitute
+          <tt>/etc/init.d</tt> for
+          <tt>/etc/rc.d/init.d</tt> throughout 
+          this section)
+        </p><pre class="programlisting">
 oracle:~$ su -
 root:~# cp /tmp/oracle8i.txt /etc/rc.d/init.d/oracle8i
 root:~# chown root.root /etc/rc.d/init.d/oracle8i
 root:~# chmod 700 /etc/rc.d/init.d/oracle8i</pre></li><li><p> 
-		  Test the script by typing the following commands and checking the
-		  output. (Debian Users: as root, do <tt>mkdir
-		  /var/lock/subsys</tt> first)
-		</p><pre class="programlisting">
+          Test the script by typing the following commands and checking the
+          output. (Debian Users: as root, do <tt>mkdir
+          /var/lock/subsys</tt> first)
+        </p><pre class="programlisting">
 root:~# /etc/rc.d/init.d/oracle8i stop
 Oracle 8i auto start/stop
 Shutting Oracle8i:
@@ -811,10 +1005,10 @@
 
 Database &quot;ora8&quot; warm started.
 
-Database &quot;ora8&quot; warm started.</pre></li><li><p>		  
-		  If it worked, then run these commands to make the startup and
-		  shutdown automatic. 
-		</p><div class="itemizedlist"><ul type="round"><li><p>Red Hat users:</p><pre class="programlisting">
+Database &quot;ora8&quot; warm started.</pre></li><li><p>        
+          If it worked, then run these commands to make the startup and
+          shutdown automatic. 
+        </p><div class="itemizedlist"><ul type="round"><li><p>Red Hat users:</p><pre class="programlisting">
 root:~# cd /etc/rc.d/init.d/                      
 root:~# chkconfig --add oracle8i
 root:~# chkconfig --list oracle8i
@@ -869,24 +1063,24 @@
 Executing /sbin/conf.d/SuSEconfig.ypclient...
 Processing index files of all manpages...
 Finished.</pre></li></ul></div></li><li><p>
-		  You also need some scripts to automate startup and shutdown of
-		  the Oracle8i listener. The listener is a name server that allows
-		  your Oracle programs to talk to local and remote databases using
-		  a standard naming convention. It is required for Intermedia Text
-		  and full site search.
-		</p><p>
-		  Download these three scripts into
-		  <tt>/tmp</tt>
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  <a href="files/startlsnr.txt" target="_top">startlsnr.txt</a>
-			</p></li><li><p>
-			  <a href="files/stoplsnr.txt" target="_top">stoplsnr.txt</a>
-			</p></li><li><p>
-			  <a href="files/listener8i.txt" target="_top">listener8i.txt</a>
-			</p></li></ul></div><p>
-		  Now issue the following commands (still as
-		  <tt>root</tt>).
-		</p><pre class="programlisting">
+          You also need some scripts to automate startup and shutdown of
+          the Oracle8i listener. The listener is a name server that allows
+          your Oracle programs to talk to local and remote databases using
+          a standard naming convention. It is required for Intermedia Text
+          and full site search.
+        </p><p>
+          Download these three scripts into
+          <tt>/tmp</tt>
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              <a href="files/startlsnr.txt" target="_top">startlsnr.txt</a>
+            </p></li><li><p>
+              <a href="files/stoplsnr.txt" target="_top">stoplsnr.txt</a>
+            </p></li><li><p>
+              <a href="files/listener8i.txt" target="_top">listener8i.txt</a>
+            </p></li></ul></div><p>
+          Now issue the following commands (still as
+          <tt>root</tt>).
+        </p><pre class="programlisting">
 root:~# su - oracle
 oracle:~$ cp /tmp/startlsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/startlsnr
 oracle:~$ cp /tmp/stoplsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/stoplsnr    
@@ -896,9 +1090,9 @@
 root:~# cp /tmp/listener8i.txt /etc/rc.d/init.d/listener8i
 root:~# cd /etc/rc.d/init.d
 root:/etc/rc.d/init.d# chmod 700 listener8i</pre><p>
-		  Test the listener automation by running the following commands
-		  and checking the output.
-		</p><pre class="programlisting">
+          Test the listener automation by running the following commands
+          and checking the output.
+        </p><pre class="programlisting">
 root:/etc/rc.d/init.d# ./listener8i stop
 Oracle 8i listener start/stop
 Shutting down Listener for 8i: 
@@ -941,13 +1135,13 @@
   PLSExtProc        has 1 service handler(s)
   ora8      has 1 service handler(s)
 The command completed successfully</pre><p>
-		  This test will verify that the listener is operating
-		  normally. Login into the database using the listener naming
-		  convention.
-		</p><p>
-		  <tt>sqlplus</tt>
-		  <span class="emphasis"><em><tt>username/password/@SID</tt></em></span>
-		</p><pre class="programlisting">
+          This test will verify that the listener is operating
+          normally. Login into the database using the listener naming
+          convention.
+        </p><p>
+          <tt>sqlplus</tt>
+          <span class="emphasis"><em><tt>username/password/@SID</tt></em></span>
+        </p><pre class="programlisting">
 root:~# su - oracle
 oracle:~$ sqlplus system/alexisahunk@ora8
 
@@ -960,16 +1154,16 @@
 SQL&gt; exit
 oracle:~$ exit
 root:~#</pre><div class="itemizedlist"><ul type="round"><li><p>RedHat users:</p><p>
-			  Now run <tt>chkconfig</tt> on the
-			  <tt>listener8i</tt> script.
-			</p><pre class="programlisting">
+              Now run <tt>chkconfig</tt> on the
+              <tt>listener8i</tt> script.
+            </p><pre class="programlisting">
 root:~# cd /etc/rc.d/init.d/
 root:/etc/rc.d/init.d# chkconfig --add listener8i
 root:/etc/rc.d/init.d# chkconfig --list listener8i
 listener8i      0:off   1:off   2:off   3:on    4:on    5:on    6:off</pre></li><li><p>Debian users:</p><p>
-			  Now run <tt>update-rc.d</tt> on the 
-			  <tt>listener8i</tt> script.
-			</p><pre class="programlisting">
+              Now run <tt>update-rc.d</tt> on the 
+              <tt>listener8i</tt> script.
+            </p><pre class="programlisting">
 root:~# update-rc.d listener8i defaults 21 19
  Adding system startup for /etc/init.d/listener8i ...
    /etc/rc0.d/K19listener8i -&gt; ../init.d/listener8i
@@ -979,54 +1173,54 @@
    /etc/rc3.d/S21listener8i -&gt; ../init.d/listener8i
    /etc/rc4.d/S21listener8i -&gt; ../init.d/listener8i
    /etc/rc5.d/S21listener8i -&gt; ../init.d/listener8i</pre></li></ul></div></li><li><p>
-		  Test the automation
-		</p><p>
-		  As a final test, reboot your computer and make sure Oracle comes
-		  up. You can do this by typing
-		</p><pre class="programlisting">
+          Test the automation
+        </p><p>
+          As a final test, reboot your computer and make sure Oracle comes
+          up. You can do this by typing
+        </p><pre class="programlisting">
 root:~# /sbin/shutdown -r -t 0 now</pre><p>
-		  Log back in and ensure that Oracle started automatically. 
-		</p><pre class="programlisting">
+          Log back in and ensure that Oracle started automatically. 
+        </p><pre class="programlisting">
 joeuser:~$ su - oracle
 oracle:~$ sqlplus system/alexisahunk@ora8
 
 SQL&gt; exit</pre></li></ul></div><p>
-	  Congratulations, your installation of Oracle 8.1.7 is
-	  complete.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-troubleshooting"></a>Troubleshooting Oracle Dates</h3></div></div><p>
-	  Oracle has an internal representation for storing the data based on
-	  the number of seconds elapsed since some date. However, for the
-	  purposes of inputing dates into Oracle and getting them back out,
-	  Oracle needs to be told to use a specific date format. By default, it
-	  uses an Oracle-specific format which isn't copacetic. You want
-	  Oracle to use the ANSI-compliant date format which is of form
-	  <tt>'YYYY-MM-DD'</tt>.
-	</p><p>
-	  To fix this, you should include the following line in
-	  <tt>$ORACLE_HOME/dbs/init</tt><span class="emphasis"><em>SID</em></span><tt>.ora</tt>
-	  or for the default case,
-	  <tt>$ORACLE_HOME/dbs/initora8.ora</tt>
-	</p><pre class="programlisting">
+      Congratulations, your installation of Oracle 8.1.7 is
+      complete.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-troubleshooting"></a>Troubleshooting Oracle Dates</h3></div></div><p>
+      Oracle has an internal representation for storing the data based on
+      the number of seconds elapsed since some date. However, for the
+      purposes of inputing dates into Oracle and getting them back out,
+      Oracle needs to be told to use a specific date format. By default, it
+      uses an Oracle-specific format which isn't copacetic. You want
+      Oracle to use the ANSI-compliant date format which is of form
+      <tt>'YYYY-MM-DD'</tt>.
+    </p><p>
+      To fix this, you should include the following line in
+      <tt>$ORACLE_HOME/dbs/init</tt><span class="emphasis"><em>SID</em></span><tt>.ora</tt>
+      or for the default case,
+      <tt>$ORACLE_HOME/dbs/initora8.ora</tt>
+    </p><pre class="programlisting">
 nls_date_format = &quot;YYYY-MM-DD&quot;</pre><p>
-	  You test whether this solved the problem by firing up
-	  <tt>sqlplus</tt> and typing: 
-	</p><pre class="programlisting">
+      You test whether this solved the problem by firing up
+      <tt>sqlplus</tt> and typing: 
+    </p><pre class="programlisting">
 SQL&gt; select sysdate from dual;</pre><p>
-	  You should see back a date like
-	  <tt>2000-06-02</tt>. If some of the date is
-	  chopped off, i.e. like <tt>2000-06-0</tt>,
-	  everything is still fine. The problem here is that
-	  <tt>sqlplus</tt> is simply truncating the
-	  output. You can fix this by typing:
-	</p><pre class="programlisting">
+      You should see back a date like
+      <tt>2000-06-02</tt>. If some of the date is
+      chopped off, i.e. like <tt>2000-06-0</tt>,
+      everything is still fine. The problem here is that
+      <tt>sqlplus</tt> is simply truncating the
+      output. You can fix this by typing:
+    </p><pre class="programlisting">
 SQL&gt; column sysdate format a15
 SQL&gt; select sysdate from dual;</pre><p>
-	  If the date does not conform to this format, double-check that you
-	  included the necessary line in the init scripts. If it still
-	  isn't working, make sure that you have restarted the database
-	  since adding the line:
-	</p><pre class="programlisting">
-nsadmin:~$ svrmgrl
+      If the date does not conform to this format, double-check that you
+      included the necessary line in the init scripts. If it still
+      isn't working, make sure that you have restarted the database
+      since adding the line:
+    </p><pre class="programlisting">
+joeuser:~$ svrmgrl
 SVRMGR&gt; connect internal
 Connected.
 SVRMGR&gt; shutdown
@@ -1035,42 +1229,40 @@
 ORACLE instance shut down.
 SVRMGR&gt; startup
 ORACLE instance started.</pre><p>
-	  If you're sure that you have restarted the database since adding
-	  the line, check your initialization scripts. Make sure that the
-	  following line is not included:
-	</p><pre class="programlisting">
+      If you're sure that you have restarted the database since adding
+      the line, check your initialization scripts. Make sure that the
+      following line is not included:
+    </p><pre class="programlisting">
 export nls_lang = american</pre><p>
-	  Setting this environment variable will override the date
-	  setting. Either delete this line and login again or add the following
-	  entry to your login scripts <span class="emphasis"><em>after</em></span> the
-	  <tt>nls_lang</tt> line:
-	</p><pre class="programlisting">
+      Setting this environment variable will override the date
+      setting. Either delete this line and login again or add the following
+      entry to your login scripts <span class="emphasis"><em>after</em></span> the
+      <tt>nls_lang</tt> line:
+    </p><pre class="programlisting">
 export nls_date_format = 'YYYY-MM-DD'</pre><p>
-	  Log back in again. If adding the
-	  <tt>nls_date_format</tt> line doesn't
-	  help, you can ask for advice in our <a href="http://www.openacs.org/bboard/" target="_top">OpenACS forum</a>.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-procs"></a>Useful Procedures</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>
-		  Dropping a tablespace
-		</p><div class="itemizedlist"><ul type="round"><li><p>
-			  Run sqlplus as the dba: 
-			</p><pre class="programlisting">
-oracle:~$ sqlplus system/changeme</pre></li><li><p>			  
-			  To drop a user and all of the tables and data owned by that
-			  user: 
-			</p><pre class="programlisting">
+      Log back in again. If adding the
+      <tt>nls_date_format</tt> line doesn't
+      help, you can ask for advice in our <a href="http://www.openacs.org/bboard/" target="_top">OpenACS forum</a>.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-procs"></a>Useful Procedures</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>
+          Dropping a tablespace
+        </p><div class="itemizedlist"><ul type="round"><li><p>
+              Run sqlplus as the dba: 
+            </p><pre class="programlisting">
+oracle:~$ sqlplus system/changeme</pre></li><li><p>            
+              To drop a user and all of the tables and data owned by that
+              user: 
+            </p><pre class="programlisting">
 SQL&gt; drop user <span class="emphasis"><em>oracle_user_name</em></span> cascade;</pre></li><li><p>
-			  To drop the tablespace: This will delete everything in the
-			  tablespace overriding any referential integrity
-			  constraints. Run this command only if you want to clean out
-			  your database entirely.
-			</p><pre class="programlisting">
+              To drop the tablespace: This will delete everything in the
+              tablespace overriding any referential integrity
+              constraints. Run this command only if you want to clean out
+              your database entirely.
+            </p><pre class="programlisting">
 SQL&gt; drop tablespace <span class="emphasis"><em>table_space_name</em></span> including contents cascade constraints;</pre></li></ul></div></li></ul></div><p>
-	  For more information on Oracle, please consult the <a href="http://oradoc.photo.net/" target="_top">documentation</a>.
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-defaults"></a>Defaults</h3></div></div><p>We used the following defaults while installing Oracle.</p><div class="informaltable"><table border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Variable</th><th>Value</th><th>Reason</th></tr></thead><tbody><tr><td>ORACLE_HOME</td><td>/ora8/m01/app/oracle/product/8.1.7</td><td>This is the default Oracle installation directory.</td></tr><tr><td>ORACLE_SERVICE</td><td>ora8</td><td>The service name is a domain-qualified identifier for
-			  your Oracle server.</td></tr><tr><td>ORACLE_SID</td><td>ora8</td><td>This is an identifier for your Oracle server.</td></tr><tr><td>ORACLE_OWNER</td><td>oracle</td><td>The user who owns all of the oracle files.</td></tr><tr><td>ORACLE_GROUP</td><td>dba</td><td>The special oracle group. Users in the dba group are
-			  authorized to do a <tt>connect
-			  internal</tt> within
-			  <tt>svrmgrl</tt> to gain full system
-			  access to the Oracle system.</td></tr></tbody></table></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="operating-system.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="postgres.html">Next</a></td></tr><tr><td width="40%" align="left">Install an Operating System&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install PostgreSQL 7.1.3</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+      For more information on Oracle, please consult the <a href="http://oradoc.photo.net/" target="_top">documentation</a>.
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-oracle-defaults"></a>Defaults</h3></div></div><p>We used the following defaults while installing Oracle.</p><div class="informaltable"><table border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Variable</th><th>Value</th><th>Reason</th></tr></thead><tbody><tr><td>ORACLE_HOME</td><td>/ora8/m01/app/oracle/product/8.1.7</td><td>This is the default Oracle installation directory.</td></tr><tr><td>ORACLE_SERVICE</td><td>ora8</td><td>The service name is a domain-qualified identifier for
+              your Oracle server.</td></tr><tr><td>ORACLE_SID</td><td>ora8</td><td>This is an identifier for your Oracle server.</td></tr><tr><td>ORACLE_OWNER</td><td>oracle</td><td>The user who owns all of the oracle files.</td></tr><tr><td>ORACLE_GROUP</td><td>dba</td><td>The special oracle group. Users in the dba group are
+              authorized to do a <tt>connect
+              internal</tt> within
+              <tt>svrmgrl</tt> to gain full system
+              access to the Oracle system.</td></tr></tbody></table></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="operating-system.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="postgres.html">Next</a></td></tr><tr><td width="40%" align="left">Install an Operating System&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install PostgreSQL 7.2.3</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/oracle.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/other-developer-overview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/other-developer-overview.html,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/acs-core-docs/www/other-developer-overview.html	30 Nov 2002 17:16:24 -0000	1.4
+++ openacs-4/packages/acs-core-docs/www/other-developer-overview.html	28 Feb 2003 05:36:04 -0000	1.5
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter�5.�Other Developer Resources"><link rel="previous" href="more-developer-info.html" title="Chapter�5.�Other Developer Resources"><link rel="next" href="parties.html" title="Parties in OpenACS 4.6"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="more-developer-info.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�5.�Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="parties.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="other-developer-overview"></a>Overview</h2></div></div><p>Developer information that doesn't really fit anywhere else.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="more-developer-info.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="parties.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�5.�Other Developer Resources&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Parties in OpenACS 4.6</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/other-developer-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="previous" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="next" href="parties.html" title="Parties in OpenACS 4.6"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="more-developer-info.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="parties.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="other-developer-overview"></a>Overview</h2></div></div><p>Developer information that doesn't really fit anywhere else.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="more-developer-info.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="parties.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 7. Other Developer Resources&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Parties in OpenACS 4.6</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/other-developer-overview.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/packages.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/packages.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/packages.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/packages.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,10 +1,10 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.5 Packages</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="developers-overview.html" title="Overview"><link rel="next" href="objects.html" title="OpenACS 4.5 Data Models and the Object System"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="developers-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="objects.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packages"></a>OpenACS 4.5 Packages</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Packages</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="tutorial.html" title="OpenACS 4.6 Package Tutorial"><link rel="next" href="objects.html" title="OpenACS Data Models and the Object System"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="objects.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packages"></a>OpenACS 4.6 Packages</h2></div></div><div class="authorblurb"><p>
     By Pete Su and Bryan Quinn
   <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-overview"></a>Overview</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-overview"></a>Overview</h3></div></div><p>
       This document is a guide on how to write a software package for
       OpenACS. OpenACS packages are installed and maintained
       with the OpenACS Package Manager (APM).  This document presents reasons
@@ -61,7 +61,7 @@
       the pieces of each module are strewn all over the tree in at least 3
       or 4 different areas. 
     </p><p>
-      Here is how an OpenACS 4.5 server is laid out:
+      Here is how an OpenACS 4.6 server is laid out:
     </p><pre class="programlisting">
 
 ROOT/
@@ -125,7 +125,7 @@
       sends to our server to the right page in the appropriate
       package. While we're at it, this tool should also automate
       package installation, dependency checking, upgrades, and package
-      removal. In OpenACS 4.5, this tool is called the APM.
+      removal. In OpenACS 4.6, this tool is called the APM.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-apm"></a>The APM</h3></div></div><p>
       The APM is used to create, maintain, and install packages.  It takes
       care of copying all of the files and registering the package in the
@@ -147,7 +147,7 @@
     </p><p>
       The following sections will show you how to make a package for the
       Notes application. In addition, they will discuss some new site
-      management features in OpenACS 4.5 that take advantage of the APM's package
+      management features in OpenACS 4.6 that take advantage of the APM's package
       instance model. The two most important of these are <span class="emphasis"><em>subsites</em></span>,
       and the <span class="emphasis"><em>site map</em></span> tool, which can be used to map applications to
       one or more arbitrary URLs in a running site.
@@ -365,7 +365,7 @@
           <tt>notes.info</tt> file. Create a file
           called
           <tt>ROOT/packages/notes/sql/oracle/notes-create.sql</tt>. We'll
-          fill this file with our <a href="objects.html" title="OpenACS 4.5 Data Models and the Object System">data model</a>
+          fill this file with our <a href="objects.html" title="OpenACS Data Models and the Object System">data model</a>
           very soon. Create a file called
           <tt>ROOT/packages/notes/sql/oracle/notes-drop.sql</tt>. This
           will contain the instructions to drop the data model. To be
@@ -435,7 +435,7 @@
       map content that lived outside the page root into the site, and it was
       also hard to map mulitiple URLs to the same place in the file system.
     </p><p>
-      In OpenACS 4.5, administrators can define an arbitrary mapping between the
+      In OpenACS 4.6, administrators can define an arbitrary mapping between the
       URLs the user types and the actual file in the file system that is
       served. This mapping is called the <span class="emphasis"><em>site map</em></span> and entries in the
       site map are called <span class="emphasis"><em>site nodes</em></span>. Each site node maps a URL to an
@@ -450,7 +450,7 @@
       of many indedendent applications that actually run on a single shared
       code base. The <a href="request-processor.html" title="The Request Processor">request-processor</a> document shows
       you how OpenACS figures out which instance of your application was
-      requested by the user at any given time. The <a href="subsites.html" title="Writing OpenACS 4.5 Application Pages">page development</a> tutorial shows you how to use this
+      requested by the user at any given time. The <a href="subsites.html" title="Writing OpenACS 4.6 Application Pages">page development</a> tutorial shows you how to use this
       information in your user interface.
     </p><p>
       In order to make the new <tt>notes</tt> application visible to
@@ -477,7 +477,7 @@
       yet written Notes application at various places in the site. In a
       later document, we'll see how to write your application so that the
       code can detect from what URL it was invoked. This is the key
-      to supporting <a href="subsites.html" title="Writing OpenACS 4.5 Application Pages">subsites</a>.
+      to supporting <a href="subsites.html" title="Writing OpenACS 4.6 Application Pages">subsites</a>.
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-summary"></a>Summary</h3></div></div><p>
       The APM performs the following tasks in an OpenACS site:
     </p><div class="itemizedlist"><ul type="disc"><li><p>
@@ -493,6 +493,4 @@
     </p></li><li><p>
       Writes out package distribution files for other people to download and
       install. We'll cover this later.
-    </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-add-reading"></a>Additional Reading</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="apm-design.html">OpenACS 4.5 Package Manager Design</a></p></li><li><p><a href="apm-requirements.html">OpenACS 4.5 Package Manager Requirements</a></p></li><li><p><a href="http://acs40.arsdigita.com/acs40-project-central/package-submission.html" target="_top">Package submission guidelines</a></p></li></ul></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developers-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="objects.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.5 Data Models and the Object System</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="packages-add-reading"></a>Additional Reading</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></p></li><li><p><a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a></p></li><li><p><a href="http://acs40.arsdigita.com/acs40-project-central/package-submission.html" target="_top">Package submission guidelines</a></p></li></ul></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="objects.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Package Tutorial&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS Data Models and the Object System</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/packages.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/parties.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/parties.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/parties.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/parties.html	28 Feb 2003 05:36:04 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Parties in OpenACS 4.5</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 5. Other Developer Resources"><link rel="previous" href="other-developer-overview.html" title="Overview"><link rel="next" href="object-identity.html" title="Object Identity"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="other-developer-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-identity.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="parties"></a>Parties in OpenACS 4.5</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Parties in OpenACS 4.6</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="previous" href="other-developer-overview.html" title="Overview"><link rel="next" href="permissions-tediously-explained.html" title="OpenACS 4.x Permissions Tediously Explained"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="other-developer-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="parties"></a>Parties in OpenACS 4.6</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="parties-intro"></a>Introduction</h3></div></div><p>While many applications must deal with individuals and many applications
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="parties-intro"></a>Introduction</h3></div></div><p>While many applications must deal with individuals and many applications
 must deal with groups, most applications must deal with individuals
 <span class="emphasis"><em>or</em></span> groups. It is often the case with such applications that in many
 respects both individuals and groups are treated in an identical manner. It
@@ -67,7 +67,7 @@
 users) is that it is now possible to &quot;nuke&quot; a user from a live
 system by removing his entry from the users table, but leaving the rest of
 his information present (i.e. turning him from a user into a person). This is
-because wherever possible the OpenACS 4.5 data model references the persons or
+because wherever possible the OpenACS 4.6 data model references the persons or
 parties table, <span class="strong"><em>not</em></span> the users table. If this feature is
 desired when extending the system, then the developers should be careful to
 only references the users table in situations where it is clear that the
@@ -299,7 +299,7 @@
 have a primary key that references the users table, thereby guaranteeing that
 each row in the mensa_users table has a corresponding row in each of the
 users, persons, parties, and acs_objects tables. This child table could then
-store any extra information relevant to the MENSA community.</p><p><span class="strong"><em>Specializing Groups</em></span></p><p>If one were to build an intranet application on top of the 4.5 party
+store any extra information relevant to the MENSA community.</p><p><span class="strong"><em>Specializing Groups</em></span></p><p>If one were to build an intranet application on top of the 4.6 party
 system, it is likely that one would want to take advantage of the systems
 efficient representation of sophisticated organizational structures, but
 there would be much more specialized information associated with each group.
@@ -313,6 +313,4 @@
 single integer primary key in what could be thought of as a pure relation.
 Because a membership relation is an ordinary acs object with <a href="object-identity.html" target="_top">object identity</a>, it is as easy to extend the
 membership relation to store extra information as it is to extend the users
-table or the groups table.</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="other-developer-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="object-identity.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Object Identity</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+table or the groups table.</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="other-developer-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.x Permissions Tediously Explained</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/parties.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/permissions-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/permissions-design.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/permissions-design.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Permissions Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="permissions-requirements.html" title="OpenACS 4 Permissions Requirements"><link rel="next" href="groups-requirements.html" title="OpenACS 4 Groups Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="groups-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-design"></a>OpenACS 4 Permissions Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Permissions Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="permissions-requirements.html" title="OpenACS 4 Permissions Requirements"><link rel="next" href="i18n-requirements.html" title="OpenACS 4.6 Internationalization Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="i18n-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-design"></a>OpenACS 4 Permissions Design</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:jmp@arsdigita.com" target="_top">John Prevost</a> and <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -48,14 +48,14 @@
 
 </span></dt><dd><p>The set of all defined privileges.</p></dd><dt><span class="term"><tt>acs_privilege_method_rules</tt>
 
-</span></dt><dd><p>A relation describing the set of methods <span class="strong">directly</span>
+</span></dt><dd><p>A relation describing the set of methods <span class="strong"><em>directly</em></span>
 associated with each privilege.</p></dd><dt><span class="term"><tt>acs_privilege_hierarchy</tt>
 
-</span></dt><dd><p>A relation describing which privileges <span class="strong">directly</span>
+</span></dt><dd><p>A relation describing which privileges <span class="strong"><em>directly</em></span>
 &quot;contain&quot; other privileges.</p></dd><dt><span class="term"><tt>acs_permissions</tt>
 
 </span></dt><dd><p>A table with one (<span class="emphasis"><em>party</em></span>, <span class="emphasis"><em>object</em></span>, <span class="emphasis"><em>privilege</em></span>)
-row for every privilege <span class="strong">directly</span> granted on any object in
+row for every privilege <span class="strong"><em>directly</em></span> granted on any object in
 the system - this is a denormalization of
 <tt>acs_privilege_method_rules</tt> and
 <tt>acs_privilege_hierarchy</tt></p></dd></dl></div><p>There are also a number of views to make it easier to ask specific
@@ -78,7 +78,7 @@
 a party is a member of a group (at any depth).</p></dd><dt><span class="term"><tt>acs_object_party_method_map</tt>
 
 </span></dt><dd><p>Relation with every (<span class="emphasis"><em>object</em></span>, <span class="emphasis"><em>party</em></span>, <span class="emphasis"><em>method</em></span>)
-tuple implied by the above trees.</p></dd></dl></div><p>In general, <span class="strong">only <tt>acs_object_party_method_map</tt></span>
+tuple implied by the above trees.</p></dd></dl></div><p>In general, <span class="strong"><em>only <tt>acs_object_party_method_map</tt></em></span>
 should be used for queries from other modules. The other views are
 intermediate steps in building that query.</p><p>The data model also includes two simple PL/SQL procedures
 (<tt>acs_permission.grant_permission</tt> and
@@ -95,15 +95,15 @@
 <tt>acs_privilege_hierarchy</tt>)</p></li><li><p>objects get access control from direct grants, or inherit permissions
 from their context (unless the &quot;don't inherit&quot; flag is
 set)</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-design-transactions"></a>Legal Transactions</h3></div></div><p>There are three essential areas in which all transactions in the
-permissions system fall:</p><div class="itemizedlist"><ul type="disc"><li><p>Modification of methods and privileges</p></li><li><p>Modification of permissions</p></li><li><p>Queries on permissions</p></li></ul></div><p><span class="strong">&quot;Modification of methods and privileges.&quot;</span> This
+permissions system fall:</p><div class="itemizedlist"><ul type="disc"><li><p>Modification of methods and privileges</p></li><li><p>Modification of permissions</p></li><li><p>Queries on permissions</p></li></ul></div><p><span class="strong"><em>&quot;Modification of methods and privileges.&quot;</em></span> This
 refers to actions that happen mainly at package installation time - a package
 will create a number of methods for its own use, then associate them with the
 system's standard privileges, or new privileges which the package has
 created. The association step might also happen later, if the site-wide
 administrator chooses to change permissions policy.</p><p>These steps involve directly manipulating the <tt>acs_methods</tt>,
 <tt>acs_privileges</tt>, and <tt>acs_privilege_method_rules</tt> tables. A
 web page for manipulating these features should be limited to site-wide
-administrators.</p><p><span class="strong">&quot;Modification of permissions&quot;</span> - involves fairly
+administrators.</p><p><span class="strong"><em>&quot;Modification of permissions&quot;</em></span> - involves fairly
 common operations. Users are typically able to administer permissions for
 objects they themselves create. The two basic operations here are
 &quot;grant&quot; and &quot;revoke&quot;. Granting permissions is done via
@@ -112,7 +112,7 @@
 <tt>acs_permissions</tt> table.</p><p>Web pages for making these changes are available to all users, so they
 should not be in an admin area. In order to grant and revoke permissions on
 an object, the user must have the <tt>administer_privileges</tt> method
-permission on that object.</p><p><span class="strong">&quot;Queries on permissions&quot;</span> - by far the most
+permission on that object.</p><p><span class="strong"><em>&quot;Queries on permissions&quot;</em></span> - by far the most
 common operation is querying the permissions database. Several kinds of
 questions are commonly asked: First, and most commonly, &quot;Can this party
 perform this method on this object?&quot; Two Tcl functions are provided to
@@ -127,15 +127,15 @@
 for appropriate methods.</p><p>Finally, when administering the permissions for an object, a web page
 needs to know all permissions directly granted on that object. This is done
 by querying against <tt>acs_permissions</tt>.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-design-api"></a>API</h3></div></div><p>The API to the permissions system consists of a few well-known tables,
-plus a pair of PL/SQL procedures and a pair of Tcl functions.</p><p><span class="strong">Tables</span></p><p><tt>acs_methods</tt>, <tt>acs_privileges</tt>, and
+plus a pair of PL/SQL procedures and a pair of Tcl functions.</p><p><span class="strong"><em>Tables</em></span></p><p><tt>acs_methods</tt>, <tt>acs_privileges</tt>, and
 <tt>acs_privilege_method_rules</tt> manage the set of permissions in the
 system. At installation time, a package will add to these three tables to
 introduce new permissions into the system.</p><p>The main table for queries is <tt>acs_object_party_method_map</tt>, which
 contains (<span class="emphasis"><em>object</em></span>, <span class="emphasis"><em>party</em></span>, <span class="emphasis"><em>method</em></span>) triples for all
 allowed operations in the system.</p><p>Also of interest for queries is <tt>acs_permissions</tt>, which lists
 directly granted privileges. Neither <tt>acs_object_party_method_map</tt>
 (which is a view) nor <tt>acs_permissions</tt> should be updated
-directly.</p><p><span class="strong">PL/SQL Procedures</span></p><p><tt>acs_permissions.grant_permission</tt> introduces new permissions for
+directly.</p><p><span class="strong"><em>PL/SQL Procedures</em></span></p><p><tt>acs_permissions.grant_permission</tt> introduces new permissions for
 an object. It should be given an (<span class="emphasis"><em>object</em></span>, <span class="emphasis"><em>party</em></span>,
 <span class="emphasis"><em>privilege</em></span>) triple, and will always succeed. If the permission is
 already in the system, no change occurs. The interface for this procedure
@@ -154,7 +154,7 @@
   privilege    acs_permissions.privilege%TYPE
 );
 </pre><p>These procedures are defined in <a href="http://acs40.arsdigita.com/doc/sql/display-sql?url=acs-permissions-create.sql&amp;package_key=acs-kernel" target="_top">
-<tt>permissions-create.sql</tt></a></p><p><span class="strong">Tcl Procedures</span></p><p>Two tcl procedures provide a simple call for the query, &quot;Can this
+<tt>permissions-create.sql</tt></a></p><p><span class="strong"><em>Tcl Procedures</em></span></p><p>Two tcl procedures provide a simple call for the query, &quot;Can this
 user perform this method on this object?&quot; One returns true or false, the
 other presents an error page.</p><p>To receive a true or false value, Tcl code should call:</p><pre class="programlisting">
 ad_permission_p $object_id $object_type $method -user_id $user_id
@@ -184,4 +184,4 @@
 
 </span></dt><dd><p><a href="mailto:rhs@mit.edu" target="_top">Rafael H. Schloming</a></p></dd><dt><span class="term">Documentation author
 
-</span></dt><dd><p><a href="mailto:jmp@arsdigita.com" target="_top">John Prevost</a></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/11/2000</td><td>John Prevost</td></tr><tr><td>0.2</td><td>Edited for ACS 4 Beta release</td><td>10/04/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="groups-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Permissions Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Groups Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/permissions-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
+</span></dt><dd><p><a href="mailto:jmp@arsdigita.com" target="_top">John Prevost</a></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-design-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/11/2000</td><td>John Prevost</td></tr><tr><td>0.2</td><td>Edited for ACS 4 Beta release</td><td>10/04/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="i18n-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Permissions Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Internationalization Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/permissions-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/permissions-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/permissions-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/permissions-requirements.html	28 Feb 2003 05:36:04 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Permissions Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="object-system-design.html" title="OpenACS 4 Object Model Design"><link rel="next" href="permissions-design.html" title="OpenACS 4 Permissions Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-requirements"></a>OpenACS 4 Permissions Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Permissions Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="object-system-design.html" title="OpenACS 4 Object Model Design"><link rel="next" href="permissions-design.html" title="OpenACS 4 Permissions Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-requirements"></a>OpenACS 4 Permissions Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:jmp@arsdigita.com" target="_top">John McClary Prevost</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -15,7 +15,7 @@
 manner reduces both cost and risk: cost, in that less code has to be written
 and maintained for dealing with recurring permissions situations; risk, in
 that we need not rely on any single programmer's diligence to ensure
-access control is implemented and enforced correctly.</p><p><span class="strong">Historical Motivations</span></p><p>In earlier versions of the OpenACS, permissions and access control was handled
+access control is implemented and enforced correctly.</p><p><span class="strong"><em>Historical Motivations</em></span></p><p>In earlier versions of the OpenACS, permissions and access control was handled
 on a module-by-module basis, often even on a page-by-page basis. For example,
 a typical module might allow any registered user to access its pages
 read-only, but only allow members of a certain group to make changes. The way
@@ -33,14 +33,14 @@
 common administrative interface, and easily deployed and maintained access
 control. The system must be flexible enough to support every access model
 required in OpenACS applications, but not so flexible that pieces will go unused
-or fall outside the common administrative interfaces.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-"></a>Use Cases and User Scenarios</h3></div></div><p><span class="strong">Terminology</span></p><p>The primary question an access control system must answer is a three-way
+or fall outside the common administrative interfaces.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-"></a>Use Cases and User Scenarios</h3></div></div><p><span class="strong"><em>Terminology</em></span></p><p>The primary question an access control system must answer is a three-way
 relation, like that between the parts of most simple sentences. A simple
 sentence generally has three parts, a subject, an object, and a verb - in the
 context of OpenACS Permissions, our simple sentence is, &quot;Can this party
-perform this operation on this target?&quot; Definitions:</p><p>The subject of the sentence is &quot;<span class="strong">party</span>&quot; - a
+perform this operation on this target?&quot; Definitions:</p><p>The subject of the sentence is &quot;<span class="strong"><em>party</em></span>&quot; - a
 distinguishable actor whose access may be controlled, this special word is
 used because one person may be represented by several parties, and one party
-may represent many users (or no users at all).</p><p>The object of the sentence is &quot;<span class="strong">target</span>&quot; - this
+may represent many users (or no users at all).</p><p>The object of the sentence is &quot;<span class="strong"><em>target</em></span>&quot; - this
 is an entity, or object, that the party wishes to perform some action on. An
 entity/object here is anything that can be put under access control.</p><p>The verb of the sentence is &quot;operation&quot; - a behavior on the OpenACS
 system subject to control, this word is used to represent the fact that a
@@ -50,43 +50,43 @@
 that operation.</p><p>Examples of the essential question addressed by the Permissions system:
 Can jane@attacker.com delete the web security bboard? Can the Boston office
 (a party) within the VirtuaCorp intranet/website create its own news
-instance?</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="permissions-design.html">OpenACS 4 Permissions Design</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-func-req"></a>Functional Requirements</h3></div></div><p><span class="strong">10.0 Granularity</span></p><p>The system must support access control down to the level of a single
+instance?</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="permissions-design.html">OpenACS 4 Permissions Design</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-func-req"></a>Functional Requirements</h3></div></div><p><span class="strong"><em>10.0 Granularity</em></span></p><p>The system must support access control down to the level of a single
 entity (this would imply down to the level of a row in the OpenACS Objects data
-model).</p><p><span class="strong">20.0 Operations</span></p><p>The system itself must be able to answer the essential permissions
-question as well as several derived questions.</p><blockquote class="blockquote"><p><span class="strong">20.10 Basic Access Check</span></p><p>The system must be able to answer the question, &quot;May party P perform
-operation O on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong">20.20 Allowed Parties Check</span></p><p>The system must be able to answer the question, &quot;Which parties may
-perform operation O on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong">20.30 Allowed Operations Check</span></p><p>The system must be able to answer the question, &quot;Which operations may
-party P perform on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong">20.40 Allowed Targets Check</span></p><p>The system must be able to answer the question, &quot;Upon which targets
-may party P perform operation O?&quot;</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-behave-req"></a>Behavioral Requirements</h3></div></div><p><span class="strong">40.0 Scale of Privileges</span></p><p>Privileges must be designed with appropriate scope for a given OpenACS
+model).</p><p><span class="strong"><em>20.0 Operations</em></span></p><p>The system itself must be able to answer the essential permissions
+question as well as several derived questions.</p><blockquote class="blockquote"><p><span class="strong"><em>20.10 Basic Access Check</em></span></p><p>The system must be able to answer the question, &quot;May party P perform
+operation O on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>20.20 Allowed Parties Check</em></span></p><p>The system must be able to answer the question, &quot;Which parties may
+perform operation O on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>20.30 Allowed Operations Check</em></span></p><p>The system must be able to answer the question, &quot;Which operations may
+party P perform on target T?&quot;</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>20.40 Allowed Targets Check</em></span></p><p>The system must be able to answer the question, &quot;Upon which targets
+may party P perform operation O?&quot;</p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-behave-req"></a>Behavioral Requirements</h3></div></div><p><span class="strong"><em>40.0 Scale of Privileges</em></span></p><p>Privileges must be designed with appropriate scope for a given OpenACS
 package. Some privileges are of general utility (e.g. &quot;read&quot; and
 &quot;write&quot;). Others are of more limited use (e.g. &quot;moderate&quot;
 - applies mainly to a package like bboard, where many users are contributing
 content simultaneously). A package defining its own privileges should do so
 with moderation, being careful not to overload a privilege like
-&quot;read&quot; to mean too many things.</p><p><span class="strong">50.0 Aggregation of Operations (Privileges)</span></p><p>For user interface purposes, it can be appropriate to group certain
+&quot;read&quot; to mean too many things.</p><p><span class="strong"><em>50.0 Aggregation of Operations (Privileges)</em></span></p><p>For user interface purposes, it can be appropriate to group certain
 privileges under others. For example, anyone with the &quot;admin&quot;
 privilege may also automatically receive &quot;read&quot;, &quot;write&quot;,
-&quot;delete&quot;, etc. privileges.</p><p><span class="strong">60.0 Aggregation of Parties (Groups)</span></p><p>The system must allow aggregation of parties. The exact method used for
+&quot;delete&quot;, etc. privileges.</p><p><span class="strong"><em>60.0 Aggregation of Parties (Groups)</em></span></p><p>The system must allow aggregation of parties. The exact method used for
 aggregation will probably be addressed by the OpenACS 4 &quot;Groups&quot;
 system. Regardless of the exact behavior of aggregate parties, if an
 aggregate party exists, then access which is granted to the aggregate party
-should be available to all members of that aggregate.</p><p><span class="strong">70.0 Scope of Access Control</span></p><blockquote class="blockquote"><p><span class="strong">70.10 Context</span></p><p>There must be a method for objects to receive default access control from
+should be available to all members of that aggregate.</p><p><span class="strong"><em>70.0 Scope of Access Control</em></span></p><blockquote class="blockquote"><p><span class="strong"><em>70.10 Context</em></span></p><p>There must be a method for objects to receive default access control from
 some context. For example, if you do not have read access to a bboard, you
-should not have read access to a message in that bboard.</p></blockquote><blockquote class="blockquote"><p><span class="strong">70.20 Overriding</span></p><p>It must be possible to override defaults provided by the context of an
-object (as in 70.10), in both a positive and negative manner.</p></blockquote><blockquote class="blockquote"><p><span class="strong">70.20.10 Positive Overriding</span></p><p>It must be possible to allow a party more access to some target than they
+should not have read access to a message in that bboard.</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>70.20 Overriding</em></span></p><p>It must be possible to override defaults provided by the context of an
+object (as in 70.10), in both a positive and negative manner.</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>70.20.10 Positive Overriding</em></span></p><p>It must be possible to allow a party more access to some target than they
 would get by default. (For example, a user does not have the right to edit
 any message on a bboard. But a user does possibly have the right to edit
-their own messages.)</p></blockquote><blockquote class="blockquote"><p><span class="strong">70.20.20 Negative Overriding</span></p><p>It must be possible to deny a party access to some target that their
+their own messages.)</p></blockquote><blockquote class="blockquote"><p><span class="strong"><em>70.20.20 Negative Overriding</em></span></p><p>It must be possible to deny a party access to some target that their
 inherited privileges would have allowed. (For example, a subdirectory in the
 file-storage might normally have its parent directory as context. It should
-be possible, however, to make a subdirectory private to some group.)</p></blockquote><p><span class="strong">100.0 Efficiency</span></p><p>At least the basic access check (20.10) and the allowed targets check
+be possible, however, to make a subdirectory private to some group.)</p></blockquote><p><span class="strong"><em>100.0 Efficiency</em></span></p><p>At least the basic access check (20.10) and the allowed targets check
 (20.40) must be efficient enough for general use, i.e. scalable under fairly
 heavy website traffic. It can be expected that almost every page will contain
 at least one basic access check, and most pages will contain an allowed
 targets check (20.40).</p><p>In particular, constraining a <tt>SELECT</tt> to return only rows the
 current user has access to should not be much slower than the <tt>SELECT</tt>
-on its own.</p><p><span class="strong">120.0 Ease of Use</span></p><p>Since most SQL queries will contain an allowed target check in the where
+on its own.</p><p><span class="strong"><em>120.0 Ease of Use</em></span></p><p>Since most SQL queries will contain an allowed target check in the where
 clause, whatever mechanism is used to make checks in SQL should be fairly
 small and simple.</p><p>In particular, constraining a <tt>SELECT</tt> to return only rows the
-current user has access to should not add more than one line to a query.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>8/17/2000</td><td>John Prevost</td></tr><tr><td>0.2</td><td>Revised, updated with new terminology</td><td>8/25/2000</td><td>John Prevost</td></tr><tr><td>0.3</td><td>Edited, reformatted to conform to requirements template, pending
+current user has access to should not add more than one line to a query.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-requirements-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>8/17/2000</td><td>John Prevost</td></tr><tr><td>0.2</td><td>Revised, updated with new terminology</td><td>8/25/2000</td><td>John Prevost</td></tr><tr><td>0.3</td><td>Edited, reformatted to conform to requirements template, pending
 freeze.</td><td>8/26/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Edited for ACS 4 Beta release.</td><td>10/03/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-system-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="permissions-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Object Model Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Permissions Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/permissions-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html	30 Nov 2002 17:16:24 -0000	1.2
+++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html	28 Feb 2003 05:36:05 -0000	1.3
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4.x Permissions Tediously Explained</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter�5.�Other Developer Resources"><link rel="previous" href="parties.html" title="Parties in OpenACS 4.6"><link rel="next" href="object-identity.html" title="Object Identity"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="parties.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�5.�Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-identity.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-tediously-explained"></a>OpenACS 4.x Permissions Tediously Explained</h2></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.x Permissions Tediously Explained</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="previous" href="parties.html" title="Parties in OpenACS 4.6"><link rel="next" href="object-identity.html" title="Object Identity"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="parties.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="object-identity.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions-tediously-explained"></a>OpenACS 4.x Permissions Tediously Explained</h2></div></div><p>
     by Vadim Nasardinov. Modified and converted to Docbook XML by Roberto Mello
   </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-tedious-overview"></a>Overview</h3></div></div><p>
       The general permissions system has a relatively complex data model in OpenACS 4.x.
@@ -9,8 +9,8 @@
       of code and trying to understand exactly what went wrong.
       It is geared towards developers who understand the general permissions
       system to the extent that is described in the 
-      <a href="http://openacs.org/doc/openacs-4/developer-guide/permissions.html" target="_top">
-      OpenACS 4.x Permisisons documentation</a>,
+      <a href="http://openacs.org/doc/openacs-4/permissions.html" target="_top">
+      OpenACS 4.x Permissions documentation</a>,
       but who haven't had the opportunity to take a long, careful look at the
       system internals.
     </p><p>
@@ -86,7 +86,7 @@
       to store permission information explicitly about every object, i.e. if the system has 100,000 and 1,000 users
       who have the <span class="emphasis"><em>read</em></span> privilege on all objects, then we would need to store 100,000,000
       entries of the form: 
-    </p><div class="table"><a name="id2825369"></a><p class="title"><b>Table�5.1.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">grantee_id</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">object_id_1</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_n</td><td align="center">'read'</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.1. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">grantee_id</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">object_id_1</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_n</td><td align="center">'read'</td></tr></tbody></table></div><p>
       Although quite feasible, this approach fails to take advantage of the fact
       that objects in the system are commonly organized hierarchally,
       and permissions usually follow the hierarchical structure, so that if user
@@ -101,7 +101,7 @@
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-tedious-context-hierarchy"></a>Context Hierarchy</h3></div></div><p>
       Suppose objects <span class="emphasis"><em>A</em></span>, <span class="emphasis"><em>B</em></span>, ..., 
       and <span class="emphasis"><em>F</em></span> form the following hierarchy. 
-    </p><div class="table"><a name="id2825737"></a><p class="title"><b>Table�5.2.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p>
+    </p><div class="table"><p class="title"><b>Table 7.2. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p>
   	        <tt>object_id=10</tt>
               </p></td></tr><tr><td colspan="2" align="center"><span class="bold"><b>B</b></span><p>
   	        <tt>object_id=20</tt>
@@ -117,23 +117,23 @@
       This can be represented in the <tt>
       <a href="permissions-tediously-explained.html#acs_objects">acs_objects</a></tt> table
       by the following entries: 
-    </p><div class="table"><a name="id2825938"></a><p class="title"><b>Table�5.3.�</b></p><table border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.3. </b></p><table border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p>
       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 <a href="http://www.oradoc.com/ora817/server.817/a85397/expressi.htm#1023748" target="_top">CONNECT BY</a> query,
       we can compute that object 40 is the second-generation descendant of object 10.
       With this in mind, if we want to record the fact that user Joe has the <span class="emphasis"><em>read</em></span> privilege on objects
       <span class="emphasis"><em>A</em></span>, ..., <span class="emphasis"><em>F</em></span>, we only need to record one entry in the
       <tt><a href="permissions-tediously-explained.html#acs_permissions">acs_permissions</a></tt> table. 
-    </p><div class="table"><a name="id2826094"></a><p class="title"><b>Table�5.4.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">grantee</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">Joe</td><td align="center">read</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.4. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">grantee</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">Joe</td><td align="center">read</td></tr></tbody></table></div><p>
       The fact that Joe can also read <span class="emphasis"><em>B</em></span>, <span class="emphasis"><em>C</em></span>, 
       ..., and <span class="emphasis"><em>F</em></span> can be derived by ascertaining that these objects 
       are children of <span class="emphasis"><em>A</em></span> by traversing the context hierarchy.
       As it turns out, hierarchical queries are expensive.  As
       Rafael Schloming put it so aptly, <span class="emphasis"><em>Oracle can't deal with hierarchies for shit.</em></span> 
     </p><p>
       One way to solve this problem is to cache a flattened view of the context tree like so: 
-    </p><div class="table"><a name="id2826218"></a><p class="title"><b>Table�5.5.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">ancestor</th><th align="center">n_generations</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">A</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">B</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">C</td><td align="center">C</td><td align="center">0</td></tr><tr><td align="center">C</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">D</td><td align="center">0</td></tr><tr><td align="center">D</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">E</td><td align="center">E</td><td align="center">0</td></tr><tr><td align="center">E</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">E</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">F</td><td align="center">F</td><td align="center">0</td></tr><tr><td align="center">F</td><td align="center">C</td><td align="center">1</td></tr><tr><td align="center">F</td><td align="center">A</td><td align="center">2</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.5. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">ancestor</th><th align="center">n_generations</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">A</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">B</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">C</td><td align="center">C</td><td align="center">0</td></tr><tr><td align="center">C</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">D</td><td align="center">0</td></tr><tr><td align="center">D</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">E</td><td align="center">E</td><td align="center">0</td></tr><tr><td align="center">E</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">E</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">F</td><td align="center">F</td><td align="center">0</td></tr><tr><td align="center">F</td><td align="center">C</td><td align="center">1</td></tr><tr><td align="center">F</td><td align="center">A</td><td align="center">2</td></tr></tbody></table></div><p>
       Note that the number of entries in the flattened view grows exponentially with
       respect to the depth of the context tree.  For instance, if you have a fully
       populated binary tree with a depth of <span class="emphasis"><em>n</em></span>, then the number of entries
@@ -163,9 +163,9 @@
       an <a href="http://www.oradoc.com/ora817/server.817/a85397/statem3e.htm#2061922" target="_top">index-organized
       table</a>, which means it is substantially optimized for access by primary key.
       Number two, as the above computations suggest, the size of the table
-      grows <span class="strong">polynomially</span>
+      grows <span class="strong"><em>polynomially</em></span>
       with respect to the average number of descendants that an object
-      has, and <span class="strong">exponentially</span>
+      has, and <span class="strong"><em>exponentially</em></span>
       with respect to the depth of the context tree. 
     </p><p>
       The <tt>acs_object_context_index</tt> is kept in sync with the
@@ -204,7 +204,7 @@
       an object's <tt>security_inherit_p</tt> column to 'f', you can stop permissions
       from cascading down the context tree. In the following example, Joe does not have
       the read permissions on <span class="emphasis"><em>C</em></span> and <span class="emphasis"><em>F</em></span>. 
-    </p><div class="table"><a name="id2826845"></a><p class="title"><b>Table�5.6.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><div class="literallayout"><p><br>
+    </p><div class="table"><p class="title"><b>Table 7.6. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><div class="literallayout"><p><br>
 <span class="bold"><b>A</b></span><br>
 <tt>object_id=10</tt><br>
 <span class="emphasis"><em>readable�by�Joe</em></span><br>
@@ -232,7 +232,7 @@
       Privileges are also organized hierarchically.  In addition to the five main system privileges
       defined in the ACS Kernel data model, application developers may define their own. For instance,
       the Bboard package defines the following privileges: 
-    </p><div class="table"><a name="id2827068"></a><p class="title"><b>Table�5.7.�</b></p><table border="1"><colgroup><col align="center"></colgroup><thead><tr><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">create_category</td></tr><tr><td align="center">create_forum</td></tr><tr><td align="center">create_message</td></tr><tr><td align="center">delete_category</td></tr><tr><td align="center">delete_forum</td></tr><tr><td align="center">delete_message</td></tr><tr><td align="center">moderate_forum</td></tr><tr><td align="center">read_category</td></tr><tr><td align="center">read_forum</td></tr><tr><td align="center">read_message</td></tr><tr><td align="center">write_category</td></tr><tr><td align="center">write_forum</td></tr><tr><td align="center">write_message</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.7. </b></p><table border="1"><colgroup><col align="center"></colgroup><thead><tr><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">create_category</td></tr><tr><td align="center">create_forum</td></tr><tr><td align="center">create_message</td></tr><tr><td align="center">delete_category</td></tr><tr><td align="center">delete_forum</td></tr><tr><td align="center">delete_message</td></tr><tr><td align="center">moderate_forum</td></tr><tr><td align="center">read_category</td></tr><tr><td align="center">read_forum</td></tr><tr><td align="center">read_message</td></tr><tr><td align="center">write_category</td></tr><tr><td align="center">write_forum</td></tr><tr><td align="center">write_message</td></tr></tbody></table></div><p>
       By defining parent-child relationship between privileges, the OpenACS data model
       makes it easier for developers to manage permissions.  Instead of granting
       a user explicit <span class="emphasis"><em>read</em></span>, <span class="emphasis"><em>write</em></span>, <span class="emphasis"><em>delete</em></span>, 
@@ -241,7 +241,7 @@
       privilege to which the first four privileges are tied. To give
       a more detailed example, the Bboard privileges are structured
       as follows.
-    </p><div class="table"><a name="id2827253"></a><p class="title"><b>Table�5.8.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="13" align="center">admin</td></tr><tr><td colspan="3" align="center">create</td><td colspan="3" align="center">delete</td><td colspan="3" align="center">read</td><td colspan="3" align="center">write</td><td rowspan="2" align="center" valign="middle">moderate forum</td></tr><tr><td align="center">create category</td><td align="center">create forum</td><td align="center">create message</td><td align="center">delete category</td><td align="center">delete forum</td><td align="center">delete message</td><td align="center">read category</td><td align="center">read forum</td><td align="center">read message</td><td align="center">write category</td><td align="center">write forum</td><td align="center">write message</td></tr></tbody></table></div><p>
+    </p><div class="table"><p class="title"><b>Table 7.8. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="13" align="center">admin</td></tr><tr><td colspan="3" align="center">create</td><td colspan="3" align="center">delete</td><td colspan="3" align="center">read</td><td colspan="3" align="center">write</td><td rowspan="2" align="center" valign="middle">moderate forum</td></tr><tr><td align="center">create category</td><td align="center">create forum</td><td align="center">create message</td><td align="center">delete category</td><td align="center">delete forum</td><td align="center">delete message</td><td align="center">read category</td><td align="center">read forum</td><td align="center">read message</td><td align="center">write category</td><td align="center">write forum</td><td align="center">write message</td></tr></tbody></table></div><p>
       The parent-child relationship between privileges is represented in
       the <tt>acs_privilege_hierarchy</tt> table: 
     </p><a name="acs_privilege_hierarchy"></a><pre class="programlisting">
@@ -287,7 +287,7 @@
     </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-tedious-party-hierarchy"></a>Party Hierarchy</h3></div></div><p>
       Now for the third hierarchy playing a promiment role in the permission system. The party
       data model is set up as follows. 
-    </p><div class="table"><a name="id2827600"></a><p class="title"><b>Table�5.9.�</b></p><table border="1"><colgroup><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="2" align="center"><a href="permissions-tediously-explained.html#tedious-parties">parties</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#persons">persons</a></td><td rowspan="2" align="center" valign="top"><a href="permissions-tediously-explained.html#groups">groups</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#users">users</a></td></tr></tbody></table></div><a name="tedious-parties"></a><pre class="programlisting">
+    </p><div class="table"><p class="title"><b>Table 7.9. </b></p><table border="1"><colgroup><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="2" align="center"><a href="permissions-tediously-explained.html#tedious-parties">parties</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#persons">persons</a></td><td rowspan="2" align="center" valign="top"><a href="permissions-tediously-explained.html#groups">groups</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#users">users</a></td></tr></tbody></table></div><a name="tedious-parties"></a><pre class="programlisting">
   create table <span class="bold"><b>parties</b></span> (
       party_id
           not null
@@ -371,7 +371,7 @@
     </pre><p>
       The <tt><a href="permissions-tediously-explained.html#acs_rels">acs_rels</a></tt> 
       table entries would look like so: 
-    </p><div class="table"><a name="id2827978"></a><p class="title"><b>Table�5.10.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>rel_type</tt></th><th align="center"><tt>object_one</tt></th><th align="center"><tt>object_two</tt></th></tr></thead><tbody><tr><td align="center">
+    </p><div class="table"><p class="title"><b>Table 7.10. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>rel_type</tt></th><th align="center"><tt>object_one</tt></th><th align="center"><tt>object_two</tt></th></tr></thead><tbody><tr><td align="center">
 	      membership_rel
 	    </td><td align="center">
 	      Pranksters
@@ -393,7 +393,7 @@
       Another way of building up groups is by adding subgroups.  Suppose
       we define <span class="emphasis"><em>Merry Pranksters</em></span> and <span class="emphasis"><em>Sad Pranksters</em></span> as subgroups
       of <span class="emphasis"><em>Pranksters</em></span>.  We say that the <span class="emphasis"><em>Pranksters</em></span> group
-      is <span class="strong">composed</span> of 
+      is <span class="strong"><em>composed</em></span> of 
       groups <span class="emphasis"><em>Merry Pranksters</em></span> and <span class="emphasis"><em>Sad Pranksters</em></span>.  This
       information is stored in the <tt><a href="permissions-tediously-explained.html#acs_rels">acs_rels</a></tt>
       and <tt>composition_rels</tt> tables. 
@@ -406,7 +406,7 @@
     </pre><p>
       The relevant entries in the 
       <tt><a href="permissions-tediously-explained.html#acs_rels">acs_rels</a></tt> look like so. 
-    </p><div class="table"><a name="id2828198"></a><p class="title"><b>Table�5.11.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>rel_type</tt></th><th align="center"><tt>object_one</tt></th><th align="center"><tt>object_two</tt></th></tr></thead><tbody><tr><td align="center">
+    </p><div class="table"><p class="title"><b>Table 7.11. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>rel_type</tt></th><th align="center"><tt>object_one</tt></th><th align="center"><tt>object_two</tt></th></tr></thead><tbody><tr><td align="center">
 	      composition_rel
 	    </td><td align="center">
 	      Pranksters
@@ -617,7 +617,7 @@
     </pre><p>
       Note that in the above example, <tt>acs_permissions</tt> had only
       one entry that needed to be deleted: 
-    </p><div class="table"><a name="id2828836"></a><p class="title"><b>Table�5.12.�</b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>object_id</tt></th><th align="center"><tt>grantee_id</tt></th><th align="center"><tt>privilege</tt></th></tr></thead><tbody><tr><td align="center">
+    </p><div class="table"><p class="title"><b>Table 7.12. </b></p><table border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt>object_id</tt></th><th align="center"><tt>grantee_id</tt></th><th align="center"><tt>privilege</tt></th></tr></thead><tbody><tr><td align="center">
 	      default_context
 	    </td><td align="center">
 	      registered_users
Index: openacs-4/packages/acs-core-docs/www/permissions.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/permissions.html	10 Aug 2002 20:07:20 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/permissions.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Groups, Context, Permissions</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="templates.html" title="Using Templates in OpenACS 4.5"><link rel="next" href="subsites.html" title="Writing OpenACS 4.5 Application Pages"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="templates.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions"></a>Groups, Context, Permissions</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-overview"></a>Overview</h3></div></div><p>
-The OpenACS 4.5 Permissions system allows developers and administrators to
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Groups, Context, Permissions</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="templates.html" title="Using Templates in OpenACS 4.6"><link rel="next" href="subsites.html" title="Writing OpenACS 4.6 Application Pages"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="templates.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="permissions"></a>Groups, Context, Permissions</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-overview"></a>Overview</h3></div></div><p>
+The OpenACS 4.6 Permissions system allows developers and administrators to
 set access control policies at the object level, that is, any
 application or system object represented by a row in the
 <tt>acs_objects</tt> table can be access-controlled via a simple
@@ -14,7 +14,7 @@
 Although this may all sound easy and wonderful, no developer or
 administrator would want to <span class="emphasis"><em>explicitly</em></span> set access control
 rights for <span class="emphasis"><em>every user</em></span> and <span class="emphasis"><em>every object</em></span> on a
-site. Therefore, OpenACS 4.5 has two auxiliary mechanisms for making this
+site. Therefore, OpenACS 4.6 has two auxiliary mechanisms for making this
 easier: First, the Groups system allows users to be grouped together
 in flexible ways. Second, the object model defines a notion of
 <span class="emphasis"><em>object context</em></span>, which allows applications to group objects
@@ -26,7 +26,7 @@
 define simple groupings of users. Each group had a human readable name
 and unique ID, and there was a single mapping table that mapped users
 to groups. (The actual data model was more complicated because it
-contained a meta-data system much like the OpenACS 4.5 object type system,
+contained a meta-data system much like the OpenACS 4.6 object type system,
 but that's not relevant right now.)
 </p><p>
 The 3.x groups system, while very useful, was limited in few ways. The
@@ -48,7 +48,7 @@
 member of Greenpeace, its members are not necessarily members of
 Greenpeace.
 </p><p>
-OpenACS 4.5 solves both of these modeling problems by introducing a new
+OpenACS 4.6 solves both of these modeling problems by introducing a new
 abstraction called a <span class="emphasis"><em>party</em></span>. Parties have a recursive
 definition, and we can illustrate how it works with the following
 simplified data model. First, we define the <tt>parties</tt>
@@ -105,23 +105,27 @@
 tutorial - I've just given you what you need to understand how
 permissions work. For further detail, you can look at <a href="parties.html">Parties in OpenACS 4</a> or <a href="groups-design.html">OpenACS 4 Groups Design</a>.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-permissions"></a>Permissions</h3></div></div><p>
+  NOTE: Much more detailed information about the permissions system
+  and how to use it is available in the
+  <a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a> document.
+</p><p>
 The permissions data model is actually pretty simple.  The data model
 is a mapping between <span class="emphasis"><em>privileges</em></span>, parties and objects. We
 already know what parties and objects are, but we don't know what
 privileges are.
 </p><p>
-In OpenACS 4.5, a privilege models the right to perform some operation on
+In OpenACS 4.6, a privilege models the right to perform some operation on
 some object. They are the basic units out of which we build access
 control policies.  For example, in the Unix filesystem we typically
 implement access control by granting users some combination of
-read. write or execute privileges on files and directories. In OpenACS 4.5,
+read. write or execute privileges on files and directories. In OpenACS 4.6,
 the table of privileges is organized hierarchically so that developers
 can define privileges that aggregate some set of privileges
 together. For example, if we have read, write, create and delete
 privileges, it might be convenient to combine them into a new privilege
 called &quot;admin&quot;. Then if we grant a user this privilege she is
 automatically granted all the child privileges that the privilege
-contains. The OpenACS 4.5 kernel data model actually defines these
+contains. The OpenACS 4.6 kernel data model actually defines these
 privileges as follows:
 </p><pre class="programlisting">
 
@@ -161,7 +165,7 @@
 permissions to large groups of objects in the site, all at once. We
 use contexts to achieve this goal.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-object-context"></a>Object Context</h3></div></div><p>
-In OpenACS 4.5, an object context is a generalization of the scoping
+In OpenACS 4.6, an object context is a generalization of the scoping
 mechanism introduced in OpenACS 3.x.  &quot;Scoping&quot; and &quot;scope&quot; are terms best
 explained by example: consider some hypothetical rows in the
 <tt>address_book</tt> table:
@@ -176,7 +180,7 @@
 person <span class="emphasis"><em>or</em></span> a group of people <span class="emphasis"><em>or</em></span> the general public
 (itself a group of people).
 </p><p>
-In OpenACS 4.5, rather than breaking the world into a limited set of scopes,
+In OpenACS 4.6, rather than breaking the world into a limited set of scopes,
 every object lives in a single <span class="emphasis"><em>context</em></span>.  A context is just an
 another object that represents the security domain to which the object
 belongs. By convention, if an object A doesn't have any permissions
@@ -193,7 +197,7 @@
 application. With only row-level permissions it is not obvious how to
 reasonably initialize the access control list when creating a
 message. At best, we have to explicitly grant various read and write
-privileges whenever we create a message, which is tedious.  In OpenACS 4.5,
+privileges whenever we create a message, which is tedious.  In OpenACS 4.6,
 a reasonable thing to do is to create an object representing a forum,
 and point the <tt>context_id</tt> field of a new message at the
 forum. Then, suppose we grant every user in the system read-access to
@@ -327,7 +331,7 @@
 </pre><p>
 This displays the title of the note as either a link or plain text
 depending on whether or not we have write privileges on the object.
-The <tt>if</tt> tag is something that the OpenACS 4.5 template system
+The <tt>if</tt> tag is something that the OpenACS 4.6 template system
 defines for you to support conditional presentation. The <a href="/doc/acs-templating/developer-guide.html" target="_top">templates developer guide</a> provides more information about this.
 </p><p>
 If you study the rest of the system, you will also notice that the
@@ -341,7 +345,7 @@
 permissions to notes that she wanted to make public or whatever. But
 that's beyond the scope of this example.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="permissions-summary"></a>Summary</h3></div></div><p>
-OpenACS 4.5 defines three separate mechanisms for specifying access control
+OpenACS 4.6 defines three separate mechanisms for specifying access control
 in applications. The Groups data model allows you to define 
 hierarchical organizations of users and groups of users. The Permissions
 data model allows you to define a hierarchy of user rights. Finally,
@@ -351,6 +355,4 @@
 </p><p>
 In the next section, we'll look at a more complex page for adding and
 editing notes, and discuss these issues further.
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="templates.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites.html">Next</a></td></tr><tr><td width="40%" align="left">Using Templates in OpenACS 4.5&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Writing OpenACS 4.5 Application Pages</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="templates.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites.html">Next</a></td></tr><tr><td width="40%" align="left">Using Templates in OpenACS 4.6&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Writing OpenACS 4.6 Application Pages</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/permissions.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/postgres.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/acs-core-docs/www/postgres.html	10 Aug 2002 20:07:21 -0000	1.6
+++ openacs-4/packages/acs-core-docs/www/postgres.html	28 Feb 2003 05:36:05 -0000	1.7
@@ -1,22 +1,24 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install PostgreSQL 7.1.3</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="oracle.html" title="Install Oracle 8.1.7"><link rel="next" href="aolserver.html" title="Install AOLserver 3.3+ad13"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="oracle.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="postgres"></a>Install PostgreSQL 7.1.3</h2></div></div><div class="authorblurb"><p>
-	by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Install PostgreSQL 7.2.3</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="unix-install.html" title="Chapter 2. Installing on Unix/Linux"><link rel="previous" href="oracle.html" title="Install Oracle 8.1.7"><link rel="next" href="aolserver.html" title="Install AOLserver 3.3+ad13"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="oracle.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Installing on Unix/Linux</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="postgres"></a>Install PostgreSQL 7.2.3</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
 	Skip this page if you're not interested in PostgreSQL.
   </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-download"></a>Download the PostgreSQL source</h3></div></div><p>	  
-	  Download PostgreSQL 7.1.3 from the mirror closest to you. The list of
-	  mirrors is at <a href="http://www.postgresql.org/" target="_top">http://www.postgresql.org</a>. Download
-	  it to <tt>/tmp</tt>.
-	</p><p>
+
+	  Download PostgreSQL 7.2.3 from the mirror closest to you. The list of
+	  mirrors is at <a href="http://www.postgresql.org/" target="_top">http://www.postgresql.org</a>.
+	  Download it to <tt>/tmp</tt>.
+
+    </p><p>
 	  As <tt>root</tt>, unpack it into
 	  <tt>/usr/local/src</tt>
-	</p><pre class="programlisting">
+  	</p><pre class="programlisting">
 joeuser:~$ su -
 Password: ***********
 root:~# cd /usr/local/src
-root:/usr/local/src# tar xzf /tmp/postgresql-7.1.3.tar.gz</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-user"></a>Create the Postgres user</h3></div></div><p>
+root:/usr/local/src# tar xzf /tmp/postgresql-7.2.3.tar.gz</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-user"></a>Create the Postgres user</h3></div></div><p>
 	  Still as <tt>root</tt>, create a user and
 	  group (if you haven't done so before) for PostgreSQL. This is the
 	  account that PostgreSQL will run as since it will not run as
@@ -28,7 +30,7 @@
 root:~# passwd postgres
 
 root:~# mkdir -p /usr/local/pgsql
-root:~# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.1.3
+root:~# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.3
 root:~# chmod 750 /usr/local/pgsql
 root:~# exit
 logout
@@ -41,79 +43,94 @@
 PATH=$PATH:/usr/local/pgsql/bin
 
 export PATH LD_LIBRARY_PATH</pre><p>
-	  Logout and login again as <tt>postgres</tt>. Use the
+
+	  Logout and login again as
+	  <tt>postgres</tt>. Use the
 	  <tt>echo</tt> command to make sure that
 	  <tt>/usr/local/pgsql/bin</tt> is now in your
 	  PATH
+
 	</p><pre class="programlisting">
 postgres:~$ exit
 logout
 joeuser:~$ su - postgres
 Password: ************
 postgres:~$ echo $PATH
 /usr/local/bin:/usr/bin:/bin: ... :/usr/local/pgsql/bin</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-compile"></a>Compile and install PostgreSQL</h3></div></div><p>
+
 	  First, we run <tt>./configure</tt> 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 <a class="indexterm" name="id2837780"></a> support, add the flags
 	  <tt>--enable-locale</tt> and
 	  <tt>--enable-multibyte</tt>. If you want to
 	  see what the other possibilities are, run <tt>./configure
 	  --help</tt>.
+
 	</p><pre class="programlisting">
-postgres:~$ cd /usr/local/src/postgresql-7.1.3
-postgres:/usr/local/src/postgresql-7.1.3$ ./configure
-postgres:/usr/local/src/postgresql-7.1.3$ make all</pre><p>
+postgres:~$ cd /usr/local/src/postgresql-7.2.3
+postgres:/usr/local/src/postgresql-7.2.3$ ./configure
+postgres:/usr/local/src/postgresql-7.2.3$ make all</pre><p>
+
 	  Compilation will take a while (about 10 minutes). Once it's done, you
 	  will see the following message:
+
 	</p><pre class="programlisting">
 All of PostgreSQL is successfully made. Ready to install.</pre><p>
+
 	  Next, we'll install PostgreSQL. If all is successful, you'll see the
 	  following &#8220;Thank You&#8221; message.
+
 	</p><pre class="programlisting">
-postgres:/usr/local/src/postgresql-7.1.3$ make install
+postgres:/usr/local/src/postgresql-7.2.3$ make install
 ...
 Thank you for choosing PostgreSQL, the most advanced open source database engine.</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-openfts"></a>Prepare PostgreSQL for OpenFTS</h3></div></div><p>
-	  OpenFTS is the module that provides full text search to OpenACS 4.5. We
-	  won't be installing it until later, but we'll set up a couple things
-	  that are best done right now.
+	  OpenFTS is the module that provides full text search to OpenACS
+	  4.6. We won't be installing it until later, but since it needs
+	  a special PostgreSQL module called 'tsearch', we'll install it now.
 	</p><pre class="programlisting">
-postgres:/usr/local/src/postgresql-7.1.3$ make install-all-headers
-postgres:/usr/local/src/postgresql-7.1.3$ cd contrib/intarray
-postgres:/usr/local/src/postgresql-7.1.3/contrib/intarray$ make
-postgres:/usr/local/src/postgresql-7.1.3/contrib/intarray$ make install</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-startup"></a>Start PostgreSQL</h3></div></div><p>The <tt>initdb</tt> command initializes
-	  the database. <tt>pg_ctl</tt> is used to
-	  start up PostgreSQL.
+postgres:/usr/local/src/postgresql-7.2.3$ cd contrib/tsearch
+postgres:/usr/local/src/postgresql-7.2.3/contrib/tsearch$ make
+postgres:/usr/local/src/postgresql-7.2.3/contrib/tsearch$ make install</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-startup"></a>Start PostgreSQL</h3></div></div><p>
+
+	  The <tt>initdb</tt> command initializes the
+	  database. <tt>pg_ctl</tt> is used to start up
+	  PostgreSQL.
+	
 	</p><pre class="programlisting">
-postgres:/usr/local/src/postgresql-7.1.3/contrib/intarray$ cd
+postgres:/usr/local/src/postgresql-7.2.3/contrib/tsearch$ cd
 postgres:~$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
 postgres:~$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/server.log start
 postmaster successfully started</pre><p>
+
 	  PostgreSQL errors will be logged in
 	  <tt>/usr/local/pgsql/data/server.log</tt>
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-plpgsql"></a>Set up plpgsql and allow nsadmin access</h3></div></div><p>
-	  We have to install plpgsql into our PostgreSQL installation so that
-	  we can use stored procedures. Fortunately, it's pretty easy. We'll
-	  also create a database user named
-	  <tt>nsadmin</tt>, so that aolserver can
-	  access the database. (Don't worry that you don't have a
-	  <tt>nsadmin</tt> user yet - we'll create that
-	  in the next chapter.)
+
+	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-plpgsql"></a>Set up plpgsql and allow your user to have access</h3></div></div><p>
+
+	  Next, we'll install plpgsql into our PostgreSQL installation so that
+	  we can use stored procedures. We'll also create a database user named
+	  <tt>joeuser</tt> (replace with your own
+	  username), so that you'll be able to access the database via
+	  AOLserver.
+
 	</p><pre class="programlisting">
 postgres:~$ createlang plpgsql template1
 postgres:~$ # Test if we succeeded
 postgres:~$ createlang -l template1
-     Procedural languages
-  Name   | Trusted? | Compiler 
----------+----------+----------
- plpgsql | t        | PL/pgSQL
+Procedural languages
+  Name   | Trusted?  
+---------+----------
+ plpgsql | t        
 (1 row)
-postgres:~$ createuser nsadmin
+postgres:~$ createuser <span class="emphasis"><em>joeuser</em></span>
 Shall the new user be allowed to create databases? (y/n) y
 Shall the new user be allowed to create more new users? (y/n) y
 CREATE USER</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-test"></a>Test PostgreSQL</h3></div></div><p>
+
 	  Create a database and try some simple commands. The output should be
 	  as shown.
+
 	</p><pre class="programlisting">
 postgres:~$ createdb mytestdb
 CREATE DATABASE
@@ -143,9 +160,11 @@
 mytestdb=# \q
 postgres:~$ dropdb mytestdb
 DROP DATABASE</pre></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-startonboot"></a>Getting PostgreSQL to start on boot</h3></div></div><p>
+
 	  Download <a href="files/postgresql.txt" target="_top">postgresql.txt</a> to
 	  <tt>/tmp</tt>. Then follow the instructions
 	  specific to your distribution:
+
 	</p><div class="itemizedlist"><ul type="disc"><li><p>Debian:</p><pre class="programlisting">
 postgres:~$ su -
 Password: ***********
@@ -154,9 +173,11 @@
 root:~# chmod 700 /etc/init.d/postgresql</pre><p>Test the script</p><pre class="programlisting">
 root:~# /etc/init.d/postgresql stop
 Stopping PostgreSQL: ok</pre><p>
+
 		  If PostgreSQL successfully stopped, then use the following
 		  command to make sure that the script is run appropriately at boot
 		  and shutdown.
+
 		</p><pre class="programlisting">
 root:~# update-rc.d postgresql defaults
  Adding system startup for /etc/init.d/postgresql ...
@@ -175,11 +196,18 @@
 Password: ***********
 root:~# cp /tmp/postgresql.txt /etc/rc.d/init.d/postgresql
 root:~# chown root.root /etc/rc.d/init.d/postgresql
-root:~# chmod 700 /etc/rc.d/init.d/postgresql</pre><p>Test the script</p><pre class="programlisting">
+root:~# chmod 700 /etc/rc.d/init.d/postgresql</pre><p>
+
+		  Test the script.
+
+		</p><pre class="programlisting">
 root:~# /etc/rc.d/init.d/postgresql stop
-Stopping PostgreSQL: ok</pre><p>If PostgreSQL successfully stopped, then use the following
+Stopping PostgreSQL: ok</pre><p>
+
+		  If PostgreSQL successfully stopped, then use the following
 		  command to make sure that the script is run appropriately at boot
 		  and shutdown.
+
 		</p><pre class="programlisting">
 root:~# chkconfig --add postgresql
 root:~# chkconfig --list postgresql
@@ -188,18 +216,34 @@
 root:~# /etc/rc.d/init.d/postgresql start
 Starting PostgreSQL: ok
 root:~# exit
-postgres:~$ exit</pre></li><li><p>SuSE:</p><pre class="programlisting">
+postgres:~$ exit</pre></li><li><p>SuSE:</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+
+			I have received reports that SuSE 8.0 is different from
+            previous versions. Instead of installing the boot scripts in
+            <tt>/etc/rc.d/init.d/</tt>, they should
+            be placed in <tt>/etc/init.d/</tt>. If
+            you're using SuSE 8.0, delete the
+            <tt>rc.d/</tt> part in each of the
+            following commands.
+
+          </p></div><pre class="programlisting">
 postgres:~$ su -
 Password: ***********
 root:~# cp /tmp/postgresql.txt /etc/rc.d/init.d/postgresql
 root:~# chown root.root /etc/rc.d/init.d/postgresql
-root:~# chmod 700 /etc/rc.d/init.d/postgresql</pre><p>Test the script</p><pre class="programlisting">
+root:~# chmod 700 /etc/rc.d/init.d/postgresql</pre><p>
+
+          Test the script.
+
+        </p><pre class="programlisting">
 root:~# /etc/rc.d/init.d/postgresql stop
 Stopping PostgreSQL: ok</pre><p>
-		  If PostgreSQL successfully stopped, then use the following
-		  command to make sure that the script is run appropriately at boot
-		  and shutdown.
-		</p><pre class="programlisting">
+
+          If PostgreSQL successfully stopped, then use the following
+          command to make sure that the script is run appropriately at boot
+          and shutdown.
+
+        </p><pre class="programlisting">
 root:~# cd /etc/rc.d/init.d
 root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/postgresql K20postgresql
 root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/postgresql S20postgresql  
@@ -213,29 +257,43 @@
 root:/etc/rc.d/init.d# cp S20postgresql rc5.d
 root:/etc/rc.d/init.d# rm K20postgresql
 root:/etc/rc.d/init.d# rm S20postgresql</pre><p>
-		  Test configuration
-		</p><pre class="programlisting">
+
+          Test configuration.
+
+        </p><pre class="programlisting">
 root:/etc/rc.d/init.d # cd
 root:~ # /etc/rc.d/init.d/rc2.d/S20postgresql start
 Starting PostgreSQL: ok
 root:~ # exit</pre></li></ul></div><p>
-	  From now on, PostgreSQL should start automatically each time you boot
-	  up and it should shutdown gracefully each time you shut down. (Note:
-	  Debian defaults to starting all services on runlevels 2-5. Red Hat
-	  defaults to starting services on 3-5. So, on Red Hat, PostgreSQL won't
-	  start on runlevel 2 unless you alter the above commands a
-	  little. This usually isn't a problem as Red Hat defaults to runlevel 3)
-	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-moreinfo"></a>Learn more about PostgreSQL</h3></div></div><p>
-		  Here are some links: 
-	</p><div class="itemizedlist"><ul type="disc"><li><p>
-		  <a href="http://www.postgresql.org/idocs/" target="_top">Official PostgreSQL Docs</a>
-		</p></li><li><p>
-		  <a href="http://pascal.scheffers.net/openacs/pgupdate/" target="_top">Migrating from 7.0 to 7.1</a>
-		</p></li><li><p>
-		<a href="http://techdocs.postgresql.org" target="_top">techdocs.postgresql.org</a>
-		</p></li><li><p>
-		  <a href="http://www.linuxjournal.com/article.php?sid=4791" target="_top">PostgreSQL
-		Performance Tuning</a>
-		</p></li></ul></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="oracle.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="aolserver.html">Next</a></td></tr><tr><td width="40%" align="left">Install Oracle 8.1.7&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install AOLserver 3.3+ad13</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+
+      From now on, PostgreSQL should start automatically each time you boot
+      up and it should shutdown gracefully each time you shut down. (Note:
+      Debian defaults to starting all services on runlevels 2-5. Red Hat
+      defaults to starting services on 3-5. So, on Red Hat, PostgreSQL won't
+      start on runlevel 2 unless you alter the above commands a
+      little. This usually isn't a problem as Red Hat defaults to runlevel 3)
+
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="install-postgres-moreinfo"></a>Learn more about PostgreSQL</h3></div></div><p>
+
+          Here are some links: 
+
+    </p><div class="itemizedlist"><ul type="disc"><li><p>
+
+          <a href="http://www.postgresql.org/idocs/" target="_top">Official PostgreSQL
+          Docs</a>
+
+        </p></li><li><p>
+
+          <a href="http://pascal.scheffers.net/openacs/pgupdate/" target="_top">Migrating
+          from 7.0 to 7.1</a>
+
+        </p></li><li><p>
+
+          <a href="http://techdocs.postgresql.org" target="_top">techdocs.postgresql.org</a>
+
+        </p></li><li><p>
+          
+          <a href="http://www.linuxjournal.com/article.php?sid=4791" target="_top">PostgreSQL
+        Performance Tuning</a>
+
+        </p></li></ul></div></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="oracle.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="aolserver.html">Next</a></td></tr><tr><td width="40%" align="left">Install Oracle 8.1.7&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="unix-install.html">Up</a></td><td width="40%" align="right">&nbsp;Install AOLserver 3.3+ad13</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/postgres.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,10 +1,10 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Programming with AOLserver</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 5. Other Developer Resources"><link rel="previous" href="object-identity.html" title="Object Identity"><link rel="next" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-identity.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="programming-with-aolserver"></a>Programming with AOLserver</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Programming with AOLserver</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="more-developer-info.html" title="Chapter 7. Other Developer Resources"><link rel="previous" href="object-identity.html" title="Object Identity"><link rel="next" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-identity.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Other Developer Resources</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="programming-with-aolserver"></a>Programming with AOLserver</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:michael@arsdigita.com" target="_top">Michael Yoon</a>, <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a> and <a href="http://www.pinds.com/lars" target="_top">Lars Pind</a>. 
 <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="programming-aolserver-global"></a>The <tt>global</tt> command</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="programming-aolserver-global"></a>The <tt>global</tt> command</h3></div></div><p>
 When using AOLserver, remember that there are effectively <span class="emphasis"><em>two</em></span> types
 of global namespace, not one: 
 </p><div class="orderedlist"><ol type="1"><li><p><span class="emphasis"><em>Server</em></span>-global: As you'd expect, there is
@@ -42,7 +42,7 @@
 which runs frequently, don't use the <tt>-thread</tt>
 switch.</p><blockquote class="blockquote"><p><span class="emphasis"><em>Note also that thread is initialized with a copy of what was
 installed during server startup, so if the procedure table have changed since
-startup (e.g. using the <a href="apm-design.html" title="OpenACS 4.5 Package Manager Design">APM</a> watch
+startup (e.g. using the <a href="apm-design.html" title="OpenACS 4.6 Package Manager Design">APM</a> watch
 facility), that will not be reflected in the scheduled
 thread.</em></span></p></blockquote></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="programming-aolserver-return"></a>Using <tt>return</tt></h3></div></div><p>
 The <tt>return</tt> command in Tcl returns control to the caller procedure.
@@ -212,6 +212,4 @@
 perform lookup by name, they perform a linear lookup, whereas arrays use a
 hash table, so <tt>ns_set</tt>s are slower than arrays when the number of
 entries is large. 
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-identity.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Object Identity&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 6. Engineering Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-identity.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Object Identity&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="more-developer-info.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 8. Engineering Standards</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/programming-with-aolserver.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/psgml-mode.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-mode.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/psgml-mode.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/psgml-mode.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Using PSGML mode in Emacs</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="next" href="filename.html" title="Detailed Design Documentation Template"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="filename.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="psgml-mode"></a>Using PSGML mode in Emacs</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Using PSGML mode in Emacs</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="next" href="filename.html" title="Detailed Design Documentation Template"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="filename.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="psgml-mode"></a>Using PSGML mode in Emacs</h2></div></div><div class="authorblurb"><p>
 By <a href="mailto:lutter@arsdigita.com" target="_top">David Lutterkort</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="psgml-mode-whatisit"></a>What it is</h3></div></div><p>PSGML Mode is a mode for editing, umm, SGML and XML documents in emacs. It
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="psgml-mode-whatisit"></a>What it is</h3></div></div><p>PSGML Mode is a mode for editing, umm, SGML and XML documents in emacs. It
 can parse a DTD and help you insert the right tags in the right place, knows
 about tags' attributes and can tell you in which contexts a tag can be
 used. <span class="emphasis"><em>If</em></span> you give it the right DTD, that is. But even without a DTD,
@@ -84,6 +84,4 @@
 element is a <tt>sect1</tt>.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="psgml-mode-usage"></a>How to use it</h3></div></div><p>Of course, you should read the emacs texinfo pages that come with PSGML
 mode from start to finish. Barring that, here are some handy commands:</p><div class="informaltable"><table border="0"><colgroup><col><col></colgroup><thead><tr><th>Key</th><th>Command</th></tr></thead><tbody><tr><td><tt>C-c C-e</tt></td><td>Insert an element. Uses completion and only lets you insert elements that
 are valid</td></tr><tr><td><tt>C-c C-a</tt></td><td>Edit attributes of enclosing element.</td></tr><tr><td><tt>C-c C-x C-i</tt></td><td>Show information about the document's DTD.</td></tr><tr><td><tt>C-c C-x C-e</tt></td><td>Describe element. Shows for one element which elements can be parents,
-what its contents can be and lists its attributes.</td></tr></tbody></table></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="psgml-mode-reading"></a>Further reading</h3></div></div><p>Start with the <a href="docbook-primer.html">OpenACS Documentation Guide</a></p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="filename.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation Guide&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Detailed Design Documentation Template</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+what its contents can be and lists its attributes.</td></tr></tbody></table></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="psgml-mode-reading"></a>Further reading</h3></div></div><p>Start with the <a href="docbook-primer.html">OpenACS Documentation Guide</a></p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="filename.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation Guide&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Detailed Design Documentation Template</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/psgml-mode.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/release-notes.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.html,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/acs-core-docs/www/release-notes.html	10 Aug 2002 20:07:21 -0000	1.9
+++ openacs-4/packages/acs-core-docs/www/release-notes.html	28 Feb 2003 05:36:05 -0000	1.10
@@ -1,35 +1,35 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.5 Release Notes</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="previous" href="openacs-overview.html" title="Overview"><link rel="next" href="acs-admin.html" title="Part Part II. For OpenACS Admins"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. High level information: What is OpenACS?</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="acs-admin.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="release-notes"></a>OpenACS 4.5 Release Notes</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Release Notes</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="previous" href="openacs-overview.html" title="Overview"><link rel="next" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. High level information: What is OpenACS?</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="acs-admin.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="release-notes"></a>OpenACS 4.6 Release Notes</h2></div></div><div class="authorblurb"><p>
 	  by <a href="mailto:dhogaza@pacifier.com" target="_top">Don Baccus</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
-	This is a final release of OpenACS 4.5.  This release has been subjected
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
+	This is a final release of OpenACS 4.6.  This release has been subjected
 	to an organized test effort, but please bear in mind that we are still
 	in the process of developing testing tools, methodology, and scripts.
   </p><p>
 	Please report bugs using our
-	<a href="http://openacs.org/sdm/one-package?package_id=9" target="_top">
-	  Software Development Manager</a> at the <a href="http://openacs.org/" target="_top">OpenACS website</a>.  The latest
-	information on installing this release under Oracle 8.1.6/7
-	or PostgreSQL 7.1.* can be found there as well.  Currently the
+	<a href="http://openacs.org/bugtracker/openacs/" target="_top">
+	  Bug Tracker</a> at the <a href="http://openacs.org/" target="_top">OpenACS website</a>.  The latest
+	information on installing this release under Oracle 8.1.7
+	or PostgreSQL 7.2.* can be found there as well.  Currently the
 	toolkit will not install under Oracle 9i due to Oracle having made
 	&quot;delete&quot; an illegal name for PL/SQL procedures and functions.
   </p><p>
 	You may want to begin by reading our installation documentation for
-	<a href="unix-install.html">Installing on Unix/Linux</a> or <a href="win-install.html">Installing on Windows</a>.  Note
-	that the Windows documentation is not current for OpenACS 4.5,
-	but an alternative is to use John Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM
+	<a href="unix-install.html">Installing on Unix/Linux</a>.  Note that the Windows documentation is
+	not current for OpenACS 4.6, but an alternative is to use John
+	Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM
 	project</a>.
   </p><p>
 	After installation, the full documentation set can be found by visiting
-	http://[your-host]/doc. Not all pieces are updated for OpenACS 4.5 at
+	http://[your-host]/doc. Not all pieces are updated for OpenACS 4.6 at
 	this moment.
   </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="release-notes-sws"></a>Site Wide Searching</h3></div></div><p>
 	  If you're using Oracle 8.1.6 or 8.1.7 Enterprise Edition you may want
 	  to uncomment the SQL that causes InterMedia to keep online searching
 	  online while indexing.  The feature doesn't exist in Standard Edition
-	  and OpenACS 4.5 now defaults to being loadable in SE.  Just grep for
+	  and OpenACS 4.6 now defaults to being loadable in SE.  Just grep for
 	  'sync' to find the code.  
 	</p><p>
 	  Also be sure to read the documentation in the Site Wide Search
@@ -44,165 +44,11 @@
 	  are steps you must take manually in order to get this feature
 	  working.
 	</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="release-notes-testing"></a>Testing Notes</h3></div></div><p>
-	  Here are some notes from our testing group.  While not quite up to
-	  date it should give you some ideas of where things stand.
-	</p><pre class="programlisting">
- Summarised Testing Status
 
-Skin
-Minimal
-Release w/caution
-Comments:
+	  <a href="http://open-msg.com" target="_top">OpenMSG</a> has organized the
+	  OpenACS 4.6 testing process with test servers provided by
+	  <a href="http:hub.org" target="_top">Hub.org</a>. Visit the <a href="http://213.107.207.131:8000/" target="_top">acceptance test server</a> to
+	  see the current status of various packages. This may not be a
+	  permanent link. If it's not working, do a search of the <a href="http://openacs.org/forums/" target="_top">OpenACS forums</a>.
 
-Package: Page
-Test Coverage: Minimal
-Release w/caution
-Comments:
-
-Package: Bboard
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments:
-
-Package: Static Pages
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments:
-
-Package: Ticket Tracker
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments: Don tested personally
-
-Package: Ticket Tracker Lite
-Test Coverage: Unknown
-Suggested Status: 
-Comments:
-
-Package: Acs-lang
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments: Oracle only
-
-Package: Simple-survey
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments:
-
-Package: Portal
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments:
-
-Package: Notes
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments:
-
-Package: Bookmarks
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments:
-
-Package: Clickthrough
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments:
-
-Package: Acs-mail
-Test Coverage: Reasonable
-Suggested Status: Release w/caution
-Comments:
-
-Package: Acs-messaging
-Test Coverage: Reasonable
-Suggested Status: Release w/caution
-Comments:
-
-Package: File manager
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments:
-
-Package: File Storage
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments:
-
-Package: Site-wide-search
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments:
-
-Package: General Comments
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments:
-
-Package: Acs-events
-Test Coverage: None
-Suggested Status: 
-Comments: Automated Testing
-
-Package: Acs-datetime
-Test Coverage: None
-Suggested Status: 
-Comments: Automated Testing
-
-Package: Acs-tcl
-Test Coverage: Reasonable
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-templating
-Test Coverage: Reasonable
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-util
-Test Coverage: Reasonable
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-Content-repository
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-content
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-kernel
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments: Automated Testing
-
-Package: Acs-subsite
-Test Coverage: Reasonable
-Suggested Status: Alpha
-Comments: 
-
-Package: Acs-bootstrap-installer
-Test Coverage: Extensive
-Suggested Status: Alpha
-Comments: Developers have used this extensively
-
-Package: Acs-api-browser
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments: Automated Testing
-
-Package: Acs-workflow
-Test Coverage: Minimal
-Suggested Status: Release w/caution
-Comments: 
-
-Package: calendar
-Test Coverage: Minimal
-Suggested Status: Alpha
-Comments: Don tested personally
-	</pre></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="acs-admin.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="general-documents.html">Up</a></td><td width="40%" align="right">&nbsp;Part Part II. For OpenACS Admins</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p></div><p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="acs-admin.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="general-documents.html">Up</a></td><td width="40%" align="right">&nbsp;Part II. Administrator's Guide</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/release-notes.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/request-processor.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/request-processor.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/request-processor.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/request-processor.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,11 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>The Request Processor</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="objects.html" title="OpenACS 4.5 Data Models and the Object System"><link rel="next" href="db-api.html" title="The OpenACS Database Access API"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="objects.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="db-api.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="request-processor"></a>The Request Processor</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>The Request Processor</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="objects.html" title="OpenACS Data Models and the Object System"><link rel="next" href="db-api.html" title="The OpenACS Database Access API"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="objects.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="db-api.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="request-processor"></a>The Request Processor</h2></div></div><div class="authorblurb"><p>
 By Pete Su
 <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-overview"></a>Overview</h3></div></div><p>
-This document is a brief introduction to the OpenACS 4.5 Request Processor;
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-overview"></a>Overview</h3></div></div><p>
+This document is a brief introduction to the OpenACS 4.6 Request Processor;
 more details can be found in the <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. Here we cover the high level concepts behind the
 system, and implications and usage for the application developer.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-theoldway"></a>The Old Way</h3></div></div><p>
@@ -28,30 +28,30 @@
 
 To achieve this functionality above in OpenACS 3.x, developers used an ad
 hoc combination of AOLserver filters, the <tt>ns_perm</tt> call,
-special purpose code in pages, and other procedures.  In OpenACS 4.5, the
+special purpose code in pages, and other procedures.  In OpenACS 4.6, the
 Request Processor, along with the OpenACS Package Manager, centralizes and
 unifies this functionality, making it more transparent and readily
 available to developers.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-thenewway"></a>The New Way</h3></div></div><p>
-The 4.5 Request Processor is a global filter and set of Tcl procs that
+The 4.6 Request Processor is a global filter and set of Tcl procs that
 respond to every incoming URL reaching the server. The following
 diagram summarizes the stages of the request processor assuming a URL
 request like <tt>http://someserver.com/notes/somepage.adp</tt>.
 
-</p><div class="mediaobject"><img src="images/rp-flow.gif" align="center" longdesc="ld-id2847408.html"><div class="longdesc-link" align="right"><br clear="all"><span style="font-size: 8pt;">[<a href="ld-id2847408.html" target="longdesc">D</a>]</span></div></div><p>
+</p><div class="mediaobject"><img src="images/rp-flow.gif" align="center" longdesc="ld-id2850344.html"><div class="longdesc-link" align="right"><br clear="all"><span style="font-size: 8pt;">[<a href="ld-id2850344.html" target="longdesc">D</a>]</span></div></div><p>
 
 </p><div class="variablelist"><dl><dt><span class="term">Stage 1: Search Site Map</span></dt><dd><p>
 The first thing the RP does is to map the given URL to the appropriate
 physical directory in the filesystem, from which to serve content.  We
 do this by searching the site map data model (touched on in the <a href="packages.html">Packages</a>, and further
-discussed in <a href="subsites.html" title="Writing OpenACS 4.5 Application Pages">the section called &#8220;Writing OpenACS 4.5 Application Pages&#8221;</a>). This data model maps URLs to objects representing
+discussed in <a href="subsites.html" title="Writing OpenACS 4.6 Application Pages">the section called &#8220;Writing OpenACS 4.6 Application Pages&#8221;</a>). This data model maps URLs to objects representing
 content, and these objects are typically package instances. 
 </p><p>
 After looking up the appropriate object, the RP stores the URL, the ID
 of the object it found, and the package and package instance the
 object belongs to into the environment of the connection.  This
 environment can be queried using the <tt>ad_conn</tt> procedure,
-which is described in detail in <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. The <a href="subsites.html" title="Writing OpenACS 4.5 Application Pages">page
+which is described in detail in <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. The <a href="subsites.html" title="Writing OpenACS 4.6 Application Pages">page
 development</a> tutorial shows you how to use this interface to make
 your pages aware of which instance was requested.
 </p></dd><dt><span class="term">Stage 2: Authentication</span></dt><dd><p>
@@ -62,7 +62,7 @@
 extracts or sets up new session tokens for the user.
 </p></dd><dt><span class="term">Stage 3: Authorization</span></dt><dd><p>
 Next, the Request Processor checks if the user has appropriate access
-privileges to the requested part of the site. In OpenACS 4.5, access control
+privileges to the requested part of the site. In OpenACS 4.6, access control
 is dictated by the <a href="permissions" target="_top">permissions system</a>. In
 this case, the RP checks if the user has &quot;read&quot; priviledges on the
 object in the site map specified by the URL. This object is typically
@@ -148,6 +148,9 @@
 </span></dt><dd><p>
 If the URL refers to a package instance, this is the unique key name
 of the package.
-</p></dd></dl></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="objects.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="db-api.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.5 Data Models and the Object System&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;The OpenACS Database Access API</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p></dd><dt><span class="term"><tt>[ad_conn path_info]</tt>
+
+</span></dt><dd><p>
+In a .vuh file, path_info is the trailing part of the URL not matched
+by the .vuh file.
+</p></dd></dl></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="objects.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="db-api.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Data Models and the Object System&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;The OpenACS Database Access API</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/request-processor.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/requirements-template.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/requirements-template.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/requirements-template.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/requirements-template.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,8 +1,8 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>System/Application Requirements Template</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 6. Engineering Standards"><link rel="previous" href="filename.html" title="Detailed Design Documentation Template"><link rel="next" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="filename.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="requirements-template"></a>System/Application Requirements Template</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:youremail@arsdigita.com" target="_top">You</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-requirements-introduction"></a>Introduction</h3></div></div><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>System/Application Requirements Template</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="eng-standards.html" title="Chapter 8. Engineering Standards"><link rel="previous" href="filename.html" title="Detailed Design Documentation Template"><link rel="next" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="filename.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 8. Engineering Standards</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="requirements-template"></a>System/Application Requirements Template</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:youremail@arsdigita.com" target="_top">You</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-requirements-introduction"></a>Introduction</h3></div></div><p>
       <span class="emphasis"><em>Briefly explain to the reader what this document is for, whether
 	it records the requirements for a new system, a client application, a
 	toolkit subsystem, etc. Remember your audience: fellow programmers,
@@ -61,7 +61,7 @@
 	  </p></blockquote></li></ul></div><p>
       For guidelines writing requirements, take a 
       <a href="http://www.arsdigita.com/ad-sepg/process/requirements-quality.html" target="_top">look
-	at the quality standards</a>, along with a good example, such as <a href="apm-requirements.html">OpenACS 4.5 Package Manager Requirements</a>.
+	at the quality standards</a>, along with a good example, such as <a href="apm-requirements.html">OpenACS 4.6 Package Manager Requirements</a>.
     </p><p>
       Besides writing requirements in natural language, consider using the
       following techniques as needed:
@@ -81,6 +81,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. </em></span> 
-    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-revision-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Created</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="filename.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr><tr><td width="40%" align="left">Detailed Design Documentation Template&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Release Version Numbering</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="yourpackage-revision-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Created</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="filename.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr><tr><td width="40%" align="left">Detailed Design Documentation Template&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right">&nbsp;Release Version Numbering</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/requirements-template.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/rp-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/rp-design.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/rp-design.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Request Processor Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="rp-requirements.html" title="OpenACS 4 Request Processor Requirements"><link rel="next" href="db-api-detailed.html" title="Database Access API"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="db-api-detailed.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="rp-design"></a>OpenACS 4 Request Processor Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Request Processor Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="rp-requirements.html" title="OpenACS 4 Request Processor Requirements"><link rel="next" href="db-api-detailed.html" title="Database Access API"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="db-api-detailed.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="rp-design"></a>OpenACS 4 Request Processor Design</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -14,42 +14,42 @@
 request. If these steps succeed, then the request processor must locate the
 file that is associated with the specified URL, and serve the content it
 provides to the browser.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-design-related-systems"></a>Related Systems</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="apm-design.html">OpenACS 4.6 Package Manager Design</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-design-terminology"></a>Terminology</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p>
-<span class="strong">pageroot</span> -- Any directory that contains scripts and/or
+<span class="strong"><em>pageroot</em></span> -- Any directory that contains scripts and/or
 static files intended to be served in response to HTTP requests. A typical
-OpenACS installation is required to serve files from multiple pageroots.</p></li><li><p><span class="strong">global pageroot</span>
-(<span class="strong">/web/<span class="emphasis"><em>servicename</em></span>/www</span>) -- Files appearing under
+OpenACS installation is required to serve files from multiple pageroots.</p></li><li><p><span class="strong"><em>global pageroot</em></span>
+(<span class="strong"><em>/web/<span class="emphasis"><em>servicename</em></span>/www</em></span>) -- Files appearing under
 this pageroot will be served directly off the base url
-http://www.<span class="emphasis"><em>servicename</em></span>.com/</p></li><li><p><span class="strong">package root</span>
-(<span class="strong">/web/<span class="emphasis"><em>servicename</em></span>/packages</span>) -- Each subdirectory of
+http://www.<span class="emphasis"><em>servicename</em></span>.com/</p></li><li><p><span class="strong"><em>package root</em></span>
+(<span class="strong"><em>/web/<span class="emphasis"><em>servicename</em></span>/packages</em></span>) -- Each subdirectory of
 the package root is a package. A typical OpenACS installation will have several
-packages.</p></li><li><p><span class="strong">package pageroot</span>
-(<span class="strong">/web/<span class="emphasis"><em>servicename</em></span>/packages/<span class="emphasis"><em>package_key</em></span>/www</span>)
--- This is the pageroot for the <span class="emphasis"><em>package_key</em></span> package.</p></li><li><p><span class="strong">request environment</span> (<span class="strong">ad_conn</span>) -- This is
+packages.</p></li><li><p><span class="strong"><em>package pageroot</em></span>
+(<span class="strong"><em>/web/<span class="emphasis"><em>servicename</em></span>/packages/<span class="emphasis"><em>package_key</em></span>/www</em></span>)
+-- This is the pageroot for the <span class="emphasis"><em>package_key</em></span> package.</p></li><li><p><span class="strong"><em>request environment</em></span> (<span class="strong"><em>ad_conn</em></span>) -- This is
 a global namespace containing variables associated with the current
-request.</p></li><li><p><span class="strong">abstract URL</span> -- A URL with no extension that doesn't
-directly correspond to a file in the filesystem.</p></li><li><p><span class="strong">abstract file</span> or <span class="strong">abstract path</span> -- A URL
+request.</p></li><li><p><span class="strong"><em>abstract URL</em></span> -- A URL with no extension that doesn't
+directly correspond to a file in the filesystem.</p></li><li><p><span class="strong"><em>abstract file</em></span> or <span class="strong"><em>abstract path</em></span> -- A URL
 that has been translated into a file system path (probably by prepending the
 appropriate pageroot), but still doesn't have any extension and so does
-not directly correspond to a file in the filesystem.</p></li><li><p><span class="strong">concrete file</span> or <span class="strong">concrete path</span> -- A file
-or path that actually references something in the filesystem.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-design-system-overview"></a>System Overview</h3></div></div><p><span class="strong">Package Lookup</span></p><p>One of the first things the request processor must do is to determine
+not directly correspond to a file in the filesystem.</p></li><li><p><span class="strong"><em>concrete file</em></span> or <span class="strong"><em>concrete path</em></span> -- A file
+or path that actually references something in the filesystem.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-design-system-overview"></a>System Overview</h3></div></div><p><span class="strong"><em>Package Lookup</em></span></p><p>One of the first things the request processor must do is to determine
 which package instance a given request references, and based on this
 information, which pageroot to use when searching for a file to serve. During
 this process the request processor divides the URL into two pieces. The first
 portion identifies the package instance. The rest identifies the path into
 the package pageroot. For example if the news package is mounted on
 /offices/boston/announcements/, then a request for
 /offices/boston/announcements/index would be split into the
-<span class="strong">package_url</span> (/offices/boston/announcements/), and the
+<span class="strong"><em>package_url</em></span> (/offices/boston/announcements/), and the
 abstract (no extension info) file path (index). The request processor must be
-able to figure out which <span class="strong">package_id</span> is associated with a
+able to figure out which <span class="strong"><em>package_id</em></span> is associated with a
 given package_url, and package mountings must be persistent across server
 restarts and users must be able to manipulate the mountings on a live site,
-therefore this mapping is stored in the database.</p><p><span class="strong">Authentication and Authorization</span></p><p>Once the request processor has located both the package_id and concrete
+therefore this mapping is stored in the database.</p><p><span class="strong"><em>Authentication and Authorization</em></span></p><p>Once the request processor has located both the package_id and concrete
 file associated with the request, authentication is performed by the <a href="../sessions.html" target="_top">session</a> security system. After authentication has
 been performed the user is authorized to have read access for the given
 package by the <a href="permissions-design.html">OpenACS 4 Permissions Design</a>.
 If authorization succeeds then the request is served, otherwise it is
-aborted.</p><p><span class="strong">Concrete File Search</span></p><p>To actually serve a file, the request processor generates an ordered list
+aborted.</p><p><span class="strong"><em>Concrete File Search</em></span></p><p>To actually serve a file, the request processor generates an ordered list
 of abstract paths and searches each path for a concrete file. The first path
 searched is composed of the package pageroot with the extra portion of the
 URL appended. The second abstract path consists of the global pageroot with
@@ -60,16 +60,16 @@
 directory. Files take precedence over directory listings, so an index file in
 the global pageroot will be served instead of a directory listing in the
 package pageroot, even though the global pageroot is searched later. If a
-file is found at any of the searched locations then it is served.</p><p><span class="strong">Virtual URL Handlers</span></p><p>If no file is found during the concrete file search, then the request
-processor searches the filesystem for a <span class="strong">virtual url handler</span>
-(<span class="strong">.vuh</span>) file. This file contains normal tcl code, and is in
+file is found at any of the searched locations then it is served.</p><p><span class="strong"><em>Virtual URL Handlers</em></span></p><p>If no file is found during the concrete file search, then the request
+processor searches the filesystem for a <span class="strong"><em>virtual url handler</em></span>
+(<span class="strong"><em>.vuh</em></span>) file. This file contains normal tcl code, and is in
 fact handled by the same extension handling procedure that handles .tcl
 files. The only way this file is treated differently is in how the request
 processor searches for it. When a lookup fails, the request processor
 generates each valid prefix of all the abstract paths considered in the
 concrete file search, and searches these prefixes in order from most specific
 to least specific for a matching .vuh file. If a file is found then the
-ad_conn variable <span class="strong">path_info</span> is set to the portion of the url
+ad_conn variable <span class="strong"><em>path_info</em></span> is set to the portion of the url
 <span class="emphasis"><em>not</em></span> matched by the .vuh script, and the script is sourced. This
 facility is intended to replace the concept of registered procs, since no
 special distinction is required between sitewide procs and package specific
@@ -89,14 +89,14 @@
 off the rightmost path components until a match is reached. This way the time
 required to lookup a URL is proportional to the length of the URL, not to the
 number of entries in the mapping.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-design-req-env"></a>Request Environment</h3></div></div><p>The request environment is managed by the procedure
-<span class="strong">ad_conn</span>. Variables can be set and retrieved through use of
+<span class="strong"><em>ad_conn</em></span>. Variables can be set and retrieved through use of
 the ad_conn procedure. The following variables are available for public use.
 If the ad_conn procedure doesn't recognize a variable being passed to it
 for a lookup, it tries to get a value using ns_conn. This guarantees that
-ad_conn subsumes the functionality of ns_conn.</p><div class="informaltable"><table border="0"><colgroup><col><col></colgroup><tbody><tr><td colspan="2"><span class="strong">Request processor</span></td></tr><tr><td valign="top"><tt>[ad_conn urlv]</tt></td><td valign="top">A list containing each element of the URL</td></tr><tr><td valign="top"><tt>[ad_conn url]</tt></td><td valign="top">The URL associated with the request.</td></tr><tr><td valign="top"><tt>[ad_conn file]</tt></td><td valign="top">The filepath including filename of the file being served</td></tr><tr><td valign="top"><tt>[ad_conn request]</tt></td><td valign="top">The number of requests since the server was last started</td></tr><tr><td valign="top"><tt>[ad_conn start_clicks]</tt></td><td valign="top">The system time when the RP starts handling the request</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">Session System Variables</span>: set in
+ad_conn subsumes the functionality of ns_conn.</p><div class="informaltable"><table border="0"><colgroup><col><col></colgroup><tbody><tr><td colspan="2"><span class="strong"><em>Request processor</em></span></td></tr><tr><td valign="top"><tt>[ad_conn urlv]</tt></td><td valign="top">A list containing each element of the URL</td></tr><tr><td valign="top"><tt>[ad_conn url]</tt></td><td valign="top">The URL associated with the request.</td></tr><tr><td valign="top"><tt>[ad_conn file]</tt></td><td valign="top">The filepath including filename of the file being served</td></tr><tr><td valign="top"><tt>[ad_conn request]</tt></td><td valign="top">The number of requests since the server was last started</td></tr><tr><td valign="top"><tt>[ad_conn start_clicks]</tt></td><td valign="top">The system time when the RP starts handling the request</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>Session System Variables</em></span>: set in
 sec_handler, check security with ad_validate_security_info</td></tr><tr><td valign="top"><tt>[ad_conn session_id]</tt></td><td valign="top">The unique session_id coming from the sequence
 <tt>sec_id_seq</tt></td></tr><tr><td valign="top"><tt>[ad_conn user_id]</tt></td><td valign="top">User_id of a person if the person is logged in. Otherwise, it is
-blank</td></tr><tr><td valign="top"><tt>[ad_conn sec_validated]</tt></td><td valign="top">This becomes &quot;secure&quot; when the connection uses SSL</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">Database API</span></td></tr><tr><td valign="top"><tt>[ad_conn db,handles]</tt></td><td valign="top">What are the list of handles available to AOL?</td></tr><tr><td valign="top"><tt>[ad_conn db,n_handles_used]</tt></td><td valign="top">How many database handles are currently used?</td></tr><tr><td valign="top"><tt>[ad_conn db,last_used]</tt></td><td valign="top">Which database handle did we use last?</td></tr><tr><td valign="top"><tt>[ad_conn db,transaction_level,$db]</tt></td><td valign="top">Specifies what transaction level we are in</td></tr><tr><td valign="top"><tt>[ad_conn db,db_abort_p,$dbh]</tt></td><td valign="top">Whether the transaction is aborted</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">APM</span></td></tr><tr><td valign="top"><tt>[ad_conn xml_loaded_p]</tt></td><td valign="top">Checks whether the XML parser is loaded so that it only gets loaded once.
-Set in apm_load_xml_packages</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">Packages</span></td></tr><tr><td valign="top"><tt>[ad_conn package_id]</tt></td><td valign="top">The package_id of the package associated with the URL.</td></tr><tr><td valign="top"><tt>[ad_conn package_url]</tt></td><td valign="top">The URL on which the package is mounted.</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">Miscellaneous</span></td></tr><tr><td valign="top"><tt>[ad_conn system_p]</tt></td><td valign="top">If true then the request has been made to one of the special directories
+blank</td></tr><tr><td valign="top"><tt>[ad_conn sec_validated]</tt></td><td valign="top">This becomes &quot;secure&quot; when the connection uses SSL</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>Database API</em></span></td></tr><tr><td valign="top"><tt>[ad_conn db,handles]</tt></td><td valign="top">What are the list of handles available to AOL?</td></tr><tr><td valign="top"><tt>[ad_conn db,n_handles_used]</tt></td><td valign="top">How many database handles are currently used?</td></tr><tr><td valign="top"><tt>[ad_conn db,last_used]</tt></td><td valign="top">Which database handle did we use last?</td></tr><tr><td valign="top"><tt>[ad_conn db,transaction_level,$db]</tt></td><td valign="top">Specifies what transaction level we are in</td></tr><tr><td valign="top"><tt>[ad_conn db,db_abort_p,$dbh]</tt></td><td valign="top">Whether the transaction is aborted</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>APM</em></span></td></tr><tr><td valign="top"><tt>[ad_conn xml_loaded_p]</tt></td><td valign="top">Checks whether the XML parser is loaded so that it only gets loaded once.
+Set in apm_load_xml_packages</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>Packages</em></span></td></tr><tr><td valign="top"><tt>[ad_conn package_id]</tt></td><td valign="top">The package_id of the package associated with the URL.</td></tr><tr><td valign="top"><tt>[ad_conn package_url]</tt></td><td valign="top">The URL on which the package is mounted.</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>Miscellaneous</em></span></td></tr><tr><td valign="top"><tt>[ad_conn system_p]</tt></td><td valign="top">If true then the request has been made to one of the special directories
 specified in the config file (somewhere), and no authentication or
-authorization has been performed.</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong">Documentation</span></td></tr><tr><td valign="top"><tt>[ad_conn api_page_documentation_mode_p]</tt></td><td valign="top">�</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="db-api-detailed.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Request Processor Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Database Access API</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/rp-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
+authorization has been performed.</td></tr><tr><td colspan="2">�</td></tr><tr><td colspan="2"><span class="strong"><em>Documentation</em></span></td></tr><tr><td valign="top"><tt>[ad_conn api_page_documentation_mode_p]</tt></td><td valign="top">�</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="db-api-detailed.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Request Processor Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Database Access API</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/rp-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/rp-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/rp-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/rp-requirements.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Request Processor Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="security-notes.html" title="OpenACS 4 Security Notes"><link rel="next" href="rp-design.html" title="OpenACS 4 Request Processor Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>OpenACS 4 Request Processor Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Request Processor Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="security-notes.html" title="OpenACS 4 Security Notes"><link rel="next" href="rp-design.html" title="OpenACS 4 Request Processor Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>OpenACS 4 Request Processor Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -19,9 +19,9 @@
 for the connecting party. Eventually this may also require determining the
 capabilities of the connecting browser and choosing the most appropriate form
 for the delivered content.</p></li></ol></div><p>It is essential that any errors that occur during the above steps be
-reported to developers in an easily decipherable manner.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-requirements-links"></a>Related Links</h3></div></div><p><a href="rp-design.html">OpenACS 4 Request Processor Design</a></p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-requirements-req"></a>Requirements</h3></div></div><p><span class="strong">10.0 Multiple Pageroots</span></p><blockquote class="blockquote"><p><span class="strong">10.10</span> Pageroots may be combined into one URL space.</p><p><span class="strong">10.20</span> Pageroots may be mounted at more than one location in the URL
-space.</p></blockquote><p><span class="strong">20.0 Application Context</span></p><blockquote class="blockquote"><p><span class="strong">20.10</span> The request processor must be able to determine a primary context
+reported to developers in an easily decipherable manner.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-requirements-links"></a>Related Links</h3></div></div><p><a href="rp-design.html">OpenACS 4 Request Processor Design</a></p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="rp-requirements-req"></a>Requirements</h3></div></div><p><span class="strong"><em>10.0 Multiple Pageroots</em></span></p><blockquote class="blockquote"><p><span class="strong"><em>10.10</em></span> Pageroots may be combined into one URL space.</p><p><span class="strong"><em>10.20</em></span> Pageroots may be mounted at more than one location in the URL
+space.</p></blockquote><p><span class="strong"><em>20.0 Application Context</em></span></p><blockquote class="blockquote"><p><span class="strong"><em>20.10</em></span> The request processor must be able to determine a primary context
 or state associated with a pageroot based on it's location within the URL
-space.</p></blockquote><p><span class="strong">30.0 Authentication</span></p><blockquote class="blockquote"><p><span class="strong">30.10</span> The request processor must be able to verify that the connecting
-browser actually represents the party it claims to represent.</p></blockquote><p><span class="strong">40.0 Authorization</span></p><blockquote class="blockquote"><p><span class="strong">40.10</span> The request processor must be able to verify that the party the
-connecting browser represents is allowed to make the request.</p></blockquote><p><span class="strong">50.0 Scalability</span></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-notes.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="rp-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Security Notes&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Request Processor Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/rp-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
+space.</p></blockquote><p><span class="strong"><em>30.0 Authentication</em></span></p><blockquote class="blockquote"><p><span class="strong"><em>30.10</em></span> The request processor must be able to verify that the connecting
+browser actually represents the party it claims to represent.</p></blockquote><p><span class="strong"><em>40.0 Authorization</em></span></p><blockquote class="blockquote"><p><span class="strong"><em>40.10</em></span> The request processor must be able to verify that the party the
+connecting browser represents is allowed to make the request.</p></blockquote><p><span class="strong"><em>50.0 Scalability</em></span></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-notes.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="rp-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Security Notes&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Request Processor Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/rp-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/security-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/security-design.html	30 Nov 2002 17:16:24 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/security-design.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Security Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="security-requirements.html" title="OpenACS 4 Security Requirements"><link rel="next" href="security-notes.html" title="OpenACS 4 Security Notes"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-notes.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-design"></a>OpenACS 4 Security Design</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Security Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="security-requirements.html" title="OpenACS 4 Security Requirements"><link rel="next" href="security-notes.html" title="OpenACS 4 Security Notes"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-notes.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-design"></a>OpenACS 4 Security Design</h2></div></div><div class="authorblurb"><p>
 
 by <a href="mailto:richardl@arsdigita.com" target="_top">Richard Li</a>, <a href="mailto:ashah@arsdigita.com" target="_top">Archit Shah</a><br>
           OpenACS docs are written by the named authors, but may be edited
@@ -43,10 +43,10 @@
 for a secure authentication token. However, the basic architecture here lays
 the foundation for a secure system and can be easily adapted to a more secure
 authentication system by forcing all logins to occur over HTTPS.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="authentication-details"></a>Details</h4></div></div><p>The authentication system issues up to four signed cookies (see below),
-with each cookie serving a different purpose. These cookies are:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">name</span></td><td><span class="strong">value</span></td><td><span class="strong">max-age</span></td><td><span class="strong">secure?</span></td></tr><tr><td>ad_session_id</td><td>session_id,user_id</td><td>SessionTimeout</td><td>no</td></tr><tr><td>ad_user_login</td><td>user_id</td><td>Infinity</td><td>no</td></tr><tr><td>ad_user_login_secure</td><td>user_id,random</td><td>Infinity</td><td>yes</td></tr><tr><td>ad_secure_token</td><td>session_id,user_id,random</td><td>SessionLifetime</td><td>yes</td></tr></tbody></table></div></blockquote><div class="itemizedlist"><ul type="disc"><li><p>ad_session_id</p><div class="itemizedlist"><ul type="circle"><li><p>reissued on any hit separated by more than SessionRenew seconds from the
-previous hit that received a cookie</p></li><li><p>is valid only for SessionTimeout seconds</p></li><li><p>is the canonical source for the session ID in ad_conn</p></li></ul></div></li><li><p>ad_user_login</p><div class="itemizedlist"><ul type="circle"><li><p>is used for permanent logins</p></li></ul></div></li><li><p>ad_user_login_secure</p><div class="itemizedlist"><ul type="circle"><li><p>is used for permanent secure logins</p></li><li><p>contains random garbage (ns_time) to prevent attack against the secure
+with each cookie serving a different purpose. These cookies are:</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>name</em></span></td><td><span class="strong"><em>value</em></span></td><td><span class="strong"><em>max-age</em></span></td><td><span class="strong"><em>secure?</em></span></td></tr><tr><td>ad_session_id</td><td>session_id,user_id</td><td>SessionTimeout</td><td>no</td></tr><tr><td>ad_user_login</td><td>user_id</td><td>Infinity</td><td>no</td></tr><tr><td>ad_user_login_secure</td><td>user_id,random</td><td>Infinity</td><td>yes</td></tr><tr><td>ad_secure_token</td><td>session_id,user_id,random</td><td>SessionLifetime</td><td>yes</td></tr></tbody></table></div></blockquote><div class="itemizedlist"><ul type="disc"><li><p>ad_session_id</p><div class="itemizedlist"><ul type="round"><li><p>reissued on any hit separated by more than SessionRenew seconds from the
+previous hit that received a cookie</p></li><li><p>is valid only for SessionTimeout seconds</p></li><li><p>is the canonical source for the session ID in ad_conn</p></li></ul></div></li><li><p>ad_user_login</p><div class="itemizedlist"><ul type="round"><li><p>is used for permanent logins</p></li></ul></div></li><li><p>ad_user_login_secure</p><div class="itemizedlist"><ul type="round"><li><p>is used for permanent secure logins</p></li><li><p>contains random garbage (ns_time) to prevent attack against the secure
 hash</p></li></ul></div></li><li><p>ad_secure_token
-</p><div class="itemizedlist"><ul type="circle"><li><p>is a session-level cookie from the browser's standpoint</p></li><li><p>its signature expires in SessionLifetime seconds</p></li><li><p>contains random garbage (ns_time) to prevent attack against the secure
+</p><div class="itemizedlist"><ul type="round"><li><p>is a session-level cookie from the browser's standpoint</p></li><li><p>its signature expires in SessionLifetime seconds</p></li><li><p>contains random garbage (ns_time) to prevent attack against the secure
 hash</p></li><li><p>user_id is extraneous</p></li></ul></div></li></ul></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="authentication-process"></a>Authentication Process</h4></div></div><p>The Tcl function (<tt>sec_handler</tt>) is called by the request
 processor to authenticate the user. It first checks the
 <tt>ad_session_id</tt> cookie. If there is no valid session in progress,
@@ -86,7 +86,7 @@
 immediately</p></li><li><p>nothing: if the cookie is present, it remains</p></li></ul></div><p>
 The current state of the permanent login cookies is not taken into account
 when determining the appropriate action. 
-</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col><col></colgroup><tbody><tr><td><span class="strong">previous login state</span></td><td><span class="strong">permanent login requested</span></td><td><span class="strong">secure connection</span></td><td><span class="strong">action on insecure</span></td><td><span class="strong">action on secure</span></td></tr><tr><td>other</td><td>y</td><td>y</td><td>set</td><td>set</td></tr><tr><td>same</td><td>y</td><td>y</td><td>set</td><td>set</td></tr><tr><td>other</td><td>y</td><td>n</td><td>set</td><td>delete</td></tr><tr><td>same</td><td>y</td><td>n</td><td>set</td><td>nothing</td></tr><tr><td>same</td><td>n</td><td>y</td><td>nothing</td><td>delete</td></tr><tr><td>other</td><td>n</td><td>y</td><td>delete</td><td>delete</td></tr><tr><td>other</td><td>n</td><td>n</td><td>delete</td><td>delete</td></tr><tr><td>same</td><td>n</td><td>n</td><td>delete</td><td>delete</td></tr></tbody></table></div></blockquote><p><tt>ad_user_login</tt>
+</p><blockquote class="blockquote"><div class="informaltable"><table border="1"><colgroup><col><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>previous login state</em></span></td><td><span class="strong"><em>permanent login requested</em></span></td><td><span class="strong"><em>secure connection</em></span></td><td><span class="strong"><em>action on insecure</em></span></td><td><span class="strong"><em>action on secure</em></span></td></tr><tr><td>other</td><td>y</td><td>y</td><td>set</td><td>set</td></tr><tr><td>same</td><td>y</td><td>y</td><td>set</td><td>set</td></tr><tr><td>other</td><td>y</td><td>n</td><td>set</td><td>delete</td></tr><tr><td>same</td><td>y</td><td>n</td><td>set</td><td>nothing</td></tr><tr><td>same</td><td>n</td><td>y</td><td>nothing</td><td>delete</td></tr><tr><td>other</td><td>n</td><td>y</td><td>delete</td><td>delete</td></tr><tr><td>other</td><td>n</td><td>n</td><td>delete</td><td>delete</td></tr><tr><td>same</td><td>n</td><td>n</td><td>delete</td><td>delete</td></tr></tbody></table></div></blockquote><p><tt>ad_user_login</tt>
 calls<tt>sec_setup_session</tt> which actually calls
 <tt>sec_generate_session_id_cookie</tt> to generate the
 new cookie with refer to the appropriate user_id. If the connection is secure
@@ -206,13 +206,13 @@
 token_id is returned out of the entire set of cached token_ids. In addition,
 a thread-persistent cache called tcl_secret_tokens is maintained on a
 per-thread basis.</p><p>Thus, the L2 ns_cache functions as a server-wide LRU cache that has a
-minimum of 100 tokens in it. The cache has a dual purpose:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">LRU cache</span> Note that cache misses will only occur in the
+minimum of 100 tokens in it. The cache has a dual purpose:</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>LRU cache</em></span> Note that cache misses will only occur in the
 multiple server case, where a user agent may have a signature guaranteed by a
-secret token issued by another server in the cluster.</p></li><li><p><span class="strong">signature cache</span> Since the cache always maintains a
+secret token issued by another server in the cluster.</p></li><li><p><span class="strong"><em>signature cache</em></span> Since the cache always maintains a
 minimum of 100 (set by a parameter) tokens populated at startup, it can be
 used to provide a random token for signature purposes.</p></li></ul></div><p>
 The per-thread cache functions as an L1 cache that indiscriminately caches
-all secret tokens. Note that this is <span class="strong">not</span> an LRU cache
+all secret tokens. Note that this is <span class="strong"><em>not</em></span> an LRU cache
 because there is no cache eviction policy per se -- the cache is cleared when
 the thread is destroyed by AOLserver. 
 </p></div><div class="sect4"><div class="titlepage"><div><h5 class="title"><a name="signature-security"></a>Security</h5></div></div><p>Storing information on a client always presents an additional security
@@ -234,41 +234,41 @@
 thread-persistent global variable. The remaining 120 bits are rehashed to
 produce 160 bits of output. 
 </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="security-design-api"></a>API</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="login-password-api"></a>Login/Password</h4></div></div><p>
-<span class="strong">ad_user_login <span class="emphasis"><em>user_id</em></span></span> Logs the user in as user
+<span class="strong"><em>ad_user_login <span class="emphasis"><em>user_id</em></span></em></span> Logs the user in as user
 <span class="emphasis"><em>user_id</em></span>. Optional forever flag determines whether or not permanent
 cookies are issued. 
-</p><p><span class="strong">ad_user_logout</span> Logs the user out.</p><p><span class="strong">ad_check_password <span class="emphasis"><em>user_id</em></span> <span class="emphasis"><em>password</em></span></span>
-returns 0 or 1.</p><p><span class="strong">ad_change_password <span class="emphasis"><em>user_id</em></span> <span class="emphasis"><em>new
-password</em></span></span></p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="signature-api"></a>Digital Signatures and Signed Cookies</h4></div></div><p>
-<span class="strong">ad_sign <span class="emphasis"><em>value</em></span></span> Returns the digital signature of this
+</p><p><span class="strong"><em>ad_user_logout</em></span> Logs the user out.</p><p><span class="strong"><em>ad_check_password <span class="emphasis"><em>user_id</em></span> <span class="emphasis"><em>password</em></span></em></span>
+returns 0 or 1.</p><p><span class="strong"><em>ad_change_password <span class="emphasis"><em>user_id</em></span> <span class="emphasis"><em>new
+password</em></span></em></span></p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="signature-api"></a>Digital Signatures and Signed Cookies</h4></div></div><p>
+<span class="strong"><em>ad_sign <span class="emphasis"><em>value</em></span></em></span> Returns the digital signature of this
 value. Optional parameters allow for the specification of the <span class="emphasis"><em>secret</em></span>
 used, the <span class="emphasis"><em>token_id</em></span> used and the <span class="emphasis"><em>max_age</em></span> for the signature.
-<span class="strong">ad_verify_signature <span class="emphasis"><em>value</em></span> <span class="emphasis"><em>signature</em></span></span>Returns
+<span class="strong"><em>ad_verify_signature <span class="emphasis"><em>value</em></span> <span class="emphasis"><em>signature</em></span></em></span>Returns
 1 or 0 indicating whether or not the signature matches the value specified.
 The <span class="emphasis"><em>secret</em></span> parameter allows for specification of a different secret
 token to be used. </p><p>
-<span class="strong">ad_set_signed_cookie <span class="emphasis"><em>name</em></span> <span class="emphasis"><em>data</em></span></span> Sets a
-signed cookie <span class="emphasis"><em>name</em></span> with value <span class="emphasis"><em>data</em></span>. </p><p><span class="strong">ad_get_signed_cookie <span class="emphasis"><em>name</em></span></span> Gets the signed cookie
+<span class="strong"><em>ad_set_signed_cookie <span class="emphasis"><em>name</em></span> <span class="emphasis"><em>data</em></span></em></span> Sets a
+signed cookie <span class="emphasis"><em>name</em></span> with value <span class="emphasis"><em>data</em></span>. </p><p><span class="strong"><em>ad_get_signed_cookie <span class="emphasis"><em>name</em></span></em></span> Gets the signed cookie
 <span class="emphasis"><em>name</em></span>. It raises an error if the cookie has been tampered with, or if
-its expiration time has passed.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="session-property-api"></a>Session Properties</h4></div></div><p><span class="strong">ad_set_client_property <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>name</em></span>
-<span class="emphasis"><em>data</em></span></span> Sets a session property with <span class="emphasis"><em>name</em></span> to value
+its expiration time has passed.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="session-property-api"></a>Session Properties</h4></div></div><p><span class="strong"><em>ad_set_client_property <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>name</em></span>
+<span class="emphasis"><em>data</em></span></em></span> Sets a session property with <span class="emphasis"><em>name</em></span> to value
 <span class="emphasis"><em>data</em></span> for the module <span class="emphasis"><em>module</em></span>. The optional secure flag
 specifies the property should only be set if the client is authorized for
 secure access (<tt>ad_secure_conn_p</tt> is true). There is also an optional
-<span class="emphasis"><em>session_id</em></span> flag to access data from sessions other than the current one.</p><p><span class="strong">ad_get_client_property <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>name</em></span>
-<span class="emphasis"><em>data</em></span></span> Gets a session property with <span class="emphasis"><em>name</em></span> to for the
+<span class="emphasis"><em>session_id</em></span> flag to access data from sessions other than the current one.</p><p><span class="strong"><em>ad_get_client_property <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>name</em></span>
+<span class="emphasis"><em>data</em></span></em></span> Gets a session property with <span class="emphasis"><em>name</em></span> to for the
 module <span class="emphasis"><em>module</em></span>. The optional secure flag specifies the property
 should only be retrieved if the client is authorized for secure access
 (<tt>ad_secure_conn_p</tt> is true). There is also an optional
 <span class="emphasis"><em>session_id</em></span> flag to access data from sessions other than the current one.</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="parameters"></a>Parameters</h4></div></div><p>
-<span class="strong">SessionTimeout</span> the maximum time in seconds (default 1200)
-between requests that are part of the same session </p><p><span class="strong">SessionRenew</span> the time in seconds (default 300) between
+<span class="strong"><em>SessionTimeout</em></span> the maximum time in seconds (default 1200)
+between requests that are part of the same session </p><p><span class="strong"><em>SessionRenew</em></span> the time in seconds (default 300) between
 reissue of the session cookie. The minimum time that can pass after a session
 cookie is issued and before it is rejected is (SessionTimeout -
 SessionRenew). This parameter is used so that only one session_id cookie is
 set on a single page even if there are multiple images that are being
-downloaded.</p><p><span class="strong">SessionLifetime</span> the maximum possible lifetime of a
-session in seconds (default 604800 = 7 days)</p><p><span class="strong">NumberOfCachedSecretTokens</span> the number of secret tokens to
+downloaded.</p><p><span class="strong"><em>SessionLifetime</em></span> the maximum possible lifetime of a
+session in seconds (default 604800 = 7 days)</p><p><span class="strong"><em>NumberOfCachedSecretTokens</em></span> the number of secret tokens to
 cache. (default 100)</p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="security-design-future"></a>Future Improvements</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="PRNG-impl"></a>PRNG implementation</h4></div></div><p>
 The pseudorandom number generator used in the OpenACS is cryptographically weak,
 and depends primarily on the randomness of the <tt>ns_rand</tt> function
@@ -339,15 +339,15 @@
 points for the system; these vulnerabilities are currently theoretical in
 nature. The major cryptographic vulnerability of the system stems from the
 pseudorandom nature of the random number generators used in the system. 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">Cryptographically weak PRNG</span> see
-above.</p></li><li><p><span class="strong">Dependence on <tt>sample</tt>
-SQL command</span> The list of random token that are placed in the secret
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>Cryptographically weak PRNG</em></span> see
+above.</p></li><li><p><span class="strong"><em>Dependence on <tt>sample</tt>
+SQL command</em></span> The list of random token that are placed in the secret
 tokens cache is randomly chosen by the Oracle
 <tt>sample</tt> command. This command may not be
 entirely random, so predicting the contents of the secret tokens cache may not
-be as difficult as someone may anticipate.</p></li><li><p><span class="strong">Dependence on
-<tt>ns_rand</tt></span> The actual token that is
+be as difficult as someone may anticipate.</p></li><li><p><span class="strong"><em>Dependence on
+<tt>ns_rand</tt></em></span> The actual token that is
 chosen from the cache to be used is chosen by a call to
-<tt>ns_rand</tt>.</p></li><li><p><span class="strong"><tt>ad_secure_conn_p</tt></span>
+<tt>ns_rand</tt>.</p></li><li><p><span class="strong"><em><tt>ad_secure_conn_p</tt></em></span>
 As discussed above, the security of the secure sessions authentication system is
 dependent upon this function.</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-requirements.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="security-notes.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Security Requirements&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Security Notes</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/security-design.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/security-notes.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/security-notes.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/security-notes.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Security Notes</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 7. Kernel Documentation"><link rel="previous" href="security-design.html" title="OpenACS 4 Security Design"><link rel="next" href="rp-requirements.html" title="OpenACS 4 Request Processor Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="rp-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-notes"></a>OpenACS 4 Security Notes</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Security Notes</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="security-design.html" title="OpenACS 4 Security Design"><link rel="next" href="rp-requirements.html" title="OpenACS 4 Request Processor Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="rp-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-notes"></a>OpenACS 4 Security Notes</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:richardl@arsdigita.com" target="_top">Richard Li</a><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>
 The security system was designed for security. Thus, decisions requiring
 trade-offs between ease-of-use and security tend to result in a system that
 may not be as easy to use but is more secure. 
@@ -56,6 +56,4 @@
 The set of string match expressions in the procedure above should be extended
 appropriately for other registration pages. This procedure does not use
 <tt>ad_parameter</tt> or regular expressions for performance reasons, as
-it is called by the request processor. </p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="rp-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Security Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Request Processor Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+it is called by the request processor. </p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="rp-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Security Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Request Processor Requirements</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/security-notes.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/security-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/security-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/security-requirements.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Security Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="apm-design.html" title="OpenACS 4.6 Package Manager Design"><link rel="next" href="security-design.html" title="OpenACS 4 Security Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-requirements"></a>OpenACS 4 Security Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Security Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="apm-design.html" title="OpenACS 4.6 Package Manager Design"><link rel="next" href="security-design.html" title="OpenACS 4 Security Design"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="security-requirements"></a>OpenACS 4 Security Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:richardl@arsdigita.com" target="_top">Richard Li</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -15,34 +15,34 @@
 vendors require that the user identity be securely validated. 
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="security-requirements-system-overview"></a>Security System Overview</h3></div></div><p>
 The security system consists of a number of subsystems. 
-</p><p><span class="strong">Signed Cookies</span></p><p>
+</p><p><span class="strong"><em>Signed Cookies</em></span></p><p>
 Cookies play a key role in storing user information. However, since they are
 stored in plaintext on a user's system, the validity of cookies is an
 important issue in trusting cookie information. Thus, we want to be able to
 validate a cookie, but we also want to validate the cookie without a database
 hit. 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">10.0 Guaranteed Tamper Detection</span> Any tampering of cookie
-data should be easily detectable by the web server.</p></li><li><p><span class="strong">10.1 Performance and Scalability</span> Validation and
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>10.0 Guaranteed Tamper Detection</em></span> Any tampering of cookie
+data should be easily detectable by the web server.</p></li><li><p><span class="strong"><em>10.1 Performance and Scalability</em></span> Validation and
 verification of the cookie should be easily scalable and should not require a
-database query on every hit.</p></li></ul></div><p><span class="strong">Session Properties</span></p><p>
+database query on every hit.</p></li></ul></div><p><span class="strong"><em>Session Properties</em></span></p><p>
 Applications should be able to store session-level properties in a database
 table. 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">11.0 Storage API</span> Session-level data should be accessible
-via an API.</p></li><li><p><span class="strong">11.1 Purge Mechanism</span> An efficient pruning mechanism
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>11.0 Storage API</em></span> Session-level data should be accessible
+via an API.</p></li><li><p><span class="strong"><em>11.1 Purge Mechanism</em></span> An efficient pruning mechanism
 should be used to prevent old session level properties from filling up the
-table.</p></li></ul></div><p><span class="strong">Login</span></p><p>
+table.</p></li></ul></div><p><span class="strong"><em>Login</em></span></p><p>
 The security system should support the concept of persistent user logins.
 This persistence takes several forms. 
-</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">12.0 Permanent Login</span> Users should be able to maintain a
-permanent user login so that they never need to type their password.</p></li><li><p><span class="strong">12.1 Session Login</span> The security system should support
+</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>12.0 Permanent Login</em></span> Users should be able to maintain a
+permanent user login so that they never need to type their password.</p></li><li><p><span class="strong"><em>12.1 Session Login</em></span> The security system should support
 the concept of a session, with authentication tokens that become invalid
-after a certain period of time.</p></li><li><p><span class="strong">12.2 Session Definition</span> A session is a sequence of
+after a certain period of time.</p></li><li><p><span class="strong"><em>12.2 Session Definition</em></span> A session is a sequence of
 clicks by one user from one browser in which no two clicks are separated by
-more than some constant (the session timeout).</p></li><li><p><span class="strong">12.3 Stateless</span> The security system should not require
+more than some constant (the session timeout).</p></li><li><p><span class="strong"><em>12.3 Stateless</em></span> The security system should not require
 state that is stored in the server. Required state may reside only in the
 user request (including cookies), and in the database. A single user should
 be able to log in to the system even if the user is sent to a different
-AOLserver for each step of the login process (e.g., by a load balancer).</p></li><li><p><span class="strong">12.4 Secure</span> The security system should not store
-passwords in clear text in the database.</p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">13.0 SSL Hardware</span> The system must work when the SSL
+AOLserver for each step of the login process (e.g., by a load balancer).</p></li><li><p><span class="strong"><em>12.4 Secure</em></span> The security system should not store
+passwords in clear text in the database.</p></li></ul></div><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>13.0 SSL Hardware</em></span> The system must work when the SSL
 processing occurs outside of the web server (in specialized hardware, in a
 firewall, etc.).</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="security-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4.6 Package Manager Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Security Design</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/security-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/submissions.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/submissions.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/submissions.html	28 Feb 2003 05:36:05 -0000	1.1
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Contributions</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="subsites.html" title="Writing OpenACS 4.6 Application Pages"><link rel="next" href="i18n.html" title="Internationalization"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="i18n.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="submissions"></a>Contributions</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2855241"></a>Overview</h3></div></div><p>How to contribute work back to the community.  Bugs,
+    patches, new packages.  Forthcoming.
+    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="i18n.html">Next</a></td></tr><tr><td width="40%" align="left">Writing OpenACS 4.6 Application Pages&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Internationalization</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/submissions.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/subsites-design.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-design.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/subsites-design.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/subsites-design.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Subsites Design Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="subsites-requirements.html" title="OpenACS 4 Subsites Requirements"><link rel="next" href="apm-requirements.html" title="OpenACS 4.6 Package Manager Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apm-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites-design"></a>OpenACS 4 Subsites Design Document</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Subsites Design Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="subsites-requirements.html" title="OpenACS 4 Subsites Requirements"><link rel="next" href="apm-requirements.html" title="OpenACS 4.6 Package Manager Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-requirements.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apm-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites-design"></a>OpenACS 4 Subsites Design Document</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -41,7 +41,7 @@
 URLs to operate together. This requirement would cause some packages to have
 more configuration options than normal since hard-coding the URLs would not
 be feasible anymore.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-design-api"></a>API</h3></div></div><p>This section will cover all the APIs relevant to subsites, and so will
-consist of portions of the APIs of several systems.</p><p><span class="strong">Packages</span></p><p>The following package is provided for instantiation of packages. The
+consist of portions of the APIs of several systems.</p><p><span class="strong"><em>Packages</em></span></p><p>The following package is provided for instantiation of packages. The
 apm_package.new function can be used to create a package of any type known to
 the system. The apm_package_types table can be queried for a list of
 installed packages. (See APM docs for more detail XXX: insert link here)</p><pre class="programlisting">
@@ -101,7 +101,7 @@
 show errors
 </tt>
 
-</pre><p><span class="strong">Site Nodes</span></p><p>This data model keeps track of what packages are being served from what
+</pre><p><span class="strong"><em>Site Nodes</em></span></p><p>This data model keeps track of what packages are being served from what
 URLs. You can think of this as a kind of rp_register_directory_map on drugs.
 This table represents a fully hierarchical site map. The directory_p column
 indicates whether or not the node is a leaf node. The pattern_p column
@@ -182,7 +182,7 @@
 show errors
 </tt>
 
-</pre><p><span class="strong">Request Processor</span></p><p>Once the above APIs are used to create packages and mount them on a
+</pre><p><span class="strong"><em>Request Processor</em></span></p><p>Once the above APIs are used to create packages and mount them on a
 specific site node, the following request processor APIs can be used to allow
 the package to serve content appropriate to the package instance.</p><pre class="programlisting">
 
Index: openacs-4/packages/acs-core-docs/www/subsites-requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-requirements.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/subsites-requirements.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS 4 Subsites Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�7.�Kernel Documentation"><link rel="previous" href="groups-design.html" title="OpenACS 4 Groups Design"><link rel="next" href="subsites-design.html" title="OpenACS 4 Subsites Design Document"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter�7.�Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites-requirements"></a>OpenACS 4 Subsites Requirements</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4 Subsites Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="groups-design.html" title="OpenACS 4 Groups Design"><link rel="next" href="subsites-design.html" title="OpenACS 4 Subsites Design Document"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-design.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="subsites-design.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites-requirements"></a>OpenACS 4 Subsites Requirements</h2></div></div><div class="authorblurb"><p>
 by <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> and <a href="mailto:dennis@arsdigita.com" target="_top">Dennis Gregorovic</a><br>
           OpenACS docs are written by the named authors, but may be edited
           by OpenACS documentation staff.
@@ -42,17 +42,17 @@
 office. At this point, the Boston and Austin office admins can customize the
 configurations for each of their bboards, or they can just use the
 defaults.</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-links"></a>Related Links</h3></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></p></li><li><p>Test plan (Not available yet)</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-api"></a>Requirements: Programmer's API</h3></div></div><p>A subsite API is required for programmers to ensure their packages are
-subsite-aware. The following functions should be sufficient for this:</p><p><span class="strong">10.10.0 Package creation</span></p><p>The system must provide an API call to create a package, and it must be
-possible for the context (to which the package belongs) to be specified.</p><p><span class="strong">10.20.0 Package deletion</span></p><p>The system must provide an API call to delete a package and all related
-objects in the subsite's context.</p><p><span class="strong">10.30.0 Object's package information</span></p><p>Given an object ID, the system must provide an API call to determine the
-package (ID) to which the object belongs.</p><p><span class="strong">10.40.0 URL from package</span></p><p>Given a package (ID), the system must provide an API call to return the
-canonical URL for that package.</p><p><span class="strong">10.50.0 Main subsite's package_id</span></p><p>The system must provide an API call to return a package ID corresponding
-to the main subsite's package ID (the degenerate subsite).</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-ui"></a>Requirements: The User Interface</h3></div></div><p><span class="strong">The Programmer's User Interface</span></p><p>There is no programmer's UI, other than the API described above.</p><p><span class="strong">The Administrator's User Interface</span></p><p>The UI for administrators is a set of HTML pages that are used to drive
+subsite-aware. The following functions should be sufficient for this:</p><p><span class="strong"><em>10.10.0 Package creation</em></span></p><p>The system must provide an API call to create a package, and it must be
+possible for the context (to which the package belongs) to be specified.</p><p><span class="strong"><em>10.20.0 Package deletion</em></span></p><p>The system must provide an API call to delete a package and all related
+objects in the subsite's context.</p><p><span class="strong"><em>10.30.0 Object's package information</em></span></p><p>Given an object ID, the system must provide an API call to determine the
+package (ID) to which the object belongs.</p><p><span class="strong"><em>10.40.0 URL from package</em></span></p><p>Given a package (ID), the system must provide an API call to return the
+canonical URL for that package.</p><p><span class="strong"><em>10.50.0 Main subsite's package_id</em></span></p><p>The system must provide an API call to return a package ID corresponding
+to the main subsite's package ID (the degenerate subsite).</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-ui"></a>Requirements: The User Interface</h3></div></div><p><span class="strong"><em>The Programmer's User Interface</em></span></p><p>There is no programmer's UI, other than the API described above.</p><p><span class="strong"><em>The Administrator's User Interface</em></span></p><p>The UI for administrators is a set of HTML pages that are used to drive
 the underlying API for package instance management (i.e. adding, removing, or
 altering packages). It is restricted to administrators of the current subsite
 such that administrators can only manage their own subsites. Of course,
-Site-Wide Administrators can manage all subsites.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">20.10.0 Package creation</span></p><p><span class="strong">20.10.1</span> The administrator should be able to create a
-package and make it available at a URL underneath the subsite.</p></li><li><p><span class="strong">20.20.0 Package deactivation</span></p><p><span class="strong">20.20.1</span> The administrator should be able to deactivate
-any package, causing it to be inaccessible to users.</p><p><span class="strong">20.20.5</span> Deactivating a package makes the package no
+Site-Wide Administrators can manage all subsites.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong"><em>20.10.0 Package creation</em></span></p><p><span class="strong"><em>20.10.1</em></span> The administrator should be able to create a
+package and make it available at a URL underneath the subsite.</p></li><li><p><span class="strong"><em>20.20.0 Package deactivation</em></span></p><p><span class="strong"><em>20.20.1</em></span> The administrator should be able to deactivate
+any package, causing it to be inaccessible to users.</p><p><span class="strong"><em>20.20.5</em></span> Deactivating a package makes the package no
 longer accessible, but it does not remove data created within the context of
-that package.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/18/2000</td><td>Dennis Gregorovic</td></tr><tr><td>0.2</td><td>Edited, reviewed</td><td>08/29/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Groups Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Subsites Design Document</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/subsites-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
+that package.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-requirements-rev-history"></a>Revision History</h3></div></div><div class="informaltable"><table border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><em>Document Revision #</em></span></td><td><span class="strong"><em>Action Taken, Notes</em></span></td><td><span class="strong"><em>When?</em></span></td><td><span class="strong"><em>By Whom?</em></span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/18/2000</td><td>Dennis Gregorovic</td></tr><tr><td>0.2</td><td>Edited, reviewed</td><td>08/29/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-design.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="subsites-design.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS 4 Groups Design&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4 Subsites Design Document</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/subsites-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/subsites.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/subsites.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/subsites.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,22 +1,22 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Writing OpenACS 4.5 Application Pages</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="permissions.html" title="Groups, Context, Permissions"><link rel="next" href="more-developer-info.html" title="Chapter 5. Other Developer Resources"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites"></a>Writing OpenACS 4.5 Application Pages</h2></div></div><div class="authorblurb"><p><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Writing OpenACS 4.6 Application Pages</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="permissions.html" title="Groups, Context, Permissions"><link rel="next" href="submissions.html" title="Contributions"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="submissions.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="subsites"></a>Writing OpenACS 4.6 Application Pages</h2></div></div><div class="authorblurb"><p><p>
 By <a href="http://planitia.org/" target="_top">Rafael H. Schloming</a> 
 and <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a>
 </p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-overview"></a>Overview</h3></div></div><p>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-overview"></a>Overview</h3></div></div><p>
 In this document, we'll examine the user interface pages of the Notes
 application in more detail, covering two separate aspects of page
-development in OpenACS 4.5. First, we'll talk about the code needed to make
+development in OpenACS 4.6. First, we'll talk about the code needed to make
 your pages aware of which application instance they are running
 in. Second, we'll talk about using the form builder to develop
-form-based user interfaces in OpenACS 4.5. While these seem like unrelated
+form-based user interfaces in OpenACS 4.6. While these seem like unrelated
 topics, they both come up in the example page that we are going to
 look at, so it makes sense to address them at the same time.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-instances"></a>Application Instances and Subsites</h3></div></div><p>
-As you will recall from the <a href="packages.html" title="OpenACS 4.5 Packages">packages</a> tutorial, the Request
-Processor (RP) and Package Manager (APM) in OpenACS 4.5 allow site
+As you will recall from the <a href="packages.html" title="OpenACS 4.6 Packages">packages</a> tutorial, the Request
+Processor (RP) and Package Manager (APM) in OpenACS 4.6 allow site
 administrators to define an arbitrary mapping from URLs in the site to
 objects representing content. These objects may represent single
 files, or entire applications. The APM uses the site map to map
@@ -70,7 +70,7 @@
 </p></dd></dl></div><p>
 In the Notes example, we are particularly interested in the
 <tt>package_id</tt> field.  If you study the data model and code,
-you'll see why. As we said before in the <a href="objects.html" title="OpenACS 4.5 Data Models and the Object System">data modeling</a> tutorial, the Notes application points the
+you'll see why. As we said before in the <a href="objects.html" title="OpenACS Data Models and the Object System">data modeling</a> tutorial, the Notes application points the
 <tt>context_id</tt> of each Note object that it creates to the
 package instance that created it. That is, the <tt>context_id</tt>
 corresponds exactly to the <tt>package_id</tt> that comes in from
@@ -257,15 +257,15 @@
 visible to that user. The end result is a site where users can come
 and write notes to themselves.
 </p><p>
-This is a good example of the leverage available in the OpenACS 4.5
+This is a good example of the leverage available in the OpenACS 4.6
 system. The code that we have written for Notes is not at all more
 complex than a similar application without access control or site map
 awareness. By adding a small amount of code, we have taken a small,
 simple, and special purpose application to something that has the
 potential to be a very useful, general-purpose tool, complete with
 multi-user features, access control, and centralized administration.
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="subsites-summary"></a>Summary</h3></div></div><p>
-In OpenACS 4.5, application pages and scripts can be aware of the package
+In OpenACS 4.6, application pages and scripts can be aware of the package
 instance, or subsite in which they are executing. This is a powerful
 general purpose mechanism that can be used to structure web services
 in very flexible ways.
@@ -277,6 +277,4 @@
 </p><p>
 We also saw how to use the templating system's forms API in a simple
 way, to create forms based pages with minimal duplication of code.
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="more-developer-info.html">Next</a></td></tr><tr><td width="40%" align="left">Groups, Context, Permissions&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 5. Other Developer Resources</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="submissions.html">Next</a></td></tr><tr><td width="40%" align="left">Groups, Context, Permissions&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Contributions</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/subsites.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/tcl-doc.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tcl-doc.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/tcl-doc.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/tcl-doc.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,10 +1,10 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Documenting Tcl Files: Page Contracts and Libraries</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 7. Kernel Documentation"><link rel="previous" href="db-api-detailed.html" title="Database Access API"><link rel="next" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 7. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tcl-doc"></a>Documenting Tcl Files: Page Contracts and Libraries</h2></div></div><div class="authorblurb"><p>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Documenting Tcl Files: Page Contracts and Libraries</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 9. Kernel Documentation"><link rel="previous" href="db-api-detailed.html" title="Database Access API"><link rel="next" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 9. Kernel Documentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tcl-doc"></a>Documenting Tcl Files: Page Contracts and Libraries</h2></div></div><div class="authorblurb"><p>
 by <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a> on 3 July 2000 
 <br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl procedures: /packages/acs-kernel/tcl-documentation-procs.tcl</p></li></ul></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="tcl-doc-bigpicture"></a>The Big Picture</h3></div></div><p>In versions of the OpenACS prior to 3.4, <a href="/doc/standards" target="_top">the standard
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl procedures: /packages/acs-kernel/tcl-documentation-procs.tcl</p></li></ul></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="tcl-doc-bigpicture"></a>The Big Picture</h3></div></div><p>In versions of the OpenACS prior to 3.4, <a href="/doc/standards" target="_top">the standard
 place</a> to document Tcl files (both Tcl pages and Tcl library files) was in
 a comment at the top of the file:</p><pre class="programlisting">
 #
@@ -187,6 +187,4 @@
 script was first created.</p></li><li><p>A <span class="strong"><em><tt>@cvs-id</tt></em></span> tag containing the page's CVS
 identification string. Just use <tt>$Id: tcl-documentation.html,v 1.2
 2000/09/19 07:22:35 ron Exp $</tt> when creating the file, and CVS will
-substitute an appropriate string when you check the file in.</p></li></ul></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr><tr><td width="40%" align="left">Database Access API&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Bootstrapping OpenACS</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+substitute an appropriate string when you check the file in.</p></li></ul></div><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr><tr><td width="40%" align="left">Database Access API&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right">&nbsp;Bootstrapping OpenACS</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/tcl-doc.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/templates.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/templates.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/templates.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/templates.html	28 Feb 2003 05:36:05 -0000	1.9
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Using Templates in OpenACS 4.5</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 4. OpenACS Developer's Guide"><link rel="previous" href="db-api.html" title="The OpenACS Database Access API"><link rel="next" href="permissions.html" title="Groups, Context, Permissions"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 4. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="templates"></a>Using Templates in OpenACS 4.5</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="templates-overview"></a>Overview</h3></div></div><p>
-The OpenACS 4.5 Template System (ATS) is designed to allow developers to
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Using Templates in OpenACS 4.6</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="db-api.html" title="The OpenACS Database Access API"><link rel="next" href="permissions.html" title="Groups, Context, Permissions"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="permissions.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="templates"></a>Using Templates in OpenACS 4.6</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:psu@arsdigita.com" target="_top">Pete Su</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="templates-overview"></a>Overview</h3></div></div><p>
+The OpenACS 4.6 Template System (ATS) is designed to allow developers to
 cleanly separate <span class="emphasis"><em>application logic</em></span> from <span class="emphasis"><em>display
 logic</em></span>. The intent is to have all of the logic related to
 manipulating the database and other application state data in one
@@ -16,7 +16,7 @@
 system. One is a plain <tt>.tcl</tt> file and the other is a
 special <tt>.adp</tt> file. The <tt>.tcl</tt> file runs a
 script that sets up a set of name/value bindings that we call <span class="emphasis"><em>data
-sources</em></span>. These <a href="/docs/acs-templating/guide/data.html" target="_top">data sources</a> are generally the results of Tcl and/or database queries
+sources</em></span>. These <a href="/doc/acs-templating/guide/data.html" target="_top">data sources</a> are generally the results of Tcl and/or database queries
 or some combination thereof. The template system automatically makes
 them available to the <tt>.adp</tt> file, or the display part of
 the template, which is written in a combination of HTML, special
@@ -160,14 +160,12 @@
 </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="templates-summary"></a>Summary</h3></div></div><p>
 Templates separate application logic from display logic by requiring
 the developer to write pages in two stages, one file for database
-queries and application logic, and another for display. In OpenACS 4.5, the
+queries and application logic, and another for display. In OpenACS 4.6, the
 logic part of the page is just a <tt>.tcl</tt> that sets up
 <span class="emphasis"><em>data sources</em></span> that are used by the display part of the page. The
 display part of the page is an <tt>.adp</tt> file with some
 special tags and notations for dealing with display logic and
 inserting properties into the text of the page. Later on we'll get
 into templates more deeply, and show how to use database queries as
 data sources.
-</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="db-api.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="permissions.html">Next</a></td></tr><tr><td width="40%" align="left">The OpenACS Database Access API&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Groups, Context, Permissions</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+</p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="db-api.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="permissions.html">Next</a></td></tr><tr><td width="40%" align="left">The OpenACS Database Access API&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;Groups, Context, Permissions</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/templates.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/tutorial.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/tutorial.html	28 Feb 2003 05:36:05 -0000	1.1
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS 4.6 Package Tutorial</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="dev-guide.html" title="Chapter 6. OpenACS Developer's Guide"><link rel="previous" href="developers-overview.html" title="Overview"><link rel="next" href="packages.html" title="OpenACS 4.6 Packages"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="developers-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 6. OpenACS Developer's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="packages.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tutorial"></a>OpenACS 4.6 Package Tutorial</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2845226"></a>Overview</h3></div></div><p>How to create a package.  Includes</p><div class="itemizedlist"><ul type="disc"><li><p>
+        Using the APM
+      </p></li><li><p>
+        Package create scripts, including using acs_objects and
+        standard __new, __delete, and __name stored procedures.
+      </p></li><li><p>
+        Integrating with the content management system
+      </p></li><li><p>
+        Integrating with OpenFTS/Oracle full text search
+      </p></li><li><p>
+        Integrating with notifications
+      </p></li><li><p>
+        Creating .tcl/adp pairs, including ad_page_contract and the
+        template system
+      </p></li><li><p>
+        Integrating with general_comments
+      </p></li><li><p>
+        Ad_form (draw from http://jongriffin.com/static/openacs/ad_form/using-ad-form)
+      </p></li><li><p>
+        Automated testing
+      </p></li><li><p>
+        caching
+      </p></li><li><p>
+        writing procs, ad_proc, tcl namespaces
+      </p></li><li><p>
+        putting all sql code in .xql, including using partialquery
+      </p></li><li><p>
+        using the html/text entry widget
+      </p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developers-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="packages.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS 4.6 Packages</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/tutorial.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/unix-install.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/unix-install.html,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-core-docs/www/unix-install.html	30 Nov 2002 17:16:24 -0000	1.7
+++ openacs-4/packages/acs-core-docs/www/unix-install.html	28 Feb 2003 05:36:05 -0000	1.8
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�2.�Installing on Unix/Linux</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part�Part II.�For OpenACS Admins"><link rel="previous" href="acs-admin.html" title="Part�Part II.�For OpenACS Admins"><link rel="next" href="install-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part II.�For OpenACS Admins</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="unix-install"></a>Chapter�2.�Installing on Unix/Linux</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part�Part II.�For OpenACS Admins&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/unix-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 2. Installing on Unix/Linux</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="next" href="install-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="unix-install"></a>Chapter 2. Installing on Unix/Linux</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-overview.html">Overview</a></dt><dt><a href="operating-system.html">Install an Operating System</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL 7.2.3</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3+ad13</a></dt><dt><a href="openacs.html">Install OpenACS 4.6</a></dt><dt><a href="nextsteps.html">Next Steps</a></dt><dt><a href="credits.html">Credits</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part II. Administrator's Guide&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/unix-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html	28 Feb 2003 05:36:05 -0000	1.1
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Upgrading OpenACS 4.5 to 4.6</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade-detail.html" title="Support for upgrades."><link rel="next" href="acs-dev.html" title="Part III. For OpenACS Developers"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-detail.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="acs-dev.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="upgrade-4.5-to-4.6"></a>Upgrading OpenACS 4.5 to 4.6</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2843430"></a>Checklist</h3></div></div><p>The required platform for OpenACS 4.6 is the same as
+    4.5, with the excepion of OpenFTS.  You now need OpenFTS 0.3.2, not 0.2.
+    OpenACS 4.6 does not support PostGreSQL 7.3.</p><div class="itemizedlist"><ul type="circle"><li style="list-style-type: circle"><p>A computer with OpenACS 4.5.</p></li><li style="list-style-type: circle"><p><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 4.6 tarball</a></p></li><li style="list-style-type: circle"><p>Required for Full Text Search on PostGreSQL: <a href="http://openfts.sourceforge.net" target="_top">OpenFTS 0.3.2</a></p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2845338"></a>Overview</h3></div></div><p>OpenACS consists of files and a database schema.  The files
+    in the OpenACS 4.6 tarball include database upgrade scripts.  To start the
+    upgrade, replace your existing files with the new files and
+    then restart the server.  Then, browse to the APM, which will
+    detect the new packages and offer to run the appropriate database upgrade
+    scripts.  After restarting the server again, the upgrade is
+    complete.</p><div class="figure"><p class="title"><b>Figure 5.1. Assumptions in this section</b></p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>name of OpenACS user</td><td><span class="replaceable">nsadmin</span></td></tr><tr><td>OpenACS server name</td><td><span class="replaceable">openacs-dev</span></td></tr><tr><td>Root of OpenACS file tree</td><td><span class="replaceable">/web/openacs-dev</span></td></tr><tr><td>Database backup directory</td><td><span class="replaceable">/backup/openacs/</span></td></tr></tbody></table></div></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="id2845442"></a><a class="indexterm" name="id2845445"></a>Upgrading on Linux/Unix</h3></div></div><div class="orderedlist"><ol type="1"><li><p><b>Make a Backup.�</b>Back up the database and file system.</p><div class="itemizedlist"><ul type="disc"><li><p><b>PostGreSQL.�</b>Create a backup file and verify that it was created and has a reasonable size (several megabytes).</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>pg_dump -f /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp <span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>ls -al /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp </tt></b>
+-rw-rw-r--    1 nsadmin  nsadmin   4005995 Feb 21 18:28 /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp
+[nsadmin@localhost aolserver]$ <b><tt>exit</tt></b>
+[root@localhost root]#
+<div class="action">su - nsadmin
+pg_dump -f /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp <span class="replaceable">openacs-dev</span>
+ls -al /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp
+exit</div></pre></li><li><p><b>Oracle - INCOMPLETE.�</b></p></li><li><p><b>File tree with CVS.�</b>If you are already using CVS, you probably don't
+              need to do anything to back up your data.  Just make
+              sure that your current work is checked into the system.
+              You can then roll back based on date - just note the
+              current system time, down to the minute.  For maximum
+              safety, you can apply a tag to your current
+              files.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>cd /web/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost openacs-dev]$ <b><tt>cvs commit -m &quot;last-minute commits before upgrade to 4.6&quot;</tt></b>
+cvs commit: Examining .
+cvs commit: Examining bin
+(many lines omitted)
+[nsadmin@localhost openacs-dev]$ <b><tt>cvs tag before_upgrade_to_4_6</tt></b>
+cvs server: Tagging bin
+T bin/acs-4-0-publish.sh
+T bin/ad-context-server.pl
+(many lines omitted)
+[nsadmin@localhost openacs-dev]$ <b><tt>exit</tt></b>
+[root@localhost root]# 
+<div class="action">su - nsadmin
+cd /web/<span class="replaceable">openacs-dev</span>
+cvs commit -m &quot;last-minute commits before upgrade to 4.6&quot;
+cvs tag before_upgrade_to_4_6
+exit</div></pre></li><li><p><b>File tree without CVS.�</b>If you don't use cvs, you may want to back up the working directory.  The simplest way is just to copy it.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>cp -r /web/<span class="replaceable">openacs-dev</span> /web/<span class="replaceable">openacs-dev</span>-before-upgrade-to-4.6</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>exit</tt></b>
+[root@localhost root]# 
+<div class="action">su - nsadmin
+cp -r /web/<span class="replaceable">openacs-dev</span> /web/<span class="replaceable">openacs-dev</span>-before-upgrade-to-4.6
+exit</div></pre></li></ul></div></li><li><p><b>OPTIONAL: Upgrade OpenFTS.�</b>OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine.  If you have OpenFTS 0.2, you'll need to upgrade to to OpenFTS 0.3.2.  This is backwards-compatible -
+        completing this step will not break a working OpenFTS Engine from 4.5.
+</p><div class="orderedlist"><ol type="a"><li><p>Uninstall the old OpenFTS Engine</p><div class="orderedlist"><ol type="i"><li><p><span class="bold"><b>Browse to <tt>http://<span class="replaceable">yourserver</span>/openfts</tt>.</b></span>
+</p></li><li><p><span class="bold"><b>Click <tt><span class="guilabel">Administration</span></tt>.</b></span></p></li><li><p><span class="bold"><b>Click <tt><span class="guibutton">Drop OpenFTS Engine</span></tt></b></span></p></li></ol></div></li><li><p>Build and install the new OpenFTS driver and supporting tcl procedures.  (This section of shell code is not fully documented; please exercise care.)</p><pre class="screen">cd /usr/local/src/
+tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
+chown -R root.root Search-OpenFTS-tcl-0.3.2/
+cd Search-OpenFTS-tcl-0.3.2/
+./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/
+cd aolserver/
+make
+</pre><p>
+Back up the old fts driver as a precaution and install the newly
+compiled one</p><pre class="screen">mv /usr/local/aolserver/bin/nsfts.so /usr/local/aolserver/bin/nsfts-0.2.so 
+cp nsfts.so /usr/local/aolserver/bin
+</pre><p>Build and install the postgres code</p><pre class="screen">cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
+cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
+make
+su - postgres
+cd tsearch/
+make
+make install
+exit</pre><p>In order for the OpenACS 4.6 OpenFTS Engine to use the OpenFTS 0.3.2 driver, we need some commands added to the database.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost dev]$ <b><tt>psql <span class="replaceable">openacs-dev</span> -f /usr/local/pgsql/share/contrib/openfts.sql</tt></b>
+CREATE
+CREATE
+[nsadmin@localhost dev]$ <b><tt>psql <span class="replaceable">openacs-dev</span> -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql</tt></b>
+BEGIN
+CREATE
+(~30 more lines)
+[nsadmin@localhost dev]$ <b><tt>exit</tt></b>
+[root@localhost root]# 
+<div class="action">su - nsadmin
+psql <span class="replaceable">openacs-dev</span> -f /usr/local/pgsql/share/contrib/openfts.sql
+psql <span class="replaceable">openacs-dev</span> -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
+exit</div></pre></li></ol></div></li><li><p><b>Stop the server.�</b></p><pre class="screen">[root@localhost root]# <b><tt>svc -d /service/<span class="replaceable">openacs-dev</span></tt></b></pre></li><li><p><b>Upgrade the file tree.�</b>If you are using CVS, you will unpack the OpenACS 4.6 tarball into a working directory and then import that directory into cvs.  If you have changed files in the core packages, cvs will attempt to merge your changes.  You may have to manually merge some conflicts.  When that's finished, you can update your normal development checkout directory and the new files will appear.  If you aren't using CVS, you can unpack the tarball on top of your existing tree, but any customizations you've made to the kernel or core packages will be erased.</p><div class="itemizedlist"><ul type="disc"><li><p><b>Upgrading files without CVS.�</b>Unpack the tarball into a new directory and copy its contents on top of your working directory.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>cd /web</tt></b>
+[nsadmin@localhost web]$ <b><tt>tar xzf /tmp/openacs-4-6.tgz</tt></b>
+[nsadmin@localhost web]$ <b><tt>cp -r openacs-4-6/* openacs-4</tt></b>
+[nsadmin@localhost openacs-upgrade]$ <b><tt>exit</tt></b>
+[root@localhost root]#
+<div class="action">su - nsadmin
+cd /web
+tar xzf /tmp/openacs-4-6.tgz
+cp -r openacs-4-6/* openacs-4
+exit</div></pre></li><li><p><b>Upgrading files with CVS.�</b></p><div class="orderedlist"><ol type="a"><li><p>Unpack the new files into a working directory.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>cd /tmp</tt></b>
+[nsadmin@localhost tmp]$ <b><tt>tar xzv openacs-4-6.tgz</tt></b>
+[nsadmin@localhost tmp]$ <b><tt>cd openacs-4.6</tt></b>
+</pre><p>Import the new files into your cvs repository; where they match existing files, they will become the new version of the file.</p><pre class="screen">[nsadmin@localhost openacs-4.6]$ <b><tt> cvs import -m &quot;upgrade to OpenACS 4.6&quot; openacs 
+OpenACS openacs-4-6</tt></b></pre><p>Create a new directory as temporary working space to reconcile conflicts between the new files and your current work.  The example uses the cvs keyword yesterday, making the assumption that you haven't checked in new code to your local tree in the last day.</p><pre class="screen">[nsadmin@localhost openacs-4.6]$ <b><tt> cd /web</tt></b>
+[nsadmin@localhost tmp]$ <b><tt>mkdir openacs-upgrade</tt></b>
+[nsadmin@localhost tmp]$ <b><tt>cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs &lt; cvs.txt 2&lt;&amp;1</tt></b>
+(CVS feedback here)
+<div class="action">su - nsadmin
+cd /tmp
+tar xzv openacs-4-6.tgz
+cd openacs-4.6
+cvs import -m &quot;upgrade to OpenACS 4.6&quot; openacs OpenACS openacs-4-6
+cd /tmp
+mkdir openacs-upgrade
+cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs &lt; cvs.txt 2&lt;&amp;1
+</div></pre></li><li><p>The file /tmp/openacs-upgrade/cvs.txt contains the results of the upgrade.  If you changed files that are part of the OpenACS tarball and those changes conflict with the 4.5-4.6 upgrade, you'll have to manually reconcile them.  Use the emacs command <tt>M-x sort-lines</tt> and then, for each line that starts with a C, open that file and manually resolve the conflict by deleting the excess lines.  When you're finished, or if there aren't any conflicts, save and exit.</p></li><li><p>Once you've fixed any conflicts, commit the new code
+        to your local tree.  </p><pre class="screen">[nsadmin@localhost tmp]$ <b><tt>cd openacs-upgrade</tt></b>
+[nsadmin@localhost openacs-upgrade]$ <b><tt>cvs commit -m &quot;Upgraded to 4.6&quot;</tt></b>
+<div class="action">cd openacs-upgrade
+cvs commit -m &quot;Upgraded to 4.6&quot;</div></pre></li><li><p>Update your working tree with the new
+                files.  The CVS flags ensure that new directories are created and pruned directories destroyed.</p><pre class="screen">
+[nsadmin@localhost openacs-upgrade]$ <b><tt>cd /web/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost openacs-dev]$ <b><tt>cvs up -Pd</tt></b>
+(CVS feedback)
+[nsadmin@localhost openacs-dev]$ <b><tt>exit</tt></b>
+[root@localhost root]#
+<div class="action">cd /web/<span class="replaceable">openacs-dev</span>
+cvs up -Pd
+exit</div></pre></li></ol></div></li></ul></div></li><li><p><b>Start the server.�</b></p><pre class="screen">[root@localhost root]# <b><tt>svc -u /service/<span class="replaceable">openacs-dev</span></tt></b></pre></li><li><p><b>Use APM to upgrade the database.�</b></p><div class="orderedlist"><ol type="a"><li><p>Browse to the package manager, <tt>http://<span class="replaceable">yourserver</span>/acs-admin/apm</tt>.</p></li><li><p>Click <tt><span class="guilabel">Install packages.</span></tt></p></li><li><p>Select the packages you want to install.  This should be everything that says <tt>upgrade</tt>, plus any new packages you want.</p></li><li><p>On the next screen, click <tt><span class="guibutton">Install Packages</span></tt></p></li><li><p>When prompted, restart the server:</p><pre class="screen">[root@localhost root]# <b><tt>restart-aolserver <span class="replaceable">openacs-dev</span></tt></b></pre></li><li><p>Wait a minute, then browse to the package manager, <tt>http://<span class="replaceable">yourserver</span>/acs-admin/apm</tt>.</p></li><li><p>Check that the kernel upgrade worked by clicking <tt><span class="guilabel">All</span></tt> and making sure that <tt>acs-kernel</tt> version is 4.6.1.</p></li></ol></div></li><li><p><b>OPTIONAL: Install the new OpenFTS Engine.�</b>If you want to upgrade the OpenFTS Engine, do these steps.  (You
+          must have already upgraded the OpenFTS driver to
+          0.3.2.</p><div class="orderedlist"><ol type="a"><li><p>Browse to <tt>http://<span class="replaceable">yourserver</span>/admin/site-map</tt></p></li><li><p>On the <tt>openfts</tt> line, click on <tt><span class="guilabel">set parameters</span></tt>.</p></li><li><p>Change the value of <tt>openfts_tcl_src_path</tt> from <tt>/usr/local/src/Search-OpenFTS-tcl-0.2/</tt> to <tt>/usr/local/src/Search-OpenFTS-tcl-0.3.2/</tt></p></li><li><p>Click <tt><span class="guibutton">Set Parameters</span></tt></p></li><li><pre class="screen">[root@localhost root]# restart-aolserver <span class="replaceable">openacs-dev</span></pre></li><li><p>Browse to <tt>http://<span class="replaceable">yourserver</span>/openfts</tt></p></li><li><p><span class="bold"><b>Click <tt><span class="guilabel">Administration</span></tt>.</b></span></p></li><li><p><span class="bold"><b>Click <tt><span class="guibutton">Initialize OpenFTS Engine</span></tt></b></span></p></li></ol></div></li><li><p><b>Rollback.�</b>If anything goes wrong, roll back the database and try
+        again.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>svc -d /service/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>dropdb <span class="replaceable">openacs-dev</span></tt></b>
+DROP DATABASE
+[nsadmin@localhost aolserver]$ <b><tt>createdb <span class="replaceable">openacs-dev</span></tt></b>
+CREATE DATABASE
+[nsadmin@localhost aolserver]$ <b><tt>psql -f /web/<span class="replaceable">openacs-dev</span>/packages/acs-kernel/sql/postgresql/postgresql.sql <span class="replaceable">openacs-dev</span></tt></b></pre><p>PostGreSQL's dump command does not guarantee to back up all of the
+procedures and things in the right order for them to be reassembled.
+In practice, OpenACS users have found that rebuilding some of the
+common procedures before running the restore usually addresses this.  You will see a number of &quot;already exists&quot; errors when you run the database restore; these can be ignored.  This <font color="red">&lt;a&gt;forum thread&lt;/a&gt;</font> has more information.</p><pre class="screen">[nsadmin@localhost aolserver]$ <b><tt>psql <span class="replaceable">openacs-dev</span> &lt; /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp</tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>svc -u /service/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>exit</tt></b></pre><p>At this point, you can try go back to the APM and try
+to upgrade the database again.  Alternately, if you want to roll back
+all the way and stop the upgrade, you need to roll back the file
+system as well.</p><pre class="screen">[root@localhost root]# <b><tt>su - nsadmin</tt></b>
+[nsadmin@localhost aolserver]$<b><tt> mv /web/<span class="replaceable">openacs-dev</span> /web/openacs-failed-upgrade</tt></b>
+[nsadmin@localhost aolserver]$<b><tt> mv /web/<span class="replaceable">openacs-dev</span>-before-upgrade-to-4.6 /web/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>svc -u /web/<span class="replaceable">openacs-dev</span></tt></b>
+[nsadmin@localhost aolserver]$ <b><tt>exit</tt></b>
+[root@localhost root]#</pre><pre class="screen">All commands for this section:
+<div class="action">su - nsadmin
+svc -d /service/<span class="replaceable">openacs-dev</span>
+dropdb <span class="replaceable">openacs-dev</span>
+createdb <span class="replaceable">openacs-dev</span>
+psql -f /web/<span class="replaceable">openacs-dev</span>/packages/acs-kernel/sql/postgresql/postgresql.sql <span class="replaceable">openacs-dev</span>
+psql <span class="replaceable">openacs-dev</span> &lt; /backup/openacs/openacs_dev_before_upgrade_to_4.6.dmp
+
+svc -u /service/<span class="replaceable">openacs-dev</span>
+cd /web/<span class="replaceable">openacs-dev</span>
+cvs up -r current
+exit</div></pre></li></ol></div></div><p><div class="cvstag">($Id: upgrade-4.5-to-4.6.html,v 1.1 2003/02/28 05:36:05 joela Exp $)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-detail.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="acs-dev.html">Next</a></td></tr><tr><td width="40%" align="left">Support for upgrades.&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right">&nbsp;Part III. For OpenACS Developers</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/upgrade-4.5-to-4.6.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/upgrade-detail.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/upgrade-detail.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/upgrade-detail.html	28 Feb 2003 05:36:05 -0000	1.1
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Support for upgrades.</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="next" href="upgrade-4.5-to-4.6.html" title="Upgrading OpenACS 4.5 to 4.6"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="upgrade-4.5-to-4.6.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="upgrade-detail"></a>Support for upgrades.</h2></div></div><div class="authorblurb"><p>
+    by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p>Starting with Version 4.5, all OpenACS core packages support
+    automatic upgrade.  That means that, if you have OpenACS 4.5
+    or better, you should always be able to upgrade all of your core
+    packages automatically.  If you haven't changed anything, no
+    manual intervention should be required.  If you are running
+    OpenACS prior to 4.5, upgrading will require manual effort.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="upgrade-4.5-to-4.6.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 5. Upgrading&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right">&nbsp;Upgrading OpenACS 4.5 to 4.6</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/upgrade-detail.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/upgrade.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-core-docs/www/upgrade.html	28 Feb 2003 05:36:05 -0000	1.1
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 5. Upgrading</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X"><link rel="next" href="upgrade-detail.html" title="Support for upgrades."><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="mac-installation.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="upgrade-detail.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="upgrade"></a>Chapter 5. Upgrading</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading OpenACS 4.5 to 4.6</a></dt></dl></div><p>How to upgrade an installation of OpenACS to a new version.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="mac-installation.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="upgrade-detail.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Installation Guide for Mac OS X&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;Support for upgrades.</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/upgrade.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/win-install.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/win-install.html,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/acs-core-docs/www/win-install.html	30 Nov 2002 17:16:24 -0000	1.9
+++ openacs-4/packages/acs-core-docs/www/win-install.html	28 Feb 2003 05:36:05 -0000	1.10
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�3.�Installing on Windows</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part�Part II.�For OpenACS Admins"><link rel="previous" href="credits.html" title="Credits"><link rel="next" href="win-overview.html" title="Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="credits.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part�Part II.�For OpenACS Admins</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="win-overview.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="win-install"></a>Chapter�3.�Installing on Windows</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="win-overview.html">Overview</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="credits.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="win-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Credits&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;Overview</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/win-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 3. Installing on Windows</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="credits.html" title="Credits"><link rel="next" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="credits.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="win2k-installation.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="win-install"></a>Chapter 3. Installing on Windows</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="credits.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="win2k-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Credits&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right">&nbsp;OpenACS Installation Guide for Windows2000</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/win-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/acs-core-docs/www/win2k-installation.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/win2k-installation.html,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-core-docs/www/win2k-installation.html	10 Aug 2002 20:07:21 -0000	1.8
+++ openacs-4/packages/acs-core-docs/www/win2k-installation.html	28 Feb 2003 05:36:08 -0000	1.9
@@ -1,13 +1,13 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Installation Guide for Windows2000</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="win-install.html" title="Chapter 3. Installing on Windows"><link rel="previous" href="win-overview.html" title="Overview"><link rel="next" href="acs-dev.html" title="Part Part III. For OpenACS Developers"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="win-overview.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 3. Installing on Windows</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="acs-dev.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="win2k-installation"></a>OpenACS Installation Guide for Windows2000</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:mburke@arsdigita.com" target="_top">Matthew Burke</a> and <a href="mailto:curtisg@arsdigita.com" target="_top">Curtis Galloway</a></p><br>
-		  OpenACS docs are written by the named authors, but may be edited
-		  by OpenACS documentation staff.
-		</p></div><p><span class="strong"><em>NOTE:</em></span> These instructions were
-	valid for ACS v4, but have not been tested with OpenACS. Currently
-	(8/2002), the best option to get OpenACS 4.5 running on Windows
-	is to use <a href="http://vmware.com" target="_top">VMware</a> and John
-	Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM
-	distribution</a>
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>OpenACS Installation Guide for Windows2000</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="OpenACS Documentation"><link rel="up" href="win-install.html" title="Chapter 3. Installing on Windows"><link rel="previous" href="win-install.html" title="Chapter 3. Installing on Windows"><link rel="next" href="mac-install.html" title="Chapter 4. Installing on a Macintosh"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="win-install.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 3. Installing on Windows</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="mac-install.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="win2k-installation"></a>OpenACS Installation Guide for Windows2000</h2></div></div><div class="authorblurb"><p><p>By <a href="mailto:mburke@arsdigita.com" target="_top">Matthew Burke</a> and <a href="mailto:curtisg@arsdigita.com" target="_top">Curtis Galloway</a></p><br>
+          OpenACS docs are written by the named authors, but may be edited
+          by OpenACS documentation staff.
+        </p></div><p><span class="strong"><em>NOTE:</em></span> These instructions were
+    valid for ACS v4, but have not been tested with OpenACS. Currently
+    (8/2002), the best option to get OpenACS 4.6 running on Windows
+    is to use <a href="http://vmware.com" target="_top">VMware</a> and John
+    Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM
+    distribution</a>
   </p><div class="itemizedlist"><ul type="disc"><li><p>Source: <a href="http://software.arsdigita.com/dist" target="_top">http://software.arsdigita.com/dist</a></p></li><li><p>Bug reports: <a href="mailto:acs-bugs@arsdigita.com" target="_top">acs-bugs@arsdigita.com</a></p></li><li><p>Philosophy: <a href="http://photo.net/wtr/thebook/community" target="_top">http://photo.net/wtr/thebook/community</a>
       (the community chapter of <span class="emphasis"><em>Philip and Alex's Guide to Web
       Publishing</em></span>)</p></li><li><p>Technical background: <a href="http://photo.net/wtr/thebook/" target="_top">http://photo.net/wtr/thebook/</a></p></li></ul></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="win2kinstall-overview"></a>Overview</h3></div></div><p>
@@ -254,6 +254,4 @@
 </pre><p> In the services control panel you should see two services:
     <tt>AOLserver-lintcollectors</tt> and
     <tt>AOLserver-iguanasdirect</tt>. 
-    </p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="win-overview.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="acs-dev.html">Next</a></td></tr><tr><td width="40%" align="left">Overview&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="win-install.html">Up</a></td><td width="40%" align="right">&nbsp;Part Part III. For OpenACS Developers</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">
-			vinod@kurup.com
-		  </a></address></div></body></html>
+    </p><p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="win-install.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="mac-install.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 3. Installing on Windows&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="win-install.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 4. Installing on a Macintosh</td></tr></table><hr><address>rmello at fslc.usu.edu</address><address><a href="mailto:vinod@kurup.com">vinod@kurup.com</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs-4/win2k-installation.html#comments">View comments on this page at openacs.org</a></center></body></html>