[GRASS5] NVIZ Tk8.0 on Debian

I did this in togl.c; for the 8.0.5 case

#include "tkInt8.0.5.h"

I added a sym link to tkInt.h in /usr/include/tk8.0/generic

Did a recompile with no errors and ran NVIZ without error.

I conclude that tkInt8.0p2.h is not compatable with tk.h from the 8.0.5 version that I got from debian. Thus yet another header needs to be added to get this to compile out of the box or maybe I am still missing the configure option to get this right.

Thanks for your continuing work.

-tom rake

From: "Tom Rake" <duff_maps@hotmail.com>
To: grass5@grass.itc.it
Subject: [GRASS5] (no subject)
Date: Wed, 08 May 2002 17:51:49 -0400

I am trying to compile the release branch on a Debian-Potato i386 computer.
NVIZ fails to compile. I have tk8.0 (8.0.5) and related developer files
including the correct tkInt.h need for togl.c. These are loaded at
/usr/include/tk8.0/generic/ on my machine. All configure options I try still
pick up the tkInt8.0p.h from the NVIZ/src directory while picking up the
tk.h from /usr/include/
My assumption is that all the tkInt files are fixing other bugs and 8.0.5
(as packaged by Debian) is not compatable with those fixes.

[snip...]

_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. http://www.hotmail.com

Tom Rake wrote:

I did this in togl.c; for the 8.0.5 case

#include "tkInt8.0.5.h"

I added a sym link to tkInt.h in /usr/include/tk8.0/generic

Did a recompile with no errors and ran NVIZ without error.

I conclude that tkInt8.0p2.h is not compatable with tk.h from the 8.0.5
version that I got from debian.

If there's an incompatibility, it's with libtk.so not tk.h.

Thus yet another header needs to be added to
get this to compile out of the box or maybe I am still missing the configure
option to get this right.

This can't be solved by specifying configure options.

NVIZ creates a new Tk widget class (an OpenGL canvas). Creating new Tk
widget classes involves accessing "internal" Tk structures, which are
defined in tkInt.h. There are two problems associated with this:

1. Most binary Tk distributions do not provide the tkInt.h file.

2. The structures which are defined in tkInt.h may change between
minor versions of Tk, so you need a version of tkInt.h which
corresponds to your particular version of libtk.so.

Due to point 1, we deal with point 2 by including lots of different
versions of tkInt.h, and togl.c includes the correct one according to
the version macros from tk.h. Except that it uses tkInt8.0p2.h for all
of the Tk 8.0 patch levels (NB: "8.0.5" is "8.0p5" in the offical Tk
numbering scheme).

If you send me the tkInt.h for 8.0p5, I'll add it to NVIZ' collection
of tkInt.h files.

--
Glynn Clements <glynn.clements@virgin.net>

On Wed, May 08, 2002 at 06:43:40PM -0400, Tom Rake wrote:

I did this in togl.c; for the 8.0.5 case

#include "tkInt8.0.5.h"

I added a sym link to tkInt.h in /usr/include/tk8.0/generic

Did a recompile with no errors and ran NVIZ without error.

I conclude that tkInt8.0p2.h is not compatable with tk.h from the 8.0.5
version that I got from debian. Thus yet another header needs to be added to
get this to compile out of the box or maybe I am still missing the configure
option to get this right.

Thanks for your continuing work.

Tom,

the tkInt story is somewhat annoying - they manage to break every
compatibility.
For a quick solution please send me your tkInt8.0.5.h file so that
I can add it to the local tkInt files farm.

Thanks
Markus

>From: "Tom Rake" <duff_maps@hotmail.com>
>To: grass5@grass.itc.it
>Subject: [GRASS5] (no subject)
>Date: Wed, 08 May 2002 17:51:49 -0400
>
>I am trying to compile the release branch on a Debian-Potato i386 computer.
>NVIZ fails to compile. I have tk8.0 (8.0.5) and related developer files
>including the correct tkInt.h need for togl.c. These are loaded at
>/usr/include/tk8.0/generic/ on my machine. All configure options I try
>still
>pick up the tkInt8.0p.h from the NVIZ/src directory while picking up the
>tk.h from /usr/include/
>My assumption is that all the tkInt files are fixing other bugs and 8.0.5
>(as packaged by Debian) is not compatable with those fixes.
>
>
>
[snip...]

_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail.
http://www.hotmail.com

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

Glynn Clements wrote:

If you send me the tkInt.h for 8.0p5, I'll add it to NVIZ' collection
of tkInt.h files.

Unfortunately, it appears that this header isn't compatible with Tk
8.0p5. The header references the type Tk_SmoothMethod, which
(according to Tk's ChangeLog) was added on 1999-12-13, but 8.0p5 was
released on 1999-03-09. So, this appears to be a Debian-ism.

I'll revert the changes.

Ultimately, configure should check for a local tkInt.h file before
attempting to use any of the supplied version. However, that
presumably won't make it into pre4.

--
Glynn Clements <glynn.clements@virgin.net>