В Sun, 8 Jun 2025 22:24:11 +0000
Wayne Oldford <rwoldf...@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

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to