Forum OpenACS Development: Errors with package require xotcl::serializer

In a fresh install of OpenACS 5.10, I'm getting errors like these:

Error: Error sourcing openacs/packages/xotcl-core/tcl/01-debug-procs.tcl:
:    can't find package xotcl::serializer
:        while executing
:    "package require xotcl::serializer"

Running the same from-source build of Tcl that I use for Naviserver, I get this:

$ /usr/local/pkg/tcl-8.6.13-20231222/bin/tclsh8.6
% info patchlevel
8.6.13
% package require XOTcl
2.4.0
% package require nx::serializer
2.4.0
% package require xotcl::serializer
can't find package xotcl::serializer
% puts $::xotcl::version
2.3

Note that I apparently have package nx::serializer, but not the very similar sounding xotcl::serializer.

Did I do something wrong when I built nsf 2.4 from source? I used the version of xotcl-core from Git tagged openacs-5-10-compat. Was that wrong and I should have used the latest on the oacs-5-10 branch instead? Or can anyone point out what else might be the problem here?

Collapse
Posted by Andrew Piskorski on
I figured it out. The big hint was that the above error happened with my own Tcl built from source, but not when I used the Tcl and Naviserver built by Gustaf's install-ns.sh script. So there was something different about the two, although their output mostly looked identical!

The difference was that I placed my nsf source inside Tcl's pkgs/ directory (along with thread, tdom, and itcl). That apparently mostly works, but fails to set up something that xotcl::serializer needs. Gustaf's script, on the other hand, built nsf separately, while pointing it to the installed Tcl location. I switched my build to do it that way too, and now xotcl::serializer works!