[GRASS-dev] v.digit: no toolbox if Grass 6.3 built with tcl/tk 8.3 [was Re: [GRASS-user] v.digit in GRASS 6.3.cvs problem]

Hi,

Ahmet has a point - current 6.3 CVS fails on my Ubuntu Dapper too
(Debian fork) if it's build with tcl/tk 8.3. If I build with 8.4 all
works OK.

Example with 8.3:

$ v.digit huha
ERROR: Cannot open toolbox:

And it is what happens - no v.digit toolbox.

Maciek

There has been a bug just reported about this:

http://intevation.de/rt/webrt?serial_num=5161

MAciek

Maciej Sieczka wrote:

There has been a bug just reported about this:
http://intevation.de/rt/webrt?serial_num=5161

Hi, just built 6.2.0rc1 with TclTk 8.3.

This is a problem in GRASS 6.2 as well.

G62> v.digit -n tmp_digit
New empty map created.
ERROR: Cannot open toolbox:

by adding some 'puts "got this far"' statements we can track it down..

it breaks in toolbox.tcl line 223:

labelframe .bpf -text [G_msg "mouse button actions (left, right, center)"] \
    -labelanchor n

that was added between rev 1.19 and 1.20:

http://freegis.org/cgi-bin/viewcvs.cgi/grass6/vector/v.digit/toolbox.tcl.diff?r1=1.19&r2=1.20

LabelFrame was added for 8.4, and thus won't work with 8.3.

Here's a work-around:
  http://wiki.tcl.tk/labelframe

or is there a simpler way to get rid of it?

grepping through the source, there's lableframe.tcl about:

$ grep -rI labelframe * | cut -f1 -d:
lib/gtcltk/options.tcl
lib/external/bwidget/pkgIndex.tcl
lib/external/bwidget/labelframe.tcl
lib/external/bwidget/labelframe.tcl
vector/v.digit/toolbox.tcl

Hamish

