Overview

Request 863091 accepted

- tclConfig.sh: Fix path names and avoid braces in TCL_PACKAGE_PATH
- Set TCL_LIBRARY at configure time for better consistency.

- New version: 8.6.11:
* Add tcltest::(Setup|Eval|Cleanup|)Test
* Update to Unicode-13
* Add 3 libtommath functions to stub table
* Many more bug fixes
- Potentially incompatible changes:
* (bug)[ffeb20] [binary decode base64] ignore invalid chars
* (bug)[b8e82d] some -maxlen values break uuencode round trip
* (bug)[085913] Tcl_DStringAppendElement # quoting precision
* (bug)[81242a] revised documentation for Tcl_UtfAtIndex()
* (bug)[ed2980] Tcl_UtfToUniChar reads > TCL_UTF_MAX bytes
* (bug)[a1bd37] [clock scan] new ISO format (clock-34.(19-24))
* (bug)[501974] [clock scan] +time zone (clock-34.(53-68))
* (new) force -eofchar \032 when evaluating library scripts
* (new)[48898a] improve error message consistency
* (new) revised case of module names

Loading...

Dominique Leuenberger's avatar

something is fishy here

old tcl version (currently in TW) vs new, diff of /usr/lib64/tclConfig.sh:

-TCL_PACKAGE_PATH='/usr/lib64 /usr/lib '
+TCL_PACKAGE_PATH='{/usr/lib64} {/usr/lib} '

That in turn causes quite some fancy issues in f.e brltty, which installs to {/usr/lib64} incl. the curly braces


Reinhard Max's avatar
author source maintainer

This change was intentional to allow directories in the path that contain space characters:

https://core.tcl-lang.org/tcl/info/6acb955a47696047

The content of this variable is meant to be a Tcl list and when it gets parsed as such the extra braces don't matter:

% set x {{/usr/lib64} {/usr/lib} }         
{/usr/lib64} {/usr/lib} 
% lindex $x 0
/usr/lib64
% lindex $x 1
/usr/lib

brltty instead parses it as a shell list, wich fails after the change.

I could try to get a patch upstream that produces the braces only when there actually is a space in a path, which will hopefully never happen on a Linux distro.


Dominique Leuenberger's avatar

The file is a *.sh, which, on first sight, makes sourcing it in shell scripts to be expected.

Thanks for looking into the matter


Reinhard Max's avatar
author source maintainer

Yes, the file is meant to be sourced by shell scripts. It defines a bunch of variables just like our sysconfig files. But that doesn't mean the values of those variables are meant to be parseable the way brltty does.

Anyway, I've just found a simple solution: When I set TCL_PACKAGE_PATH as an environment variable without braces before running the configure script, that value is being honored and no braces get added. As we know our paths contain no spaces, that's perfectly legal to do and turns the value back into a correct list for both worlds.


Dominique Leuenberger's avatar

Just to make sure I got this right: this is a fix you plan in the tcl package or something that should be done in the brltty package?


Reinhard Max's avatar
author source maintainer

The fix will bei in the tcl(-devel) package. But while being there I also noticed that the old path names in TCL_PACKAGE_PATH were wrong which I will fix along the way.

So, the new diff between tclConfig.sh from 8.6.10 and 8.6.11 will be:

-TCL_PACKAGE_PATH='/usr/lib64 /usr/lib '
+TCL_PACKAGE_PATH='/usr/lib64/tcl /usr/lib/tcl '

The brltty package contains a workaround to correct that invalid location, which will have to be removed to work with the fixed tcl package. There might be other packages that are affected by this in a similar way.

Request History
Reinhard Max's avatar

rmax created request

- tclConfig.sh: Fix path names and avoid braces in TCL_PACKAGE_PATH
- Set TCL_LIBRARY at configure time for better consistency.

- New version: 8.6.11:
* Add tcltest::(Setup|Eval|Cleanup|)Test
* Update to Unicode-13
* Add 3 libtommath functions to stub table
* Many more bug fixes
- Potentially incompatible changes:
* (bug)[ffeb20] [binary decode base64] ignore invalid chars
* (bug)[b8e82d] some -maxlen values break uuencode round trip
* (bug)[085913] Tcl_DStringAppendElement # quoting precision
* (bug)[81242a] revised documentation for Tcl_UtfAtIndex()
* (bug)[ed2980] Tcl_UtfToUniChar reads > TCL_UTF_MAX bytes
* (bug)[a1bd37] [clock scan] new ISO format (clock-34.(19-24))
* (bug)[501974] [clock scan] +time zone (clock-34.(53-68))
* (new) force -eofchar \032 when evaluating library scripts
* (new)[48898a] improve error message consistency
* (new) revised case of module names


Saul Goodman's avatar

licensedigger accepted review

ok


Factory Auto's avatar

factory-auto added opensuse-review-team as a reviewer

Please review sources


Factory Auto's avatar

factory-auto accepted review

Check script succeeded


Ismail Dönmez's avatar

namtrac accepted review


Dominique Leuenberger's avatar

dimstar_suse set openSUSE:Factory:Staging:A as a staging project

Being evaluated by staging project "openSUSE:Factory:Staging:A"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Picked "openSUSE:Factory:Staging:A"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Staging Project openSUSE:Factory:Staging:A got accepted.


Dominique Leuenberger's avatar

dimstar_suse approved review

Staging Project openSUSE:Factory:Staging:A got accepted.


Dominique Leuenberger's avatar

dimstar_suse accepted request

Staging Project openSUSE:Factory:Staging:A got accepted.

openSUSE Build Service is sponsored by