Error after update piaware_1.17 tclx.tcl

Hey guys,

after updating my pi to piaware_1.17 i get the following error message:


 piaware-status
application-specific initialization failed: Can't find a usable tclx.tcl in the following directories:
    /usr/share/tcltk/tcl8.5/tclx8.4 /usr/lib/tclx8.4 /usr/local/lib/tcltk/tclx8.4 /usr/local/share/tcltk/tclx8.4 /usr/lib/tcltk/tclx8.4 /usr/share/tcltk/tclx8.4 /usr/share/tcltk/tcllib1.14/tclx8.4 /lib/tclx8.4 /usr/library

/usr/lib/tclx8.4/tclx.tcl: can't read "recurse": no such variable
can't read "recurse": no such variable
    while executing
"lempty $recurse"
    invoked from within
"if ![lempty $recurse] {

        return [for_recursive_glob $var $recurse $globlist $cmd \
                    [expr $depth + 1]]
    }"
    (file "/usr/lib/tclx8.4/globrecur.tcl" line 85)
    invoked from within
"source /usr/lib/tclx8.4/globrecur.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 [list source [file join $dir $file]]"
    ("foreach" body line 3)
    invoked from within
"foreach file [array names libfiles] {
        if {$libfiles($file)} {
            uplevel \#0 [list source [file join $dir $file]]
        }
    }"
    (in namespace eval "::tclx" script line 36)
    invoked from within
"namespace eval ::tclx {
    global auto_path auto_index tclx_library
    if {[info exists tclx_library] && [string length $tclx_library]} {
        set auto_..."
    (file "/usr/lib/tclx8.4/tclx.tcl" line 7)
    invoked from within
"source /usr/lib/tclx8.4/tclx.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $file]"


This probably means that tclx wasn't installed properly.

Can't find a usable tclx.tcl in the following directories:
    /usr/share/tcltk/tcl8.5/tclx8.4 /usr/lib/tclx8.4 /usr/local/lib/tcltk/tclx8.4 /usr/local/share/tcltk/tclx8.4 /usr/lib/tcltk/tclx8.4 /usr/share/tcltk/tclx8.4 /usr/share/tcltk/tcllib1.14/tclx8.4 /usr/lib/tclx8.4/tclx8.4 /lib/tclx8.4 /usr/library

/usr/lib/tclx8.4/tclx.tcl: can't read "recurse": no such variable
can't read "recurse": no such variable
    while executing
"lempty $recurse"
    invoked from within
"if ![lempty $recurse] {
        return [for_recursive_glob $var $recurse $globlist $cmd \
                    [expr $depth + 1]]
    }"
    (file "/usr/lib/tclx8.4/globrecur.tcl" line 85)
    invoked from within
"source /usr/lib/tclx8.4/globrecur.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 [list source [file join $dir $file]]"
    ("foreach" body line 3)
    invoked from within
"foreach file [array names libfiles] {
        if {$libfiles($file)} {
            uplevel \#0 [list source [file join $dir $file]]
        }
    }"
    (in namespace eval "::tclx" script line 36)
    invoked from within
"namespace eval ::tclx {
    global auto_path auto_index tclx_library
    if {[info exists tclx_library] && [string length $tclx_library]} {
        set auto_..."
    (file "/usr/lib/tclx8.4/tclx.tcl" line 7)
    invoked from within
"source /usr/lib/tclx8.4/tclx.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $file]"


This probably means that tclx wasn't installed properly.

    while executing
"error $msg"
    (procedure "tcl_findLibrary" line 108)
    invoked from within
"tcl_findLibrary tclx 8.4 8.4.0 tclx.tcl TCLX_LIBRARY tclx_library"
    (procedure "::tclx::Init" line 3)
    invoked from within
"::tclx::Init"
    (in TclX_Init)
    invoked from within
"load /usr/lib/libtclx8.4.so.0 Tclx"
    ("package ifneeded Tclx 8.4" script)
    invoked from within
"package require Tclx"
    (file "/usr/lib/Tcllauncher1.5/tcllauncher.tcl" line 5)


any tips?

Does this fix it:



sudo apt-get install -fy


Got the following error after updating:


11/17/2014 18:15:37 ****************************************************
11/17/2014 18:15:37 piaware version 1.17 is running, process ID 17834
11/17/2014 18:15:37 your system info is: Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
11/17/2014 18:15:38 connecting to FlightAware eyes.flightaware.com/1200
11/17/2014 18:15:44 FlightAware server SSL certificate validated
11/17/2014 18:15:44 encrypted session established with FlightAware
invalid command name "parse_mac_address_from_line"
    while executing
"parse_mac_address_from_line $line"
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address" body line 20)
    invoked from within
"get_mac_address"
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address_or_quit" body line 2)
    invoked from within
"get_mac_address_or_quit"
    (object "::adept" method "::fa_adept::AdeptClient::login" body line 24)
    invoked from within
"login"
    (object "::adept" method "::fa_adept::AdeptClient::connect" body line 59)
    invoked from within
"adept connect"
    (procedure "main" line 80)
    invoked from within
"main $argv"
    invoked from within
"if {!$tcl_interactive} {
    main $argv
}"
    (file "/usr/lib/piaware/main.tcl" line 123)
    invoked from within
