--- Jeff Hobbs <[EMAIL PROTECTED]> wrote:
> Hi Steve,
>
> Steve Madere wrote:
> > Have any of you developed a strategy to
> > package an application using Tcl::Tk
> > for deployment?
>
> You should give PDK 7 a try, just released in Beta:
>
> http://aspn.activestate.com/ASPN/Mail/Message/pdk/3351385
>
> It should "just work" for Tcl::Tk wrapping, as well as Tkx (which is like
> Tcl::Tk, with a slightly different, stripped down syntax for Tcl/Tk
> interaction).
>
> Jeff Hobbs, The Tk Guy, http://www.ActiveState.com/
>
Thanks for the pointer Jeff.
Unfortunately, for me (on a MacBook) it does not seem to
work.
I have built an extremely simple test script to show the
problem:
Here is the script:
#!/usr/bin/perl
# deploy_tcl_tk_test.pl
use Tcl::Tk;
my $mw = Tcl::Tk::MainWindow();
my $b = $mw->Button(-text=>'push me',
-command=>sub {print "Don't push me...\n";});
$b->pack(-fill=>'both', -expand=>1);
$mw->interp->MainLoop();
Here is the perlapp command I used and the error generated:
# nothing up my sleeve.....
$ echo 'PERL5LIB->' $PERL5LIB '<-PERL5LIB'
PERL5LIB-> <-PERL5LIB
$ /usr/local/PDK/bin/perlapp --norunlib --exe deploy_tcl_tk_test
deploy_tcl_tk_test.pl
Use of uninitialized value in string eq at
/</usr/local/PDK/bin/../lib/pdklib.dylib>ActiveState/Path.pm line 92.
Use of uninitialized value in pattern match (m//) at
/</usr/local/PDK/bin/../lib/pdklib.dylib>ActiveState/Path.pm line 93.
PerlApp 6.9.90 beta build 272361
Copyright (C) 1998-2006 ActiveState Software Inc. All rights reserved.
Beta license (Expires: 2007-02-01)
****************************************************************************
* WARNING: Applications generated by this evaluation copy of PerlApp will *
* stop working after the end of the evaluation period: 2007-02-01 *
****************************************************************************
auto/Tcl/Tcl.bundle:
error: Mismatch between perlapp (i386/ppc) and
/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Tcl/Tcl.bundle (i386).
Producing a Universal
Binary is not possible
refby: /Library/Perl/5.8.6/darwin-thread-multi-2level/Tcl.pm
file: /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Tcl/Tcl.bundle
Tclaux.pm:
error: Can't locate Tclaux.pm
refby: /Library/Perl/5.8.6/darwin-thread-multi-2level/Tcl.pm line 397
Tcl/Tk/Table.pm:
error: Can't locate Tcl/Tk/Table.pm
refby: /Library/Perl/5.8.6/Tcl/Tk.pm line 758
Unable to produce a Universal Binary! at
/</usr/local/PDK/bin/../lib/pdklib.dylib>PerlApp/Util.pm
line 317.
================================= END OF perlapp OUTPUT
======================================
BTW, I did confirm that perlapp properly builds this trivial app which does not
use Tcl::Tk :
#!/usr/bin/perl
# deploy_trivial.pl
use Data::Dumper;
my $thing = { a=>{apple=>'fruit',ant=>'insect',aardvark=>'mammal'},
b=>{banana=>'fruit',bomber=>'plane', bongo=>'drum'}
};
print Dumper($thing),"\n";#!/usr/bin/perl
use Tcl::Tk;
my $mw = Tcl::Tk::MainWindow();
my $b = $mw->Button(-text=>'push me',
-command=>sub {print "Don't push me...\n";});
$b->pack(-fill=>'both', -expand=>1);
$mw->interp->MainLoop();
#!/usr/bin/perl
use Data::Dumper;
my $thing = { a=>{apple=>'fruit',ant=>'insect',aardvark=>'mammal'},
b=>{banana=>'fruit',bomber=>'plane', bongo=>'drum'}
};
print Dumper($thing),"\n";