Forum OpenACS Development: Best version of xowiki and xotcl to download!?

I realise that this package is under constant development and I would like to get more upto date but I'm not sure which of the many versions to download. What's the latest stable release? A CVS download string would be perfect!

Many thanks,
Matthew

Collapse
Posted by Gustaf Neumann on
The "stable version" is in the oacs-5-3 branch
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-3 openacs-4/packages/xotcl-core
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-3 openacs-4/packages/xowiki
You should get these versions as well from "install/update from repository" from /acs-admin/install/

To get the best version of XOTcl (the Tcl extension), check out http://www.xotcl.org

Collapse
Posted by Matthew Coupe on
Does this rely on thread2.6.4? I have xotcl 1.5.3.

on every page I'm getting...

invalid command name "throttle"
while executing
"$proc $why"

...and I have a horrible feeling I've been here before. I've got thread2.6.1 at the moment. It didn't do this before I upgraded my xowiki and xotcl-core.

Cheers

Collapse
Posted by Matthew Coupe on
During installation this happens:

::xotcl::__#1m: unable to dispatch method 'set_content'
while executing
"$page set_content [string trim [$page text] " \n"]"
(procedure "import_prototype_page" line 29)
::2475908 ::xowiki::Package->import_prototype_page
invoked from within
"$package_id import_prototype_page weblog-portlet"
(procedure "::xowiki::upgrade_callback" line 223)
invoked from within
"::xowiki::upgrade_callback -from_version_name 0.47 -to_version_name 0.60.1"
("eval" body line 1)
invoked from within
"eval $command"
(procedure "apm_invoke_callback_proc" line 37)
invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-upgrade -arg_list [list from_version_name $upgrade_from_version_name to_version_name $ver..."
(procedure "apm_package_install" line 191)
invoked from within
"apm_package_install -enable=$enable_p -package_path $package_path -callback apm_ns_write_callback -load_data_model -data_model_files $data_model_..."
("foreach" body line 42)
invoked from within
"foreach pkg_info $pkg_install_list {
set spec_file [pkg_info_spec $pkg_info]
set package_path [pkg_info_path $pkg_info]

if { [catch {
ar..."
("uplevel" body line 34)
invoked from within
"uplevel {
ad_page_contract {

Installs the packages.

@author Bryan Quinn (mailto:bquinn@arsdigita.com)
@creation-date Mon Oct 9 00:22:31 2000
..."
(procedure "code::tcl::/var/lib/aolserver/nccedudotlrn/packages/acs-admi..." line 2)
invoked from within
"code::tcl::$__adp_stub"
invoked from within
"if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
..."
("uplevel" body line 3)
invoked from within
"uplevel {

if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare "
(procedure "template::adp_parse" line 30)
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 5)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
"rp_serve_abstract_file "$root/$path""
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
rp_serve_abstract_file "$root/$path"
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info..."

Collapse
Posted by Gustaf Neumann on
Hmm,

i have here the following combo (with request monitor from head) running (aside of 6 other working combinations)

acs-kernel            Kernel      5.3.2  	  
xotcl-core            XOTcl Core  0.56.2  
xotcl-request-monitor XOTcl Request Monitor 	0.39
xowiki                xowiki      0.60.1
i have libthread 2.6.4, but afaik 2.6.1 should be ok. XOTcl 1.5.3 should be fine as well

What base version of OpenACS are you using?
From which version did you upgrade?
Did you restart the server?
What is the first error message in the error.log?

Collapse
Posted by Matthew Coupe on
This is where I'm coming from:
xoWiki 0.47
xotcl-request monitor 0.38
XoTcl-core 0.47
ACS-Kernel 5.2.3

Installation Errors
Error 1:

Error: Ns_PgExec: result status: 7 message: ERROR: adding columns with defaults is not implem
ented
HINT: Add the column, then use ALTER TABLE SET DEFAULT.
CONTEXT: PL/pgSQL function "content_type__create_attribute" line 31 at execute statement

[18/Oct/2007:12:05:13][5630.3065895856][-conn:nccedudotlrn::0] Error: Error sourcing /var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-procs.tcl:
Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR: adding columns with defaults is not implemented
HINT: Add the column, then use ALTER TABLE SET DEFAULT.
CONTEXT: PL/pgSQL function "content_type__create_attribute" line 31 at execute statement

SQL:
select content_type__create_attribute('::xowiki::PageTemplate', 'anon_instances', 'boolean', '#xowiki.PageTemplate-anon_instances#', null, null, null,
'boolean default ''f''')

while executing
"ns_pg_bind 0or1row $db $sql"
invoked from within
"ns_set value [ns_pg_bind 0or1row $db $sql] 0 "
invoked from within
"return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]"
("uplevel" body line 3)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
#my log "sql=$sql, sql_command=ns_set value [ns_pg_bind 0or1row $db $sql] 0"
return [ ns_set value [ns_p..."
(procedure "create_attribute" line 17)
::xo::db::sql::content_type->create_attribute
invoked from within
"::xo::db::sql::content_type create_attribute -content_type $object_type -attribute_name $attribute_name -datatype $datatype -pretty_name $pretty_n..."
(procedure "create_attributes" line 26)
::xowiki::PageTemplate ::Generic::CrClass->create_attributes
invoked from within
"my create_attributes"
("uplevel" body line 2)
invoked from within
"uplevel 1 $transaction_code "
(procedure "db_transaction" line 39)
invoked from within
"db_transaction {
my create_attributes
}"
(procedure "init" line 39)
::xowiki::PageTemplate ::Generic::CrClass->init
::Generic::CrClass ::xotcl::Class->recreate
::Generic::CrClass ::xotcl::Class->create
invoked from within
"::Generic::CrClass create PageTemplate -superclass Page -pretty_name "XoWiki Page Template" -pretty_plural "XoWiki Page Templates" -table_name "xowi..."
(in namespace eval "::xowiki" script line 81)
invoked from within
"namespace eval ::xowiki {
#
# create classes for different kind of pages
#
::Generic::CrClass create Page -superclass ::Generic::CrItem \
..."
(file "/var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-procs.tcl" line 9)
invoked from within
"source $__file "

Error 2
Error: Error sourcing /var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-www-procs.tcl
:
invalid command name "FormPage"
while executing
"FormPage instproc create_category_fields {} {
set category_spec [my get_short_spec @categories]
foreach f [split $category_spec ,] {
if ..."
(in namespace eval "::xowiki" script line 3)
invoked from within
"namespace eval ::xowiki {

FormPage instproc create_category_fields {} {
set category_spec [my get_short_spec @categories]
foreach f [split ..."
(file "/var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-www-procs.tcl" line 397)
invoked from within
"source $__file "

Error 3
Error: Ns_PgExec: result status: 7 message: ERROR: function content_type__drop_type("unknown"
, "unknown", "unknown", "unknown") does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.

[18/Oct/2007:12:05:33][5630.3065895856][-conn:nccedudotlrn::0] Notice: --upgrade produced error: Database operation "0or1row" failed (exception NSDB, "Query
was not a statement returning rows.")

ERROR: function content_type__drop_type("unknown", "unknown", "unknown", "unknown") does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.

SQL:
select content_type__drop_type('::xowiki::FormInstance', 't', 't', 't')

Error 4
Error: GET http://10.10.1.34:8000/acs-admin/apm/packages-install-4?
referred by "http://10.10.1.34:8000/acs-admin/apm/packages-install";
::xotcl::__#1m: unable to dispatch method 'set_content'
while executing
"$page set_content [string trim [$page text] " \n"]"
(procedure "import_prototype_page" line 29)
::2475908 ::xowiki::Package->import_prototype_page
invoked from within
"$package_id import_prototype_page weblog-portlet"
(procedure "::xowiki::upgrade_callback" line 223)
invoked from within
"::xowiki::upgrade_callback -from_version_name 0.47 -to_version_name 0.60.1"
("eval" body line 1)
invoked from within
"eval $command"
(procedure "apm_invoke_callback_proc" line 37)
invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-upgrade -arg_list [list from_version_name $upgrade_from_version_name to_version_name $ver..."
(procedure "apm_package_install" line 191)
invoked from within
"apm_package_install -enable=$enable_p -package_path $package_path -callback apm_ns_write_callback -load_data_model -data_model_files $data_model_..."
("foreach" body line 42)
invoked from within
"foreach pkg_info $pkg_install_list {
set spec_file [pkg_info_spec $pkg_info]
set package_path [pkg_info_path $pkg_info]

if { [catch {
ar..."
("uplevel" body line 34)
invoked from within
"uplevel {
ad_page_contract {

Installs the packages.

@author Bryan Quinn (mailto:bquinn@arsdigita.com)
@creation-date Mon Oct 9 00:22:31 2000
..."
(procedure "code::tcl::/var/lib/aolserver/nccedudotlrn/packages/acs-admi..." line 2)
invoked from within
"code::tcl::$__adp_stub"
invoked from within
"if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
..."
("uplevel" body line 3)
invoked from within
"uplevel {

if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare "
(procedure "template::adp_parse" line 30)
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 5)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
"rp_serve_abstract_file "$root/$path""
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
rp_serve_abstract_file "$root/$path"
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info..."

Errors on subsequent start-up
Error: Ns_PgExec: result status: 7 message: ERROR: adding columns with defaults is not implemented
HINT: Add the column, then use ALTER TABLE SET DEFAULT.
CONTEXT: PL/pgSQL function "content_type__create_attribute" line 31 at execute statement

[18/Oct/2007:12:12:59][23716.3086944480][-main-] Error: Error sourcing /var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-procs.tcl:
Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR: adding columns with defaults is not implemented
HINT: Add the column, then use ALTER TABLE SET DEFAULT.
CONTEXT: PL/pgSQL function "content_type__create_attribute" line 31 at execute statement

SQL:
select content_type__create_attribute('::xowiki::PageTemplate', 'anon_instances', 'boolean', '#xowiki.PageTemplate-anon_instances#', null, null, null,
'boolean default ''f''')

while executing
"ns_pg_bind 0or1row $db $sql"
invoked from within
"ns_set value [ns_pg_bind 0or1row $db $sql] 0 "
invoked from within
"return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]"
("uplevel" body line 3)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
#my log "sql=$sql, sql_command=ns_set value [ns_pg_bind 0or1row $db $sql] 0"
return [ ns_set value [ns_p..."
(procedure "create_attribute" line 17)
::xo::db::sql::content_type->create_attribute
invoked from within
"::xo::db::sql::content_type create_attribute -content_type $object_type -attribute_name $attribute_name -datatype $datatype -pretty_name $pretty_n..."
(procedure "create_attributes" line 26)
::xowiki::PageTemplate ::Generic::CrClass->create_attributes
invoked from within
"my create_attributes"
("uplevel" body line 2)
invoked from within
"uplevel 1 $transaction_code "
(procedure "db_transaction" line 1)
invoked from within
"db_transaction {
my create_attributes
}"
(procedure "init" line 39)
::xowiki::PageTemplate ::Generic::CrClass->init
::Generic::CrClass ::xotcl::Class->create
invoked from within
"::Generic::CrClass create PageTemplate -superclass Page -pretty_name "XoWiki Page Template" -pretty_plural "XoWiki Page Templates" -table_name "xowi..."
(in namespace eval "::xowiki" script line 81)
invoked from within
"namespace eval ::xowiki {
#
# create classes for different kind of pages
#
::Generic::CrClass create Page -superclass ::Generic::CrItem \
..."
(file "/var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-procs.tcl" line 9)
invoked from within
"source $__file "

Another one
invalid command name "PageInstance"
while executing
"PageInstance instproc create_form_field {
-name
{-slot ""}
{-spec ""}
{-configuration ""}
} {
set short_spec [my get_short_spe..."
(in namespace eval "::xowiki" script line 137)
invoked from within
"namespace eval ::xowiki {

Page instproc edit {
{-new:boolean false}
{-autoname:boolean false}
{-validaton_errors ""}
} {
my inst..."
(file "/var/lib/aolserver/nccedudotlrn/packages/xowiki/tcl/xowiki-www-procs.tcl" line 224)
invoked from within
"source $__file "

Collapse
Posted by Gustaf Neumann on
Error 1 and error 3 are most likely the culprits, the others are consequences of these problems.

How comes, that you don't have the following psql functions?

content_type__create_attribute()  -- 8 args
content_type__drop_type()  -- 4 args
You should see the following output in Postgres
# \df content_type__create_attribute
                                                                                             List of functions
 Schema |              Name              | Result data type |                                                             Argument data types
--------+--------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------------------
 public | content_type__create_attribute | integer          | character varying, character varying, character varying, character varying, character varying, integer, character varying, character varying
(1 row)

# \df content_type__drop_type List of functions Schema | Name | Result data type | Argument data types --------+-------------------------+------------------+---------------------------------------------- public | content_type__drop_type | integer | character varying, boolean, boolean public | content_type__drop_type | integer | character varying, boolean, boolean, boolean (2 rows)

The problem with content_type__drop_type() looks easier to track. The SQL function was added by malte in july last year and is part of content-type.sql in oacs-5-3, and is included in the update scripts acs-content-repository/sql/postgresql/upgrade/upgrade-5.3.0d2-5.3.0d3.sql

Can it be, that these update scrips were not executed in your installation? I tend to believe that you have only the
content_type__drop_type with three arguments. Is this true? What is the your situation with content_type__create_attribute()?

Collapse
Posted by Matthew Coupe on
Could it be something to do with bgdelivery?
Collapse
Posted by Matthew Coupe on
We have Postgres 7.4.7, a bit behind the times, could that be why? I'll disect your post in the meantime!!
Collapse
Posted by Gustaf Neumann on
OpenACS 5.3 requires Postgres 8.* https://openacs.org/xowiki/openacs-compatibility-matrix

It might be, that some update scripts of 5.3 failed due to the 8.2 requirement. I would certainly recommend to update.

Collapse
Posted by Matthew Coupe on
> The problem with content_type__drop_type() looks easier to track. The SQL function was added by malte in july last year and is part of content-type.sql in oacs-5-3, and is included in the update scripts acs-content-repository/sql/postgresql/upgrade/upgrade-5.3.0d2-5.3.0d3.sql

We won't have got that as we are on acs-content-repository 5.2.3. Shall I try that sourcing that script?

Here are the results, drop type only has the one with the three arguments:

nccedudotlrn=# \df content_type__create_attribute
List of functions
Result data type | Schema | Name | Argument data types
------------------+--------+--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------
integer | public | content_type__create_attribute | character varying, character varying, character varying, character varying, character varying, integer, character varying, character varying
(1 row)

nccedudotlrn=# \df content_type__drop_type
List of functions
Result data type | Schema | Name | Argument data types
------------------+--------+-------------------------+-------------------------------------
integer | public | content_type__drop_type | character varying, boolean, boolean
(1 row)

Collapse
Posted by Gustaf Neumann on
I see, you are on the oacs-5-2 branch. The xotcl-core and xowiki versions in the oacs-5-3 branch really depend on he oacs-5-3. You can try to source the update script, but i would recommend the following:
  • make a dump of your database
  • source the update-script mentioned above

But this will not solve the problem with content_type__create_attribute(). It seems that PostgreSQL had in earlier version problems with adding attributes with default values (the error message is: ERROR: adding columns with defaults is not implemented), see as well http://archives.postgresql.org/pgadmin-support/2004-01/msg00003.php.

Apparently, this has changed in postgres 8.*. xowiki passes the default value in the table_spec (arg 8), which is the only way to add it through the oacs interface to the database. It seems that in postgres 7.*, one had to add the column without the default value and perform an ALTER TABLE SET DEFAULT. this could be achieved by altering content_type__create_attribute() in oacs-5-2 for 7.4. Not sure, whether this is worth the effort. The problem does not exist in PostgreSQL 8.*. Isn't upgrading to postgres 8.* an option for you?

Collapse
Posted by Matthew Coupe on
I'm getting the impression that a full upgrade of our infrastructure is probably going to be the way forward.

*braces himself* This is going to hurt...

Collapse
Posted by Matthew Coupe on
I think we'll try the upgrade, seems like a sensible thing to do now I've seen the compatibility matrix. which version is recommended at the moment? It seems like more of a Monday morning task me-thinks...

I may need to bend your ear some more about using the wiki as a blogging tool, I'm sure it's not too difficult a thing to do.

Cheers
Matthew

Collapse
Posted by Gustaf Neumann on
The best and most stable version of OpenACS is what you get from the oacs-5.3 branch. For postgres, i would go for 8.2.5. for using xowiki as a blogging tool see https://openacs.org/forums/message-view?message%5fid=1146374
Collapse
Posted by Ben Koot on
I am all for using XOwiki as a blogging tool, provided it I would still have the bookmarklet feature and have a draft mode, as in Larsblogger. Any chance you can add that to a next release of XOwiki Gustav? Others may find use for Technorati support. I guess you can simply copy that from Larsblogger.

Thanks for a great tool.

Ben