I believe that other things will break if you try to run gism with TclTk
8.3. I know that the georectifier uses a labelframe, and I'm pretty sure
that there are other items scattered here and there. Like I noted before,
8.4 has been out for many years, is widely available, and is near to being
replaced by 8.5. So I only have lukewarm concern for things that don't run
in 8.3. Life is too short and the GRASS team salaries aren't all that great
;-). If you want to track them down and find an old way to achieve this, I
guess that's OK. But I'm not sure it's worth it.

Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Hamish <hamish_nospam@yahoo.com>
Date: Thu, 28 Sep 2006 21:41:48 +1200
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass-dev@grass.itc.it>, <grassuser@grass.itc.it>, <temiz@deprem.gov.tr>,
<grass-bugs@lists.intevation.de>, <tutey@o2.pl>
Subject: Re: [GRASS-dev] [bug #5161] v.digit: no toolbox if Grass 6.3 built
with tcl/tk 8.3

Maciej Sieczka wrote:

There has been a bug just reported about this:
http://intevation.de/rt/webrt?serial_num=5161

Hi, just built 6.2.0rc1 with TclTk 8.3.

This is a problem in GRASS 6.2 as well.

G62> v.digit -n tmp_digit
New empty map created.
ERROR: Cannot open toolbox:

by adding some 'puts "got this far"' statements we can track it down..

it breaks in toolbox.tcl line 223:

labelframe .bpf -text [G_msg "mouse button actions (left, right, center)"] \
    -labelanchor n

that was added between rev 1.19 and 1.20:

FreeGIS.org?
r1=1.19&r2=1.20

LabelFrame was added for 8.4, and thus won't work with 8.3.

Here's a work-around:
  labelframe

or is there a simpler way to get rid of it?

grepping through the source, there's lableframe.tcl about:

$ grep -rI labelframe * | cut -f1 -d:
lib/gtcltk/options.tcl
lib/external/bwidget/pkgIndex.tcl
lib/external/bwidget/labelframe.tcl
lib/external/bwidget/labelframe.tcl
vector/v.digit/toolbox.tcl

Hamish

Michael Barton wrote:

I believe that other things will break if you try to run gism with
TclTk 8.3. I know that the georectifier uses a labelframe, and I'm
pretty sure that there are other items scattered here and there. Like
I noted before, 8.4 has been out for many years, is widely available,
and is near to being replaced by 8.5. So I only have lukewarm concern
for things that don't run in 8.3. Life is too short and the GRASS team
salaries aren't all that great ;-). If you want to track them down and
find an old way to achieve this, I guess that's OK. But I'm not sure
it's worth it.

For the sake of 1 lousy function call in v.digit, we should figure out a
way to keep GRASS compatible with TclTk 8.3. If a solution doesn't avail
itself soon I will revert the latest v.digit changes in the 6.2 branch
to make it so, even though I think your updates are really nice.

I didn't get an answer: will sourcing lib/external/bwidget/labelframe.tcl
solve the problem?

WRT gis.m, that's your baby & I'm not going to tell you what to do with
it (there's still d.m), but I will point out that many people are still
using 8.3 (as seen from recent bug reports) and we should go to some
active length to stay compatible with it. Not just when convenient, but
at some reasonable trouble.

There's some mantra which goes something like "just because it doesn't
affect me, doesn't mean it won't cause a world of trouble for someone
else." see also C99 vs. ANSI C vs. POSIX discussions.

best,
Hamish

ps - actually, it doesn't look bad at all:

grass63$ grep -riI labelframe * | cut -f1 -d: | sort | uniq
lib/external/bwidget/CHANGES.txt
lib/external/bwidget/CVS/Entries
lib/external/bwidget/README
lib/external/bwidget/combobox.tcl
lib/external/bwidget/font.tcl
lib/external/bwidget/labelentry.tcl
lib/external/bwidget/labelframe.tcl
lib/external/bwidget/pkgIndex.tcl
lib/external/bwidget/spinbox.tcl
lib/gtcltk/options.tcl
vector/v.digit/toolbox.tcl
visualization/nviz/src/tkInt8.4.9.h
visualization/nviz/src/tkInt8.4.h

bwidget stuff is all 4 years old and lib/gtcltk/options.tcl is a false
postive.

Hamish,

Bwidget LabelFrame (note capitalization) might work as a substitute. There
has to be some kind of bwidget sourcing to make it work. If it's just one
function call, it would be easy. But from past reports, it's not just one
call in nviz, but includes other things as well.

For me at least, it quite a bit of work to try and track down what has
changed since 8.4 was released 3.5 years ago and find some workaround for
each one. I'm not trying to be a pain, I just don't have time to do that,
fix current bugs, fulfill new wishes, and work on the new wxPython interface
too. I'm pretty much the only person doing this, and so have to draw the
line somewhere since I'm already overcommitted. And like the rest of the
developers, I do have a day job too that keeps me pretty busy. Sorry.

Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Hamish <hamish_nospam@yahoo.com>
Date: Fri, 29 Sep 2006 22:33:59 +1200
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass-dev@grass.itc.it>, <grass-bugs@lists.intevation.de>
Subject: Re: [GRASS-dev] [bug #5161] v.digit: no toolbox if Grass 6.3 built
with tcl/tk 8.3

Michael Barton wrote:

I believe that other things will break if you try to run gism with
TclTk 8.3. I know that the georectifier uses a labelframe, and I'm
pretty sure that there are other items scattered here and there. Like
I noted before, 8.4 has been out for many years, is widely available,
and is near to being replaced by 8.5. So I only have lukewarm concern
for things that don't run in 8.3. Life is too short and the GRASS team
salaries aren't all that great ;-). If you want to track them down and
find an old way to achieve this, I guess that's OK. But I'm not sure
it's worth it.

For the sake of 1 lousy function call in v.digit, we should figure out a
way to keep GRASS compatible with TclTk 8.3. If a solution doesn't avail
itself soon I will revert the latest v.digit changes in the 6.2 branch
to make it so, even though I think your updates are really nice.

I didn't get an answer: will sourcing lib/external/bwidget/labelframe.tcl
solve the problem?

WRT gis.m, that's your baby & I'm not going to tell you what to do with
it (there's still d.m), but I will point out that many people are still
using 8.3 (as seen from recent bug reports) and we should go to some
active length to stay compatible with it. Not just when convenient, but
at some reasonable trouble.

There's some mantra which goes something like "just because it doesn't
affect me, doesn't mean it won't cause a world of trouble for someone
else." see also C99 vs. ANSI C vs. POSIX discussions.

best,
Hamish

ps - actually, it doesn't look bad at all:

grass63$ grep -riI labelframe * | cut -f1 -d: | sort | uniq
lib/external/bwidget/CHANGES.txt
lib/external/bwidget/CVS/Entries
lib/external/bwidget/README
lib/external/bwidget/combobox.tcl
lib/external/bwidget/font.tcl
lib/external/bwidget/labelentry.tcl
lib/external/bwidget/labelframe.tcl
lib/external/bwidget/pkgIndex.tcl
lib/external/bwidget/spinbox.tcl
lib/gtcltk/options.tcl
vector/v.digit/toolbox.tcl
visualization/nviz/src/tkInt8.4.9.h
visualization/nviz/src/tkInt8.4.h

bwidget stuff is all 4 years old and lib/gtcltk/options.tcl is a false
postive.

Hi

I would lean towards Michael's attitude to drop 8.3 support and
reqquire 8.4. This will make things easier for devs, and will do no
harm for users. 8.4 is packaged as often as 8.3 is. As Michael says,
it's over 3 years old now and widely used.

Grass packaged by distros' maintainers will depend on 8.4. And the
configure script should yield an error if someone builds Grass from
source using 8.3.

Propably we will get occasional bug reports "I can't build with tcl/tk
8.3", but a pointer to requirements.html will do then.

It only has to be made clear and obvious - update the docs and build
procedure.

Thoughts?

Maciek

Hi,

unsure - in the result, I agree with dropping tcl/tk 8.3 support.

Best, Martin

2006/9/29, Maciej Sieczka <tutey@o2.pl>:

Hi

I would lean towards Michael's attitude to drop 8.3 support and
reqquire 8.4. This will make things easier for devs, and will do no
harm for users. 8.4 is packaged as often as 8.3 is. As Michael says,
it's over 3 years old now and widely used.

Grass packaged by distros' maintainers will depend on 8.4. And the
configure script should yield an error if someone builds Grass from
source using 8.3.

Propably we will get occasional bug reports "I can't build with tcl/tk
8.3", but a pointer to requirements.html will do then.

It only has to be made clear and obvious - update the docs and build
procedure.

Thoughts?

Maciek

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

--
Martin Landa <landa.martin@gmail.com> * http://gama.fsv.cvut.cz/~landa *

Hamish wrote:

> I believe that other things will break if you try to run gism with
> TclTk 8.3. I know that the georectifier uses a labelframe, and I'm
> pretty sure that there are other items scattered here and there. Like
> I noted before, 8.4 has been out for many years, is widely available,
> and is near to being replaced by 8.5. So I only have lukewarm concern
> for things that don't run in 8.3. Life is too short and the GRASS team
> salaries aren't all that great ;-). If you want to track them down and
> find an old way to achieve this, I guess that's OK. But I'm not sure
> it's worth it.

For the sake of 1 lousy function call in v.digit, we should figure out a
way to keep GRASS compatible with TclTk 8.3. If a solution doesn't avail
itself soon I will revert the latest v.digit changes in the 6.2 branch
to make it so, even though I think your updates are really nice.

I didn't get an answer: will sourcing lib/external/bwidget/labelframe.tcl
solve the problem?

WRT gis.m, that's your baby & I'm not going to tell you what to do with
it (there's still d.m), but I will point out that many people are still
using 8.3 (as seen from recent bug reports) and we should go to some
active length to stay compatible with it. Not just when convenient, but
at some reasonable trouble.

Does Tcl/Tk 8.4 work with NVIZ on all platforms yet?

--
Glynn Clements <glynn@gclements.plus.com>

Hamish wrote:

For the sake of 1 lousy function call in v.digit, we should figure out
a way to keep GRASS compatible with TclTk 8.3.

[if I knew more tcl I would have just fixed this instead of complaining
to all of you]

Michael Barton wrote:

Bwidget LabelFrame (note capitalization) might work as a substitute.
There has to be some kind of bwidget sourcing to make it work. If it's
just one function call, it would be easy. But from past reports, it's
not just one call in nviz, but includes other things as well.

For v.digit, it seems to be just that one line. (infact all of GRASS,
AFAIK)

labelframe is not used in NVIZ, and I'm not aware of any TclTk 8.3
problems with NVIZ (I've been away, could have missed something; were
your NVIZ beautification changes 8.3 incompatible and applied in CVS?).
NVIZ starts up of for me when built with 8.3 anyhow.

I think the other 8.3 incompatibilites that cropped up were fixed?

For me at least, it quite a bit of work to try and track down what has
changed since 8.4 was released 3.5 years ago and find some workaround
for each one. I'm not trying to be a pain, I just don't have time to
do that, fix current bugs, fulfill new wishes, and work on the new
wxPython interface too. I'm pretty much the only person doing this,
and so have to draw the line somewhere since I'm already
overcommitted. And like the rest of the developers, I do have a day
job too that keeps me pretty busy. Sorry.

Don't be sorry, you give what time you can, we all do. No one expects
you to know everything about all versions of Tcl, GRASS, etc., do all
the tcl programming, and audit all the tcl code. New code is committed
as best as we can write it, and if there's a problem the users let us
know soon enough ;). I didn't mean to be demanding of you, just the
code.

I agree that the sooner we move to wxPython the better. More exciting
development by lots more developers with less headaches. (I can hope)

Maciek:

I would lean towards Michael's attitude to drop 8.3 support and
reqquire 8.4. This will make things easier for devs, and will do no
harm for users.

I don't agree with the last statement, limiting choice always hurts
users. Who said they were using a modern Linux distro or are allowed to
upgrade the software already installed on their outfit's 4 yr old big
iron? Especially when it's a small matter to stay compatible.

It only has to be made clear and obvious - update the docs and build
procedure.

If the only thing in 6.2 that is 8.3 incompatible is the new gis.m geo-
rectifier, we can put something in the release notes and those users can
use i.points & friends instead. On the other side, v.digit is a core
module and there is no alternate route available (without going to
external software like qgis).

Glynn:

Does Tcl/Tk 8.4 work with NVIZ on all platforms yet?

On debian it seems to be better thanks to everyone's fixes.
The best answer I can give is "don't know, but I hope so."

Hamish

On Sun, Oct 01, 2006 at 08:19:56PM +1300, Hamish wrote:

Michael Barton wrote:
> Bwidget LabelFrame (note capitalization) might work as a substitute.
> There has to be some kind of bwidget sourcing to make it work. If it's
> just one function call, it would be easy. But from past reports, it's
> not just one call in nviz, but includes other things as well.

For v.digit, it seems to be just that one line. (infact all of GRASS,
AFAIK)

Please submit it to CVS, I would like to speed up with the 6.2.0
release (will be away for a while soon).

Markus