FWIW, I've spent some time on this periodically over the last couple weeks. The problems run deep. The failure reported below turned out to be due to instant (dtdocbook/instant) crashing during help generation.

I managed to fix several problems there, but then there were more issues with the changes in the modern Tcl. We were using 7.5, I believe the version on my ubuntu 16.04 machine is 8.6.

So, in addition to instant, I had to fix or work around some issues in docbook.tcl. Since prior to this issue I'd never touched Tcl, I needed some time to figure it out :)

The good thing is that I understand a lot more about what Tcl is and how it's actually being used now.

One fix I had to make to instant, is that it would choke on 8 bit characters - of the sort you would find in a German, French or Italian locale. The problem there is that as of Tcl 8.0 (I believe) Tcl requires strings to contain valid utf8 encoded characters. Otherwise it behaves badly, ie: crashes with an error, and truncates the string causing further parsing errors down the line in help text generation.

So I had to hack instant to translate these into a hex representation that would pass muster: 0xc8 -> "\xc8" for example.

This seems to work, and I was finally able to complete a full build without errors today. But it is a hack that would need to be removed when we move toward UTF-8 everywhere.

I will test it some more and clean it up before I commit it.

And, after this work, I'm thinking I want to try to tackle that next: switching to UTF-8, probably in a separate branch initially.

That would be a big task too, but I think a lot of things would be better in the long run if we just took that plunge ASAP and get it over with.

-jon

On 09/02/2018 03:47 PM, Jon Trulson wrote:
I can't apply this for a couple reasons:

On 08/26/2018 09:00 AM, Chase via cdesktopenv-devel wrote:
  INCLUDES = -I../lib/tptregexp -I../tcl -I$(XLATESRC)

Should not be adding ../tcl to the include list if we are using the system version...

  DEPLIBS = $(DEPDTSVCLIB)
+#if defined(__linux__)
+DEFINES = -DUSE_INTERP_ERRORLINE -DUSE_INTERP_RESULT

What do these do?

+LOCAL_LIBRARIES = /usr/lib/x86_64-linux/gnu/libtcl.a $(DTSVCLIB) $(TTLIB) \

Cannot hard code this path.  It does not exist on my system at least. Something like '-ltcl' would be better.

+$(XMLIB) $(XTOOLLIB) $(XLIB) -L../lib/tptregexp -ltptregexp
+#else
  LOCAL_LIBRARIES = $(DTSVCLIB) $(TTLIB) $(XMLIB) $(XTOOLLIB) $(XLIB) \
  -L../lib/tptregexp -ltptregexp ../tcl/libtcl.a
+#endif
  #if defined(SunArchitecture)
  EXTRA_LIBRARIES = -lsocket -lnsl -lgen -lm
  #else

For kicks, I addressed the above issues, but there is a build failure. Many warnings about deprecated function calls, passing ints as pointers and vice versa.

Then, Help generation fails:

LANG=es_ES.ISO8859-1 SGML_SEARCH_PATH=".:.." LD_LIBRARY_PATH=../../../exports/lib:/usr/dt/lib:/usr/lib DTLCXSEARCHPATH=../../../lib/DtHelp /bin/ksh ../../../programs/dtdocbook/doc2sdl/dtdocbook -t ../../../programs/dtdocbook/doc2sdl -H ../../../programs/dthelp/parser/pass2/htag2/dthelp_htag2 -I ../../../programs/dtdocbook/instant/instant -L ../../../programs/dtdocbook/xlate_locale/xlate_locale -S ../../../programs/nsgmls/nsgmls  -o ../help-sdl/Appmanager.sdl Appmanager/book.sgm
dtdocbook fatal error:
    Error processing book.out.sdl by ../../../programs/dthelp/parser/pass2/htag2/dthelp_htag2
Makefile:742: recipe for target '../help-sdl/Appmanager.sdl' failed

as an example.

Clearly this needs more work (and testing!).  It's possible  that the TCL code in CDE depends on a vastly older version, and will need to be updated as well before we can depend on modern versions...


--
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

Reply via email to