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
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
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.
The file is a *.sh, which, on first sight, makes sourcing it in shell scripts to be expected.
Thanks for looking into the matter
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.
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?
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
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
licensedigger accepted review
ok
factory-auto added opensuse-review-team as a reviewer
Please review sources
factory-auto accepted review
Check script succeeded
namtrac accepted review
dimstar_suse set openSUSE:Factory:Staging:A as a staging project
Being evaluated by staging project "openSUSE:Factory:Staging:A"
dimstar_suse accepted review
Picked "openSUSE:Factory:Staging:A"
dimstar_suse accepted review
Staging Project openSUSE:Factory:Staging:A got accepted.
dimstar_suse approved review
Staging Project openSUSE:Factory:Staging:A got accepted.
dimstar_suse accepted request
Staging Project openSUSE:Factory:Staging:A got accepted.