Forum OpenACS Development: Has xml-utils-procs moved?

Collapse
Posted by Ken Kennedy on

I've FINALLY checked things out from the tree, after cleaning up my machine (new postgres.so, etc.) to start working w/ OpenACS 4. I'm generally following the install guide (Thanks for that, Vinod!), but I'm having a problem.

When I start nsd, it's failing with the following error:

[09/May/2001:21:34:13][1112.1024][-main-] Error: Server startup failed: Error during bootstrapping invalid command name "xml_find_child_nodes" while executing "xml_find_child_nodes $root_node rdbms" ...blah...etc.

I've tracked down references to xml_find_child nodes; it's used in packages/acs-bootstrap-installer/tcl/40-db-query-dispatcher- procs.tcl, but it's not defined until packages/acs-tcl/tcl/30-xml- utils-procs.tcl (I don't know yet WHEN that's sourced, but it's after all the acs-bootstrap-installer stuff...another interesting note is that the header in 30-xml-utils-procs.tcl says "50-xml-utils- procs.tcl"; did it maybe used to be in acs-bootstrap-installer/tcl?

I think I'm going to just dink around with the files to get things to load (probably move 30-xml-utils-procs.tcl into packages/acs- bootstrap-installer/tcl/, before 40-db-query-dispatcher-procs.tcl.

BUT...have I munged my cvs checkout (I hope not...I've blown it away and redone it several times today!) or have some things gotten moved around a bit? Any ideas? (Oh...I don't know if it makes a difference [I hope not], but I'm logging into cvs with kenk, rather than anonymous. Maybe I'll try an anonymous check just to make sure...). Anyone else have this problem?

Collapse
Posted by Ken Kennedy on
Ugh...once I fixed that, had another problem with "db_type" which i found in packages/acs-tcl/tcl/00-database-procs.tcl, and moved to packages/acs-bootstrap-installer/tcl/01-database-procs.tcl. NOW I'm getting quite a ways, but it's failing on "ad_verify_install". I'm deep into the query dispatcher now, though, really knowing what's going on...*grin*. I'd better read up. Any hints appreciated!
Collapse
Posted by Ken Kennedy on
Saga continuing...*grin*. Looks like ad_verify_install isn't being run because packages/acs-tcl/tcl/acs-kernel-procs.tcl is failing a test in apm_bootstrap_load_libraries; the *-procs.tcl files are returning a $file_type of content_page from apm_guess_file_type, which means they don't get sourced. I'm looking at the regexps in there now...oh. Found it. Tricky. It's the 'www' in /var/www, (my rootdirectory is /var/www/openacs-4) which is the standard "root location" for web stuff on Debian, rather than our beloved /web. That's matching the 'content_page' regexp in apm_guess_file_type.

For now, I'll rename /var/www to /var/web, but it's something to keep in mind (for future Debian packaging, etc.).

Collapse
Posted by Ken Kennedy on
Woohoo! Looks like the name change worked! I'm going to rm -rf my openacs checkout and re-create it, to make sure that things are looking good. I was thinking, regarding that regexp issue; it's probably not a good thing to be dependent on WHERE someone installs the OpenACS root...whether it's /web, or /var/www, /home/webstuff, or /foo/bar for that matter. Since we already know the root_directory (all the way back in 0-acs-init.tcl), couldn't we lop that off of the path before we do a regexp like that? That way, we're only testing strings that we "control". I'll play around with it...
Collapse
Posted by Don Baccus on
Thanks for the heads-up on the regexp.  The aD code makes all sorts of
assumptions about file locations.  Even the name "guess_type" is a
misnomer, because there's no way to override the "guess"... the
"guess" is reality as far as the bootstrap installer is concerned (and
the APM, for that matter - you can't change the "guess", one of my
many, many issues with the APM that I hope to clean up as we progress).

I don't quite understand the first problem you had with db_type...

Collapse
Posted by Ken Kennedy on
Oh...yeah, I guess I was unclear with that; I was kinda hacking and posting simultaneously.*grin*

It was the same error as I'd gotten with "xml_find_child_nodes": [09/May/2001:21:34:13][1112.1024][-main-] Error: Server startup failed: Error during bootstrapping invalid command name "db_type"

Nothing to worry about though...I've re-checked everything out of CVS (with the directory name change to /var/web) and the regular file locations are working fine. I'm going through the kernel data model install now. There were TONS of *-proc.tcl files that weren't getting sourced b/c of the regexp issue, including the ones holding xml_find_child_nodes, db_type, etc. Everything seems a-ok as of now...

Collapse
Posted by Roberto Mello on
I had forgotten about this post (that I read last month) and had a big headache trying to install OpenACS 4.x in my Debian box in /var/www.

I went ahead and corrected the bug. I didn't commit it to CVS because it's Don's module. But I submitted a patch (and a bug report) at the SDM. It's here: https://openacs.org/sdm/one-patch.tcl?patch_id=32.

Collapse
Posted by Don Baccus on
I don't really like the assumptions made in the patch.

Wouldn't it be better to use PageRoot?  We know that page root always points to [your install directory]/www.  All you need to do is count the number of directories in the [your install directory] path and only look for www and admin-www in the trailing part of the path being  tested - instead of your hard-wired "3" approach.

If you want to take a shot at that, I'd say do it, test it, and go ahead and commit it ...

And TIA!

Collapse
Posted by Roberto Mello on
Your approach is much better Don. Thanks. Made the change, tested and committed.