"source /usr/lib/piaware/main.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source $path"
    from tcllauncher running "piaware -p /var/run/piaware.pid"


I’m running a Raspberry Pi Typ A with a WLAN-Stick.

Thx. But first I had to uninstall tclx8.4.
Now, everything is fine. :slight_smile:

OK I’ve replicated the problem and should have a new package that fixes it up within the next few hours. -karl

After updating to 1.17-2 I get the following:


11/18/2014 16:27:30 ****************************************************
11/18/2014 16:27:30 piaware version 1.17 is running, process ID 26037
11/18/2014 16:27:30 your system info is: Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
11/18/2014 16:27:30 connecting to FlightAware eyes.flightaware.com/1200
11/18/2014 16:27:36 FlightAware server SSL certificate validated
11/18/2014 16:27:36 encrypted session established with FlightAware
11/18/2014 16:27:36 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:36 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:36 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'
11/18/2014 16:27:37 no eth0 device, using 74:da:38:00:5f:0c from device 'wlan0'

....

too many nested evaluations (infinite loop?)
    (procedure "::tcl::clock::format" line 4)
    invoked from within
"clock format [clock seconds] -format "%D %T" -gmt 1"
    (procedure "log_locally" line 3)
    invoked from within
"log_locally $text"
    (procedure "::logger" line 3)
    invoked from within
"::logger $text"
    (object "::adept" method "::fa_adept::AdeptClient::logger" body line 3)
    invoked from within
"logger "no eth0 device, using $mac from device '$device'""
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address" body line 25)
    invoked from within
"get_mac_address"
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address_or_quit" body line 2)
    invoked from within
"get_mac_address_or_quit"
    (object "::adept" method "::fa_adept::AdeptClient::send_log_message" body line 8)
    invoked from within
"adept send_log_message $text"
    (procedure "::logger" line 4)
    invoked from within
"::logger $text"
    (object "::adept" method "::fa_adept::AdeptClient::logger" body line 3)
    invoked from within
"logger "no eth0 device, using $mac from device '$device'""
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address" body line 25)
    invoked from within
"get_mac_address"
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address_or_quit" body line 2)
    invoked from within
"get_mac_address_or_quit"
    (object "::adept" method "::fa_adept::AdeptClient::send_log_message" body line 8)
    invoked from within
"adept send_log_message $text"
    (procedure "::logger" line 4)
    invoked from within
"::logger $text"
    (object "::adept" method "::fa_adept::AdeptClient::logger" body line 3)
    invoked from within
"logger "no eth0 device, using $mac from device '$device'""
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address" body line 25)
    invoked from within
"get_mac_address"
    (object "::adept" method "::fa_adept::AdeptClient::get_mac_address_or_quit" body line 2)
    invoked from within
"get_mac_address_or_quit"
    (object "::adept" method "::fa_adept::AdeptClient::send_log_message" body line 8)
    invoked from within
"adept send_log_message $text"
    (procedure "::logger" line 4)


Sorry we don’t have a Model A to test with…will fix this in the next version.

Figured it out. For the brave, edit /usr/lib/fa_adept_packages/fa_adept_client.tcl and change logger to log_locally at line 867. Otherwise we’ll release a new version soon. I had correctly fixed the problem for the Model A and A+ except a last minute change I made (changing from puts to logger) that didn’t get tested. Boo!

1.17-3 will have a minor performance improvement in this area as well.

Line 867 is the end of the file in the version of 17-2 I pulled… maybe some context to help find where the edit you suggest can be found?

I was going to do this but the unedited 1.17-2 seems to be running fine for me…