[R-pkg-devel] Tcl/Tk version difficulty building loon package on Unix ??
Ivan Krylov
|kry|ov @end|ng |rom d|@root@org
Mon Jun 9 13:45:35 CEST 2025
В Sun, 8 Jun 2025 22:24:11 +0000
Wayne Oldford <rwoldford using uwaterloo.ca> пишет:
> As I understand it, the problem appears to be that package testing
> under Unix uses an R built with Tcl/Tk version 9.0.1
<...>
> I think I have excised the version number 8.6 everywhere in the
> package and am only asking that the version >= 8.6.
> Nevertheless, the package cannot be installed under unix without
> error.
The failure happens on the Tcl side of the equation:
R> tcl('lappend', 'auto_path', 'loon/inst/tcl')
<Tcl> //zipfs:/lib/tcl/tcl_library //zipfs:/lib/tcl ./lib
REDACTED/tcl9.0.1/lib //zipfs:/lib/tk/tk_library
//zipfs:/lib/tk/tk_library/ttk REDACTED/library/tcltk/exec loon/inst/tcl
R> tcltk::.Tcl('package require loon')
Error in structure(.External(.C_dotTcl, ...), class = "tclObj") :
[tcl] can't read "tcl_platform(os)": no such variable.
Since other places in the code already use $::tcl_platform to access
the global variable, patching the two remaining uses lets the package
pass .onLoad:
--- loon_1.4.3.orig/loon/inst/tcl/loon/library/optionDatabase.tcl 2021-04-09 17:58:00.000000000 +0300
+++ loon_1.4.3/loon/inst/tcl/loon/library/optionDatabase.tcl 2025-06-09 14:05:18.000000000 +0300
@@ -126,7 +126,7 @@
## Mouse Meta mapping
- if {$tcl_platform(os) eq "Linux"} {
+ if {$::tcl_platform(os) eq "Linux"} {
# on my machine Option is always pressed if NumLock is on
set Options(metaKeys) {Command Shift Control Alt}
} else {
@@ -134,7 +134,7 @@
}
set Options(metaMulSel) Shift
- if {$tcl_platform(os) eq "Darwin"} {
+ if {$::tcl_platform(os) eq "Darwin"} {
set Options(metaTempMove) Control
} else {
set Options(metaTempMove) Control
--
Best regards,
Ivan
More information about the R-package-devel
mailing list