Ok, so I found some further problems using the modern Tcl's available -
namely that indexes and glossaries were silently broken.
This was due to a hairy (and almost certainly buggy) custom Tcl command
(written in C, in instant) called CompareI18NStrings(). It was used to
do proper locale-aware sorts on lists of array index names.
This function silently failed with modern Tcl's, probably due to the way
it overwrote and accessed internal interpreter state data - something
not allowed in modern versions.
Newer Tcl's support locale-aware dictionary sorts natively, so we do not
need that mess in instant.
But, these sorts are not supported with the ancient version of Tcl CDE
ships with. To support both, would require separate docbook.tcl scripts
and some Imake magic to use one or the other depending on what Tcl we
are using. No thanks.
For this reason, I have removed the ancient Tcl from the CDE source base
and now we will always require that an OS version is used.
I have already made the change for Linux (you must install tcl-dev or
tcl-devel depending on linux flavor).
I've also made these changes for FreeBSD and OpenBSD - you must install
the tcl 8.6 packages. Other versions can be used on the BSD's, but due
to the annoying way they name the include dirs and libraries, you would
need to modify programs/dtdocbook/instant/Imakefile to specify the
correct version.
For FreeBSD: pkg install tcl86
For OpenBSD: pkg_add tcl-8.6.6p0, or what ever 8.6 version is available.
This also means that Solaris/Sun and NetBSD will no longer build when I
merge the commit. It will be up to the people that maintain/use CDE for
them to send a patch as I do not have those systems available.
So this is a "heads-up" to them as well.
Hopefully it should be a simple matter of installing the right package
(and updating the OS wiki page) and adding the correct stanza to
programs/dtdocbook/instant/Imakefile.
I have also changed the version number of CDE to 2.3.0a in master so
that this can be noted on the appropriate wiki pages -- ie: "CDE version
2.3.0a or better requires installation of Tcl development packages", etc.
I will edit them for at least Linux/FreeBSD/OpenBSD to mention the new
packages that should be installed.
In general, I would prefer not to deliberately break compilation for
"supported" OS's, but in this case the alternative is worse IMO.
Similar changes will also likely happen when we get around to replacing
nsgmls, libjpeg, and other ancient cruft in favor of supported platform
versions.
I will merge the patches to master and update the relevant wiki pages
later today.
--
Jon Trulson
"In the game of chess, you can never let your adversary see your pieces."
- Zapp Brannigan
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel