Showing 1 - 10 of 771 Postings (
summary)
Created by Benjamin Brink, last modified by Gustaf Neumann 21 Mar 2013, at 08:07 AM
SPREADSHEET
For the latest updates to this readme file, see: http://openacs.org/xowiki/spreadsheet
The lastest version of the code is available at the development site: http://github.com/tekbasse/spreadsheet
introduction
Spreadsheet provides procedures for building and using tables and spreadsheets in OpenACS. It is an OpenACS package that allows convenient building and interpreting of web-based sheets via tcl in a web page.
Standard spreadsheets are not yet supported.
license
Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 usa email: kappa@dekka.com
Spreadsheet is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at spreadsheet/LICENSE.html
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
features
Integrates well with Q-Forms or any web-based form processing.
Tables can be represented as text, where each line is a row, and each cell is separated by a common or specified delimiter.
Can manipulate Tcl list of lists for easy generation of reports.
There are procedures for importing, rotating, and exporting tables in various formats.
Created by Benjamin Brink, last modified by Gustaf Neumann 21 Mar 2013, at 08:06 AM
Q-Wiki
For the latest updates to this readme file, see: http://openacs.org/xowiki/q-wiki
The lastest version of the code is available at the development site: http://github.com/tekbasse/q-wiki
introduction
Q-Wiki is an OpenACS wiki using a templating system. It allows tcl procedures to be used in a web-based publishing environment. It is not tied to vertical web applications, such as OpenACS ecommerce package.
Q-Wiki is derived from OpenACS' ecommerce package. Administrators have voiced interest in having some kind of strictly filtered ACS developer support dynamics for user content.
license
Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 email: kappa@dekka.com
Q-Wiki is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at q-wiki/www/doc/LICENSE.html
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
features
Pages automatically have revisioning.
Pages must be trashed before being deleted. Trashed pages can be untrashed.
Trashed pages are not published.
Users with create permission can also trash their own creations.
No UI javascript is used, so technologies with limited UI can use it.
Tcl procedures pass through two filters: 1. a list of glob expressions stating which procedures are allowed to be used 2. a list of specifically banned procedures
A package parameter can switch the TCL/ADP rendering of content on or off.
This web-app is easily modifiable for custom applications. It consists of a single q-wiki tcl/adp page pair and an extra unused "flags" field.
This app is ready for web-based publishing SEO optimization. Besides content, pages include comments, keywords, and page description fields.
Created by Benjamin Brink, last modified by Gustaf Neumann 21 Mar 2013, at 08:06 AM
Q-Forms
For the latest updates to this readme file, see: http://openacs.org/xowiki/q-forms
The lastest version of the code is available at the development site: http://github.com/tekbasse/q-forms
introduction
Q-Forms provides procedures for building forms dynamically in OpenACS. It is an OpenACS service package that allows convenient building and interpreting of web-based forms via tcl in a web page.
(jiml) isn't there already a form builder? via tcl, and integrated well with templating system. Does q-forms use the existing form builder? If not, then we have two incompatible versions of this functionality.
jiml, current form building techniques can be "tricky"[1],
whereas Q-Forms has an intuitive interface. You say "Incompatible"? Use
one or the other form building process. With Q-wiki, there are now at
least four different wiki-like packages for OpenACS. They work with each
other within the templating system. Why would form building resources be expected to share package resources? (tekbasse)
Q-Forms procedures begin with qf_* and parallel form html tags with many automatic defaults that remove the tedious nature of building forms via html or an alternate form building context, such as OpenACS form builder, ad_form or acs-templating.
(jiml) could someone provide an example showing how ad_form or the original template::form and friends are unsuitable?
A lot of people use these things including myself. I read the existing documentation, and then understood how to do it.
^ Good for you, jiml. You don't have to use Q-Forms. (tekbasse)
In particular, ad_form offers easy-to-build forms which provide create and edit functionality as it has parameters that accept sql queries which create, access and store as well as provide conversion where necessary to acs_objects whose type match the form. ( Really easy? see: http://openacs.org/wiki/ad_form -tekbasse) But I digress:
What's wrong with the existing implementation and what has you wanting to take the extreme action of adding an incompatible replacement? How can I support you in creating something that -is- compatible? (jiml)
jiml, Once you learned how to create a form in html, how much time did you spend trying to create a form with ad_form or formbuilder? If it's more than 10 minutes, Q-Forms would be faster and has more flexibility without having to learn more to tweak a special context.
The simplicity of form creation in the context of basic tcl programming techniques makes the learning curve for Q-Forms very low compared to ad_form and formbuilder. (tekbasse)
jiml, you ask "..what has you wanting to take the extreme action of adding an incompatible replacement? " I am writing web apps that regularly include spreadsheets, tables, and other kinds of data which require any form building API to be flexible while retaining a minimum amount of overhead and meeting requirements expected of ecommerce transactions. Can you show me in ad_form API how to pass a table with a flexible size and that allows data to include negative and decimal numbers (or user_names starting with a dash..) and also dates/time values and where each cell format can be customized? ;-) -tekbasse
license
Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 usa email: kappa@dekka.com
Q-Forms is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at q-forms/LICENSE.html
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
features
Low learning-curve. Uses tcl context. Procedures match tags. List friendly.
Built in API defaults. Takes less keystrokes to build a form than typing manually.
Can built multiple forms concurently using Tcl file terminology.
No limitations to building dynamic forms with specialized inputs.
Form values are retrieved as an array named by the programmer.
Form values are automatically quoted, a requirement of secure input handling.
Multiple values of same key can be combined as a list (instead of producing a form post error).
html can be inserted in any form at any point during the build.
No UI javascript is used. Technologies with limited UI or cpu power can use it.
Integrates with acs-templating features.
Created by OpenACS community, last modified by Gustaf Neumann 06 Mar 2013, at 08:47 PM
OpenACS 5.7.0 .LRN 2.5.0 and the main XOTcl components (such as XoWiki) are available as a native Win32 and Win64 applications for Windows XP, Vista, Windows 7, Windows 8, Windows Server 2003, 2008. No extra software (such as Cygwin or VMware) is needed to use this distribution.
The current release is Windows-OpenACS version 1.23 (released August 2011).
For more details, http://www.spazioit.com/pages_en/sol_inf_en/windows-openacs_en/ .
Created by OpenACS community and package contributors, last modified by Torben Brosten 06 Mar 2013, at 12:10 AM
Introduction
This is an initiative to upgrade and round-out en:ecommerce and related packages to benefit from current OpenACS programming standards and practices. Project is currently led by Benjamin Brink in the open and cooperative spirit of the OpenACS community. The development is occuring via https://github.com/openacs-ecg2
All are welcome to participate.
page information
- Last modified: 2013-03-06 00:10:51.888117+01
Created by OpenACS community, last modified by Prem Thomas 18 Jan 2013, at 09:54 PM
emacs integrated development environment for OpenACS
emacs documentation: http://www.gnu.org/software/emacs/manual/html_node/
Emacs uses major and minor modes that provide a UI context for editing various file types. Here are some useful ones for working with OpenACS:
CVS Mode Emacs with OpenACS
I use M-x cvs-examine to update and check in code when I am working with OpenACS. One thing that is a pain with CVS is that cvs diff does not tell you what you are going to get if you update, it only tells you what is changed in your local copy.
You can use M-x cvs-examine and then type "d e" next to any of the files in your checkout in the *cvs* buffer to open ediff mode and then interactively merge what's in CVS with your local changes. In ediff mode you use n/p to got to the next/previous difference. You can copy changes from the CVS buffer to your local copy using a/b to copy the the buffer marked A to B or B to A. Type ? on the ediff window to get a list of other commands.
OpenACS Mode for Emacs
See historical page describing oacs.el http://web.archive.org/web/20040621200046/www.thecodemill.biz/services/oacs/
Download: oacs.el.tar updated 2006-08-15 . The lastest version includes nXML mode support in addition to PSGML support. There are good installation instructions in the INSTALL.txt file. A quick install guide for Debian
sudo su -
cd /usr/share/emacs/site-lisp
wget http://www.emacswiki.org/elisp/color-occur.el
wget http://openacs.org/storage/view/xowiki-resources%5C/oacs.el.tar
tar xf oacs.el.tar
apt-get install psgml mmm-mode
# Alternatively compile manually
wget http://www.lysator.liu.se/~lenst/about_psgml/psgml-1.2.5.tar.gz
tar xfz psgml-1.2.5.tar.gz
cd psgml-1.2.5
./configure
make install
cd ..
wget http://switch.dl.sourceforge.net/sourceforge/mmm-mode/mmm-mode-0.4.8.tar.gz
tar xfz mmm-mode-0.4.8.tar.gz
cd mmm-mode-0.4.8
./configure
make install
After this login as the user who is doing the development and edit you .emacs file.
(add-to-list 'load-path "/usr/share/emacs/site-lisp/oacs")
(require 'oacs)
(setq user-full-name "<yourname>")
(setq user-mail-address "<your email>")
(add-to-list 'auto-mode-alist '("\\.vuh" . tcl-mode))
(add-to-list 'auto-mode-alist '("\\.adp" . html-mode))
For recent Emacs versions (> 2008), modify oacs-nxml.el in the downloaded tarball:
line 30: (load "nxml-mode.el") instead of (load "rng-auto.el")
See http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg00947.html
Also, you may need to modify adp.rnc to the correct path to the xhtml.rnc schema on your installation. On OS X, for example, line 5 should read:
include "/Applications/Emacs.app/Contents/Resources/etc/schema/xhtml.rnc"
The following was written by Bart the author of oacs.el
OpenACS lacked a good Integrated Development Environment and as I use Emacs for almost everything it was only natural to fill the void. The Emacs OACS module is an extension to GNU Emacs, the extensible, customizable, self-documenting real-time display editor.
Development status
Emacs OACS's development is driven by the needs I encounter in my OpenACS projects. Development takes place in my spare time. At this stage the code is the documentation. I lack the time to write a proper article. However, as Emacs OACS addresses the issues described in articles XQL Document Type Definition and Replacing SQL bind vars in Emacs some background information can be found in those articles.
Forum thread: Beta Emacs OACS module available
Useful commands
Formating TCL
- M-o ft to re-format Tcl code. See code for details.
- M-o fh to reformat Html or Adp code.
- M-o fs to reformat Sql code.
- M-x oacs-format-separate-tags to separate adjacent tags. E.g. <tr><td>
- M-x oacs-format-includes to place all include attribubtes on a separate line.
Code navigation
- M-o oo to search for any custom regular expression.
- M-o on to search the log for Notice oacs-dbg messages. That is a Notice level message created with the macro 'oddbg'.
- M-o od to search the log for Debug oacs-dbg messages.
- M-o oe to search the log for Error oacs-dbg messages. Etc for all other ns_log levels.
- M-o op to browse Tcl libraries for procedure definitions. This is by far my favorite way of navigating a library!
- M-o fp (find-file-at-point) to NSD error log mode.
- M-o rl to revert the logfile
- M-o ml to to open an error log file and monitor the changes to the log.
Editing docbook xml
editing via Muse mode
editing via nXML mode
See http://openacs.org/doc/nxml-mode.html
psgml mode
See:
Developing with emacs
To make emacs display .vuh files similar to .tcl files, add to .emacs file:
(add-to-list 'auto-mode-alist '("\\.vuh" . tcl-mode))
To make emacs display .adp files similar to .html files, add to .emacs file:
(add-to-list 'auto-mode-alist '("\\.adp" . html-mode))
Common command shortcuts
Minor Modes
M-x global-font-lock-mode highlights syntax using colors
M-x transient-mark-mode shows a highlighted text region
M-x show-paren-mode shows matching parentheses (and when the do not)
Move, Search and Replace
M-x goto-line go to a specific line in a file
M-x goto-char go to a specific character number in a file
M-C-f search forward for matching brace
M-C-b search backward for matching brace
M-x replace-regexp search/replace using regular expressions
M-x query-replace-regexp query/search/replace using regular expressions
note \\( and \\) for start and end subgroups
M-x grep grep creates new buffer with results
for fast loading/editing search hits
Useful "sleepers" (not found in many shortcut sheets)
fg<cr> restart a suspended emacs session from commandline
C-q <key press> add a key without emacs interpreting the key binding
You can configure emacs to create 4 spaces when you press the tab key--important for meeting coding standards. Add this to your .emacs file:
(setq-default tab-width 4 indent-tabs-mode nil)
other useful quicksheets
Created by Alvaro Rodriguez, last modified by josue ruiz 21 Dec 2012, at 12:22 AM
Learning-Content Tool
Description
User specs
The Learning-Content Package is a simple content creation tool based on xowiki. This package lets you easily create, edit and organize content for a course, taking advantage of xowiki's easy inline edition and revision history. The package provides a generic template generated automatically with the pages and the categories.
During the edition of the pages there is an interface that allows the addition of terms and definitions to a glossary, linking the words from the content. It comes with an interface that allows linking of certain resources from the course, such as linking evaluations, assessments and forums to the content pages.
There is a new admin section for the content which includes a page to manage the categories in the content tree, an option to show/hide a specific title for the course on every page, user tracking by page or user, and one-click automatic copy of the content to other classes/communities.
Development History
2007
The Content package was first developed by Byron Linares (Galileo University) as a portlet using xowiki as the main package, adding all the files and modifications needed in xowiki. The automatic template included was specific for the Galileo's theme.
Works on:
postgresql 8.2.x
xowiki 0.47
xotcl 0.47
Required:
ltree module for postgresql2008-2009
The package was improved by Alvaro Rodriguez and Viaro Networks team to make it a real package as an extension of xowiki, it was updated to work with the latest version of xotcl-core, xowiki from the oacs-5-4 branch. It was completely ported to Oracle and it no longer requires the ltree module for postgresql.
How to Install
Works on:
Postgresql 8.2.x +
Oracle 9i +
Requires:
xowiki 0.106.1
xotcl-core 0.100
views 0.1d3
ajaxhelper 0.87d (needs upgrade to YUI 2.5.2+)
Installation process:
- Get the following packages from branch oacs-5-4: dotlrn-all, xowiki, xotcl-core, views
- Get the following packages from HEAD: learning-content, learning-content-portlet, dotlrn-learning-content, ajaxhelper
- Move to the content package folder and run the script.sh, this will patch all the files from other packages to integrate them with content new features
- To run the script:
- /$path_to_content_patch/$ sh script.sh
- Install dotlrn, then install xowiki, xotcl-core, learn-content, learn-content-portlet, dotlrn-learn-content, ajaxhelper and views
- Restart the server
- Activate the applet in a course
Release Notes
Name: Content
Version: 0.1d (October 2007)
Developed by: Byron Linares (
Galileo University)
- Provides a simple interface to create web pages and easily include and manipulate web assets such as flash, videos, images, etc.
- Provides a web template, easy to manage, similar to a PPT template but with built in navigation (sequential navigation, tab based organization, sub tabs supported and per unit / module navigation).
- Folder, subfolders, pages ordering.
- Free of "standards" approaches, so professors with basic word knowledge can use it.
- Auto scroll (focus navigation on the content area).
- It provides portlets for .LRN
Name: Learn Content (Renamed because Content was a very generic name)
Version: 1.0b (January 2009)
Developed by:
Alvaro Rodriguez (
Viaro Networks)
- The package is an OO extension of xowiki, leaves xowiki package unmodified
- Glossary tool, a plugin for xinha to add words to the glossary during the content edition, an admin page to manage all words and definitions, dynamic popup with the word definition inside the content
- Integration with other dotlrn resources, a new interface to link resources from the course to the content pages, this allows the content tool to be the reference of a course like SCORM
- User tracking, reports about all the content pages and all the users views, visits by page and visits by user
- Header for the content, show/hide a specific title for the course on top of each page of the content
- An admin section of the content for teachers, the xowiki's inherited admin section is only for swa
- Automatic copy of the content to other classes/communities inside dotlrn
- Split up the automatic template in sections to be easily changed (by developers/designers)
Technical specs
The Learn-Content Package is an OO extension of xowiki. The package generic template was split into sections so that it can be easily modified (by a developer/designer). A new plug-in for the Xinha richtext editor allows it to interact with the new glossary feature. To use this plug-in a parameter in the Xinha configuration must be set (which is automatically added in content).
Every page instantiated along with the package (index, glossary admin, templates, etc) is now in the prototypes section of content. If a site-wide administrator deletes a page it will be loaded again when requested. There is a new admin section that is independent of xowiki's admin section, this section is in a different directory so that different permissions can be set.
Calls to content callbacks have been added to other packages in the add forms to be able to link the resources from those packages to the content pages. The callbacks extend the form of a new object to receive the page_id to be linked to, and inserts the objects into the page once it has been created in the submit section of the form.
A new proc was created that automatically copies content to other classes/comunities using the export and import options of xowiki, complete with all the categories, the mapped objects, and the activities linked to the content.
Each callback is defined and implemented in the learn-content-callback-procs, in the following way:
ad_proc -public -callback "callback_name" -impl content
if a package needs a different implementation of a callback it should be done in the package callbacks procs in the following way:
ad_proc -public -callback "callback_name" -impl $package_key
This callbacks are used inside the page that has the form for creating/editing new in the following way:
callback -catch -impl content "callback_name" -params...
To add a new package to the activities available in content, the callbacks should be added to the file(s) where the objects are created, i.e. forum-new, task-add-edit, etc.
- A new parameter called page_instance_id needs to be added to the ad_page_contract
- The following callback should be added in a place where the form can be extended
- callback -catch -impl content learning_content::extend_form -name $form_name -page_instance_id $page_instance_id
- The following callback should be added in the submit section of the form after the object has been created
- callback -catch -impl content learning_content::insert_object -name $object_name -item_id $page_instance_id -activity_id $object_id
- The activity should be added to the activity-new and get-activities pages in the learning-content package, check out the existing activities sections to figure out the right way to include
The script added to the package to patch the rest of the packages was generated with diff between the packages from clean oacs-5-4 and modified oacs-5-4:
diff -crNB ~/oacs-5-4/packages/$package_name ~/custom-oacs-5-4/packages/$package_name
This work was done in collaboration with Innova - UNED.
Created by Joel Aufrecht, last modified by Gustaf Neumann 02 Nov 2012, at 12:13 PM
OpenACS requires, at a minimum, an operating system, database,
and webserver to work. Many additional programs, such as a build environment, Mail
Transport Agent, and source control system, are also needed for
a fully effective installation.
Table 2.2. Version Compatibility Matrix
| OpenACS Version |
3.2.5 |
4.5 |
4.6 |
4.6.1 |
4.6.2 |
4.6.3 |
5.0 |
5.1 |
5.2 (core)
|
5.3 (core)
|
5.4 (core)
|
5.5 (core)
|
5.6 (core)
|
5.7 (core)
|
5.8 (core)
|
| AOLserver |
3 |
Yes |
No |
| 3.3+ad13 |
Maybe |
Yes |
No |
| 3.3oacs1 |
Maybe |
Yes |
No |
| 3.4.4 |
No |
| 3.4.4oacs1 |
Maybe |
Yes |
No |
| 3.5.5 |
Maybe |
Yes |
No |
| 4.0 |
Maybe |
Yes |
| 4.5 |
No |
Yes |
| Naviserver |
4.99.4 |
No |
Maybe |
Yes |
| Tcl |
8.4 |
Yes |
No |
| 8.5.4 - |
Maybe |
Yes |
| PostgreSQL |
7.0 |
Yes |
No |
| 7.2 |
Maybe |
Yes |
No |
| 7.3.2 - 7.3.x |
No |
Yes |
No |
| 7.4 |
No |
Yes |
No |
| 8.0 |
No |
Maybe |
Yes |
| 8.1 |
No |
Yes |
| 8.2 |
No |
tar: no, CVS: Yes |
Yes |
| 8.3 |
No |
Yes |
| 8.4 |
No |
Yes |
| 9.0 |
No |
Yes |
| 9.1 |
No |
Yes |
| 9.2 |
No |
Yes |
| Oracle |
8.1.6 |
Maybe |
Yes |
Maybe |
| 8.1.7 |
Maybe |
Yes |
Maybe |
| 9i |
No |
Yes |
Maybe |
| 10g |
No |
Yes |
Maybe |
| 11g |
No |
Maybe |
The value in the cells correspond to the last version of that release, and
not necessarily to all minor releases. Empty cells denote an unknown status.
Created by Jim Lynch, last modified by Jim Lynch 13 Jul 2012, at 12:35 AM
description/intro paragraph (this might as well be inline)
(all the rest are menu items, which probably open into submenu which has content)
getting started with git for openacs
git for openacs users
git for openacs coders and contributors
openacs release management using git
managing the repos
Created by OpenACS community, last modified by Gustaf Neumann 22 Jun 2012, at 05:07 PM
Get AOLserver and modules Download AOLserver and modules from CVS. Install Tcl if it is not installed yet.
Comments:
- one should base the documentation on releases, not on head versions. So, just relying on the head version of github is not recommended for beginners.
- newer versions of aolserver have ns_cache included (4.5.1 or newer). no need for the extra module listed below.
- using "aolserver40r10" as name for the install directory is strange, especially, when the release is not 4.0.10
[root root]# mkdir -p /usr/local/src/aolserver40r10/
[root root]# git clone git://github.com/aolserver/aolserver.git /usr/local/src/aolserver40r10/aolserver/
[root root]# git clone git://github.com/aolserver/nssha1.git /usr/local/src/aolserver40r10/nssha1/
[root root]# git clone git://github.com/aolserver/nspostgres.git /usr/local/src/aolserver40r10/nspostgres/
[root root]# git clone git://github.com/aolserver/nsoracle.git /usr/local/src/aolserver40r10/nsoracle/
[root root]# cd /usr/local/src/aolserver40r10
[root root]# cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nscache
Download en:tdom, tcllib, and XOTcl.
[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.tdom.org:/usr/local/pubcvs co tdom
[root aolserver]# wget http://heanet.dl.sourceforge.net/sourceforge/tcllib/tcllib-1.10.tar.bz2
[root aolserver]# wget http://media.wu-wien.ac.at/download/xotcl-1.6.7.tar.gz
Configure, compile and install AOLserver. Many people need to run more than one version of AOLserver in parallel. This section accomodates future upgrades by installing AOLserver 4 in /usr/local/aolserver40r10.
[root aolserver]# cd /usr/local/src/aolserver40r10/aolserver
[root aolserver]# ./configure --prefix=/usr/local/aolserver40r10 \
--with-tcl=/usr/local/lib/ \
--enable-threads
[root aolserver]# make
[root aolserver]# make install
If this is the only version of AOLserver in use, or is the default version, create a symlink. If not, then be sure to use /usr/local/aolserver40r10 instead of /usr/local/aolserver in future steps and check any scripts and makefiles you run to ensure they use the correct path.
[root aolserver]# ln -s /usr/local/aolserver40r10 /usr/local/aolserver
Configure, compile and install the modules.
OpenACS looks for the Oracle driver at /usr/local/aolserver/bin/ora8.so, but some versions of nsoracle may create nsoracle.so instead. In that case, you can symlink (ln -s nsoracle.so ora8.so) to fix it.
-
Install nscache
[root aolserver]# cd /usr/local/src/aolserver40r10/nscache
[root nscache]# make install AOLSERVER=/usr/local/aolserver40r10
-
Install nsoracle (if you want to use Oracle)
[root nscache]# cd ../nsoracle
[root nsoracle]# make install AOLSERVER=/usr/local/aolserver40r10
-
Install nspostgres (if you want to use Postgres)
[root nscache]# cd ../nspostgres
[root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
[root nspostgres]# make install POSTGRES=LSB \
ACS=1 \
INST=/usr/local/aolserver40r10 \
AOLSERVER=/usr/local/aolserver40r10
You might try POSTGRES=PG_CONFIG if that does not work.
If you get errors like:
nspostgres.c: In function `Ns_PgTableList':
nspostgres.c:679: warning: passing arg 3 of `Tcl_DStringAppend' as signed due to prototype
then PostGreSQL is probably not in the standard location.
[jiml at cvs openacs here.] There are -new- (as of within 2nd quarter 2007) changes to nspostgres, there have been expansions of the ways to locate postgres, and changes to some error reporting. Please read the README and the Makefile. The nspostgres build can now use postgres's pg_config to locate a particular postgres installation. [jiml out]
The location of PostGreSQL is very dependent on which method was used to install it. To correct the problem, replace LSB with the path to the path to your PostGreSQL installation. Often this is /usr/local/pgsql.
Another possibility is that you may need to set the LD_LIBRARY_PATH environmental variable. You may still get warnings, but sometimes this will fix things enough to work.
[root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
You can use the ldd command to verify that all libraries are linked in: ldd /usr/local/src/aolserver40r10/nspostgres/nspostgres.so
If you run into problems with libpq.a do the following (and repeat the step above)
[root nspostgres]# ranlib /usr/local/pgsql/lib/libpq.a
If you run into problems with the linker, edit the Makefile. Add -lnsdb to the MODLIBS var.
MODLIBS = -L$(PGLIB) -lpq -lnsdb
-
Install nssha1
[root nspostgres]# cd ../nssha1
Now install nssha1:
[root nssha1]# make install NSHOME=/usr/local/aolserver40r10
If the make fails you will have to edit nssha1.c. Comment out the following 2 lines (lines 139-140):
// typedef unsigned int u_int32_t;
// typedef unsigned char u_int8_t;
-
Install tDOM
Note, if you use bash31 you need to apply a patch, see http://openacs.org/forums/message-view?message_id=369867 for details.
[root nssha1]# cd ../tDOM-0.8.0/unix
Edit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to look like this:
../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver40r10 --with-tcl=/usr/local/src/aolserver40r10/tcl-8.4.14/unix
Now you can compile and configure tDOM
[root unix]# sh CONFIG
[root unix]# make install
-
Install tcllib
[root aolserver]# cd /usr/local/src/aolserver40r10
[root aolserver]# tar xvfj tcllib-1.10.tar.bz2
[root aolserver]# cd tcllib-1.10
[root aolserver]# ./configure --prefix=/usr/local/aolserver40r10
[root aolserver]# make install
-
Install XOTcl
[root aolserver]# cd /usr/local/src/aolserver40r10
[root aolserver]# tar xvfz xotcl-1.6.7.tar.gz
[root aolserver]# cd xotcl-1.6.7/
[root aolserver]# export CC=gcc
[root aolserver]# ./configure --enable-threads --enable-symbols \
--prefix=/usr/local/aolserver40r10 \
--exec-prefix=/usr/local/aolserver40r10 \
--with-tcl=/usr/local/src/aolserver40r10/tcl8.4.14/unix
[root aolserver]# make
[root aolserver]# make install-aol
Add a database-specific wrapper script. This script sets database environment variables before starting AOLserver; this allows the AOLserver instance can communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan to use both databases, install both. Note that this section requires you to have the OpenACS, which you can get through CVS, through a tarball, or by other means. You can come back to this section after you acquire the OpenACS code, but don't forget to come back. (Note to maintainers: this should be moved to the next page and integrated into the text there)
-
Oracle
[root aolserver]# cd /usr/local/aolserver40r10/bin
[root bin]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
[root bin]# chmod 750 nsd-oracle
[root bin]#
-
PostgreSQL
[root aolserver]# cd /usr/local/aolserver40r10/bin
[root bin]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
[root bin]# chmod 755 nsd-postgres
[root bin]#
You may need to edit these scripts if you are not using /usr/local/aolserver as the directory of Aolserver4.
Test AOLserver. We will use the sample-config.tcl file provided in the AOLserver distribution to test AOLserver. This test will use the nobody user and web group. The sample-config.tcl configuration writes to the default log locations, so we need to give it permission to do so or it will fail. Grant the web group permission to write to /usr/local/aolserver/log and /usr/local/aolserver/servers.
[root root]# cd /usr/local/aolserver
[root aolserver]# chown -R root.web log servers
[root aolserver]# chmod -R g+w log servers
[root aolserver]# ls -l
total 32
drwxr-sr-x 2 root root 4096 Mar 8 12:57 bin
drwxr-xr-x 3 root root 4096 Mar 8 10:34 include
drwxr-sr-x 3 root root 4096 Mar 8 10:34 lib
drwxrwsr-x 2 root web 4096 Mar 8 10:31 log
drwxr-sr-x 3 root root 4096 Mar 8 10:31 modules
-rw-r--r-- 1 root root 7320 Mar 31 2001 sample-config.tcl
drwxrwsr-x 3 root web 4096 Mar 8 10:31 servers
[root aolserver]#
Note: AOLserver4.x does not include a default start page, so we create one for this test. Type echo "Welcome to AOLserver" > /usr/local/aolserver40r10/servers/server1/pages/index.html
Now, run AOLserver using the sample configuration to verify it runs without errors. This configuration attempts to automatically get the machine's IP address and hostname. It will then start up the server at port 8000 of that IP address.
[root aolserver]# ./bin/nsd -t sample-config.tcl -u nobody -g web
[root aolserver]# [08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: starting to read config file...
[08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nsssl not loaded -- key/cert files do not exist.
[08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nscp not loaded
-- user/password is not set.
[08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: finished reading
config file.
The first warning, about nsssl, can be ignored. We will not be using nsssl; we will be using nsopenssl instead. The nssl error happens because we have not fully configured secure connections to use nsopenssl. The nscp warning means that without a user and password in the sample-config.tcl file, the administrative panel of AOLserver will not load. We do not plan to use it and can ignore that error as well. Any other warning or error is unexpected and probably indicates a problem.
Test to see if AOLserver is working by starting Mozilla or Lynx on the same computer and surfing over to your web page. If you browse from another computer and the sample config file didn't guess your hostname or ip correctly, you will get a false negative test.
[root aolserver]# lynx localhost:8000
You should see a "Welcome to AOLserver" page. If this does not work, try browsing to http://127.0.0.1:8000/. If this still does not work, read the en:aolserver-admin section on "Troubleshooting AOLserver". Note that you will not be able to browse to the web page from another machine, because AOLserver is only listening to the local address.
Shutdown the test server:
[root aolserver]# killall nsd
[root aolserver]#
The killall command will kill all processes with the name nsd, but clearly this is not a good tool to use for managing your services in general. We cover this topic in en:aolserver-admin section.
Set up the file system for one or more OpenACS Sites
This should already have been done, according to the instructions at the bottom of this page: en:Get_the_Code
Set up a user account for each site.
AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. This user should have as few privileges as possible, because if an intruder somehow breaks in through AOLserver, you do not want the intruder 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 run AOLserver with a different user account for each different service. Create the username as $OPENACS_SERVICE_NAME.
The password should be blank, to prevent login by password, for increased security. The only way to log in will be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put it in the $OPENACS_SERVICE_NAME group so that it can use database and server commands associated with that group. (If you don't know how to do this, type man usermod. You can type groups to find out which groups a user is a part of)
[root root]# useradd $OPENACS_SERVICE_NAME
You also need to set up a group called web.
[root root]# groupadd web
Then change the user to be a part of this group:
[root root]# usermod -g web $OPENACS_SERVICE_NAME
ref: http://openacs.org/doc/aolserver4.html