Hi,
Thanks to the TDK, I was able to release a Tcl-based software
from a Windows laptop and to create executables for Windows, Linux, Mac
(and also HP, Solaris and AIX, but no user asked for these platforms).
That was in March 2008.
I had recently several users who asked for Linux 64 bits releases
of my software.
Unfortunately, when I did the release, only 32 bits linux release of the
AS Tcl was available for free, and 64 bits releases was available only
in the "Enterprise" edition : I do not have it.
Can the linux 32 bits linux executable run on linux 64 bits systems ?
One user reported that it runs fine, another user reported problems
so I do not know what to tell to them.
Regards,
Michaël
PS
I noticed that the 64 bits linux release of AS Tcl is now
available on your website, thank you for that.
The next release of my software will be done based on up-to-date
AS Tcl sources but my question is still there for the current release.
Generally if the proper compat libraries are installed, 32-bit libraries should work on 64-bit systems. For tclapp'd executables, you will have a small C++ component (metakit) that really depends on the correct compat stuff being installed. These may be referred to as 'ia32-libs', 'libc-i686' and/or 'compat-libstdc++' depending on your system.
Thank you for that detailed answer.
Michaël
Greetings.
I have installed ActiveTcl 8.4.19.0 and Tcl Dev Kit 4.1.0 (trial license), I need to generate a executable of my script tcl.
I use tclsh and it works well, but, generating an executable from TclDevKit with the following command:
./tclapp -prefix /opt/ActiveTcl-8.4/bin/base-tcl-linux-ix86 -out /home/douglas/Software/Projects/TCL_TK/Ejecutables/moretest_zoomx5_netop /home/douglas/Software/Projects/TCL_TK/moretest_zoomx5_netop.tcl -pkg Expect -pkg http -pkg base64
At the moment I have the following files in C:\Tcl\bin:
base-tcl-linux-ix86
base-tcl-linux-ix86.so
moretest_zoomx5_netop.tcl is a script that use expect, base64 y http and below it is part of the code:
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}
#
# Script Active Tcl para configurar el modem del cliente
#
# Usa:
# tclsh como interprete
# tclapp herramienta para generar el ejecutable
#
#SCRIPT DE CONFIGURACIÓN DE MODEM MODELO ZOOM_5551
#VERSION: 1.1
package require Expect
package require base64 ;# tcllib
package require http
# Turn off echo logging to the user by default
exp_log_user 0
# We want to operate very simply - force a dumb terminal mode
set env(TERM) dumb
#set timeout 120
#SCRIPT DE CONFIGURACION DE MODEM HAYES ADSL DUO VIA HTTP
#DIRECCION IP DE ACCESO A MODEM
global puerto_acceso
#PASSWORD DE ACCESO A MODEM
global passwd_acceso
global headers
...
...
..
..
.
From gnome-terminal I get the following error message:
info Expanding...
info Following only profile dependencies
info P package http 2.5.5 tcl ...
info
info Issues...
error package 'Expect -is profile' is not known (Specified, Not recoverable)
error package 'base64 -is profile' is not known (Specified, Not recoverable)
error
error Aborting
error
Please help my to find a solution
My email is: bermudezdouglas@gmail.com
Hello Douglas.
TclApp searches (per the documentation) for the named packages in the following places and order:
1. the prefix file (if specified)
2. files specified explicitly in the Files tab
3. TEApot repositories configured for the project
4. TEApot repositories configured globally in the Preferences Dialog
5. a virtual repository containing only Tcl and Tk (if no prefix file is specified)
6. globally configured TAP search paths
Item 3 is controlled by the option -archive.
Item 4 and 5 are controlled by the preferences dialog you can reach via the menu Edit -> Preferences. Note that the data entered in this dialog is saved in the persistent configuration and also used when invoking TclApp via the command line.
Based on the description I believe that the settings for item 5 are either missing or incorrect. As otherwise TclApp should find the named packages in the .tap files provided by the ActiveTcl you have installed.
Therefore some questions:
(1) Where is ActiveTcl installed on your system?
(2) What TAP search paths are listed by the preferences dialog ?
... Oh ... When rereading your posting to check against my answer I noticed an inconsistency. You are saying that you have a 'base-tcl-linux-ix86' in the path 'C:/Tcl/bin'. I.e. a Linux basekit on a Windows box.
More questions ...
(3) Is that correct ?
(4) Are you possibly trying to cross-wrap a unix application from your windows machine ?
(5) May I further guess that your installed ActiveTcl is for Windows?
I use Ubuntu8.0.4
I use:
/opt/ActiveTcl-8.4/bin
base-tcl-linux-ix86
Ok, so you are definitely running only on Unix and not doing cross-wrapping.
Please tell me what the Edit -> Preferences dialog reports as TAP search paths.
Note: It seems that you created another posting (http://community.activestate.com/node/2656) with the same question as here. Do you want me to switch to that thread?
Thanks for the answers...
Dialog reports as TAP search paths:
/opt/TclDevKit-4.1/tap_help_repository
And the file 'tap_help_repository' is empty!!!
Ok.
First, you should put your ActiveTcl installation on the list of the path searched, i.e.
/opt/ActiveTcl-8.4/lib
and /opt/ActiveTcl-8.4/tcl8.4
This should cause TclApp to use the .tap files provided by ActiveTcl. This alone should fix your problem with the unresolved package references.
Normally TclDevKit will set these paths up on its during installation. Have you by chance installed TclDevKit first, and then ActiveTcl ? Because in that case TDK cannot set up these paths, and ActiveTcl will not.
Regarding the empty directory 'tap_help_repository', that is wrong, it should not be. Were there any messages during install pointing to problems in that area ?
What is the output of
tar tvfz /your/TclDevKit.tar.gz |grep tap_help
I have 33 files and dirs in the TDK tarball regarding the tap_help, and the installer simply copies them in place with all the other files, i.e. demos, applications, etc.
Another weirdness. The tap_help repository is not a system of .tap files, but an opaque teapot-repository. It should not be listed among the TAP search paths, but the 'Teapot Repository Search Paths', which is handled by the other/second panel in the preferences dialog.
I am a little confused...
I have installed ActiveTcl-8.4 in '/opt/ActiveTcl-8.4'
Once installed ActiveTcl-8.4, I have installed TclDevKit-4.1 in '/opt/TclDevKit-4.1'
I must return to install in /opt/ActiveTcl-8.4/lib
and /opt/ActiveTcl-8.4/tcl8.4
????????
I am not asking you to reinstall ActiveTcl.
I was asking you to add the two paths '/opt/ActiveTcl-8.4/lib' and '/opt/ActiveTcl-8.4/lib/tcl8.4' to the list of search paths in TclApp's dialog 'Edit -> Preferences', panel 'TAP Search Paths'.
Am I more clear now?
Thank you very much by the aid until now...
I added routes '/opt/ActiveTcl-8.4/lib' and '/opt/ActiveTcl-8.4/lib/tcl8.4' to the list of search paths in TclApp's dialog 'Edit -> Preferences', panel 'TAP Search Paths'.
and when I close the window and attempt to return open the program Tcl Dev Kit the data are lost...
Attempt to execute the command again:
./tclapp -prefix /opt/ActiveTcl-8.4/bin/base-tcl-linux-ix86 -out /home/douglas/Software/Projects/TCL_TK/Ejecutables/moretest_hayes_netop /home/douglas/Software/Projects/TCL_TK/moretest_hayes_netop.tcl -pkg Expect -pkg base64 -pkg http
and fails:
info | Tcl Dev Kit TclApp
info | Copyright (C) 2001-2008 ActiveState Software Inc. All rights reserved.
info | Trial license for Trial User.
info |
info | Embedding license information into wrap result as comments.
info |
info | Expires: 03-09-2008.
info |
info | WARNING: All applications generated by this trial version
info | will also stop working on 03-09-2008.
info Expanding...
info Following only profile dependencies
info P package http 2.5.5 tcl ...
info
info Issues...
error package 'Expect -is profile' is not known (Specified, Not recoverable)
error package 'base64 -is profile' is not known (Specified, Not recoverable)
error
error Aborting
error
root@douglas-laptop:/opt/TclDevKit-4.1/bin#
When you say '... closing the window', you are talking about closing the dialog, yes ?
And when you are reopening it the paths are missing ?
The application was not closed in the interim ?
How are you closing the dialog ?
(I am hoping to gain an understanding of the exact steps you performed. For example, there are 3 different ways to close the dialog and your description doesn't tell me which way you used).
I talked about to that I close the dialogue and the window of the TclDevKit and when I try to return to execute tclapp it loses the routes that I placed in Edit->Preferences-> TAP Search Parths..
how to make these changes permanent?, because I execute the command again and it returns to fail...
root@douglas-laptop:/opt/TclDevKit-4.1/bin#./tclapp -prefix /opt/ActiveTcl-8.4/bin/base-tcl-linux-ix86 -out /home/douglas/Software/Projects/TCL_TK/Ejecutables/moretest_hayes_netop /home/douglas/Software/Projects/TCL_TK/moretest_hayes_netop.tcl -pkg Expect -pkg base64 -pkg http
info | Tcl Dev Kit TclApp
info | Copyright (C) 2001-2008 ActiveState Software Inc. All rights reserved.
info | Trial license for Trial User.
info |
info | Embedding license information into wrap result as comments.
info |
info | Expires: 03-09-2008.
info |
info | WARNING: All applications generated by this trial version
info | will also stop working on 03-09-2008.
info Expanding...
info Following only profile dependencies
info P package http 2.5.5 tcl ...
info
info Issues...
error package 'Expect -is profile' is not known (Specified, Not recoverable)
error package 'base64 -is profile' is not known (Specified, Not recoverable)
error
error Aborting
error
root@douglas-laptop:/opt/TclDevKit-4.1/bin#
Douglas, how are you closing the dialog ?
Are you clicking on the button labeled 'X' (top-right corner of window) ?
Are you clicking on the button labeled 'Cancel' ?
Are you clicking on the button labeled 'Ok' ?
Each of these three actions will close the dialog.
Only one of them will save the data, by design.
Namely, clicking on 'Ok'.
It is difficult to impossible to help if I do not get the details needed, just generic descriptions.
Greetings...
I close the dialogue doing click on the 'OK'.
Attempt to execute tclapp again and the data are lost...
Thank you. That gives me something to work with, as this should not be happening. ... time passes ... Back, and having investigated this a bit. I was able to reproduce your problem if the file we use to store the preferences is not writable.
Please have a look at the file
"$HOME/.Tcl Dev Kit/4.1/GlobalDefault".NOTE: The filename has spaces in it. You will have to double-quotes as above, or write
$HOME/.Tcl\ Dev\ Kit/4.1/GlobalDefaulton the command line to quote just the spaces.Is the ownership of that file correct?
(You should be owner)
Do you have permissions to write the file?
If TclApp cannot write to this file it silently discards any changes to the preferences :(
This last is arguably a bug and I will work on fixing it, i.e. have it pop up an error dialog reporting the trouble. Should you wish to please feel free to enter a report at http://bugs.activestate.com/ about this.
thanks.
TclDevKit I installed like user root. I can read it to the file like root.
The file contains the following thing:
prefixList {}
checkerDefaults {}
pkgSearchPathMRUList {}
pkgRepositoryList /opt/TclDevKit-4.1/tap_help_repository
iconPath /opt/TclDevKit-4.1/bin
architecturesMRUList {
tcl
aix-powerpc
hpux-parisc
linux-glibc2.2-ix86
solaris2.10-ix86
solaris2.6-sparc
macosx-universal
win32-ix86
}
interpPath /opt/TclDevKit-4.1/bin
pkgSearchPathList {}
pkgRepositoryMRUList http://teapot.activestate.com
prefixPath /opt/TclDevKit-4.1/bin
defaultArchitectures linux-glibc2.7-ix86
iconList {}
interpList {}
That to do with this?
Hm.
So, you installed ActiveTcl and TclDevKit as user 'root', right?
However when you are using it now, you are 'douglas' (or whatever your own login is). Right again ?
When TclApp looks for the preferences it looks into the home directory of the account you are using, not the home directory of the account you used for installation.
Showing me the contents of the file does not help me. It only confirms what we know already, that the data was not saved. It also confirms that you found this file somewhere. I am guessing that this somewhere was the location I gave you, with '~' being your own home directory. what I have to know are the permissions given to this file, and the owner/group settings of the file.
So, what are the results of running the command below ?
My interpretation of your sentence
is that the file can be read if you are the root-user. That doesn't tell us much as the root-user can read everything.
Side note: I do not seem to get notifications from the web forum for every response you are making, only for some. What do you think about a switch to direct communication by email ? Would that be more convenient for you ?
Thanks.
I installed the TclDevKit like user root.
If TclApp looks for the preferences into the home directory of my account and not the home directory of the account used for installation, by the content of the file GlobalDefault is the same.
This it is the content of the file:(in /home/douglas/.Tcl Dev Kit/4.1) not like user root.
douglas@douglas-laptop:~/.Tcl Dev Kit/4.1$ gedit GlobalDefault
prefixList {}
checkerDefaults {}
pkgSearchPathMRUList {}
pkgRepositoryList /opt/TclDevKit-4.1/tap_help_repository
iconPath /opt/TclDevKit-4.1/bin
architecturesMRUList {
tcl
aix-powerpc
hpux-parisc
linux-glibc2.2-ix86
solaris2.10-ix86
solaris2.6-sparc
macosx-universal
win32-ix86
}
interpPath /opt/TclDevKit-4.1/bin
pkgSearchPathList {}
pkgRepositoryMRUList http://teapot.activestate.com
prefixPath /opt/TclDevKit-4.1/bin
defaultArchitectures linux-glibc2.7-ix86
iconList {}
interpList {}
Executing the command:
douglas@douglas-laptop:~/.Tcl Dev Kit/4.1$ ls -l GlobalDefault
-rw-r--r-- 1 root root 538 2008-08-18 10:09 GlobalDefault
It seems better to discuss it to me by mail, I remember my mail to you bermudezdouglas@gmail.com or bermudezdouglas@hotmail.com for msn to messenger