Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Perl5.26 installing Tk module manually

by Marshall (Canon)
on May 10, 2021 at 23:14 UTC ( #11132360=note: print w/replies, xml ) Need Help??

in reply to Perl5.26 installing Tk module manually

I am still running AS 5.24 so I haven't confronted the new procedures yet. On version 5.24, I have ppm and just used it to install the Tk package. That was easy to do.
With version 5.26, ppm disappears and the world changes!

The idea is that you create an account on the AS site. You then create a custom build with the packages that you need. AS will build the whole Perl installation for you - takes about 35 minutes. I looked at version 5.28 and Tk is already there. So you could just download and run the v5.28 .exe or the .msi file for that build. I would recommend if you upgrade that you uninstall your 5.26 first. In theory, just running the 5.28 msi on top of your 5.26 installation should "work". However, I would play safe and uninstall 5.26 first.

I looked at the 5.26 public build and it had Tkx, but not Tk. So I forked the public project and gave that branch a new name. then I added Tk 804.034 and committed the changes. That kicked off the build process. Its running right now, AS says they will email when my .exe and .msi files are ready for my custom named branch - will appear in my account for download.

So in theory, the custom 5.26 build that AS is making for me will include Tk. I had to manually install one package that was failing in the 5.24 build (I needed a dev version). So I am not inclined right now to upgrade to 5.26 or 5.28 and have to potentially confront an old problem once again.

So I am sorry that I can not give you a completely tested answer. However, from what I can tell, this new AS build procedure is working (its still running as we speak).

In the past, there were a set of tools where I could make a config file with all the modules that I had installed on my dev system. Then I give you this config file which you then apply to your base Perl installation and in theory "bingo" you have cloned my AS setup with all the modules that I have. I found some hiccups with that idea in practice. This new procedure is designed among other things to fix those problems. Also under the AS EULA, I couldn't just make a .zip file of my Perl file structure and give it to you. However, my understanding is that for a build that is done this way, I can re-distribute the AS built .msi file.

I didn't write down all the details of how to create an account, etc. I just clicked around and fumbled through the above procedure. I think this has a lot of promise. Give it a go and tell us how it works for you. In theory, you should get a working version out of this.

Update: I guess if we are getting nitpicky about this, I haven't told you how to install Tk manually - this is an xy problem. I am telling you do to y instead of x which you asked for.
Ok, now AS finished their work, I see my Fork named: ActivePerl-5.26tk branch with a file: ActivePerl- I can download that .msi or the .exe version or AS gives a Powershell command to do the installation. I don't know how to build a 32 bit version, but there is probably a way to do that if you need. PS: build took 36 minutes.

  • Comment on Re: Perl5.26 installing Tk module manually

Replies are listed 'Best First'.
Re^2: Perl5.26 installing Tk module manually
by syphilis (Bishop) on May 11, 2021 at 01:24 UTC
    I think this has a lot of promise.

    Are you saying that every time you decide to install a new module, you simply get AS to build a fresh perl distro that includes this module ?
    Having to wait over half an hour every time I want to install a new module is not something that I would describe as having much promise.

    Or do they just update your existing msi that's still sitting on their server, and then have you download that modified msi (which you can then install over the top) ?
    That wouldn't be so bad. It's a bit more wasteful than necessary, but then what isn't wasteful, these days ;-)

    Or something else ?

      Hi Rob!

      No, I am not saying that every new module installation requires a complete Perl rebuild.
      I think you can still do ">cpan install XXX".

      In this thread, I saw a question like: "unable to install Tk".
      AS (Active State) is saying that they can build a custom version that includes
      massive packages like Tk - and that this build process will work.
      If you can select the package(s) in their GUI, the build will succeed, meaning that all dependencies will be resolved.

      I don't think you have to do this for every package. Based upon the feedback so far, it appears that my AS 5.26 custom build with Tk DID WORK.
      That was the OP's question: asked and I think answered, albeit in an xy way!

        I think you can still do ">cpan install XXX".

        I meant to specify "a new XS module", but I left out the crucial "XS" :-(
        IIRC, there was no C toolchain provided with the AS perl distro that I tried some months ago, I couldn't quickly find out how to get hold of their somewhat ageing mingw-w64 port of gcc-4.6.3, and using one of the more recent gcc compilers (that I do have) failed for reasons that I can't now recall.
        (I thought I posted here about that experience, but I'm damned if I can find it and am therefore unable to provide more details about it.)
        Do they provide a means of grabbing a copy of their gcc-4.6.3 compiler ?

        Anyway ... if you have the time to try installing an XS module (eg cpan -i Math::LongDouble), I'd be interested to know how you get on.
        I'm not at all predisposed to rubbishing them, but my intermittent experiences with AS perl have been ones of dissatisfaction for quite a few years now.

Re^2: Perl5.26 installing Tk module manually
by vinoth.ree (Monsignor) on May 10, 2021 at 23:59 UTC
    Hi Marshall

    I was doing the same, instead of 5.26 I built 5.28 including Tk module, after install 5.28 and when using Tk mode I hit the handshake error, may be I can try your package, could you please share the package link, so I will download and try out?. Thanks in advance.

    All is well. I learn by answering your questions...
      Ok. Here is the URL to an MSI file with Perl 5.26 that includes Tk.

      I think that this is the public build (Oops)

      Uninstall any AS (Active State) builds. Reboot computer. Then run this MSI. Reboot computer.
      Windows LOVES to be rebooted. When I had a sun workstation, we rebooted it once per year during Christmas holidays.
      Make a .pl file:

      use strict; use warnings; use Tk;
      That should do nothing. And if it did nothing, then Tk got loaded. Then further testing can proceed with actual Tk statements.

      I seem to get different URLs from my AS account for the same download each time I do it. I'm not sure why that is. The above URL doesn't seem to be specific to my account on AS, so I think it is safe to post it.


        I am still getting the same handshake error

        Event.c: loadable library and perl binaries are mismatched (got handshake key 00000008000004B0, needed 0000000000000000)

        I have started a topic in the active state community,

        All is well. I learn by answering your questions...
        Hi Marshall

        I am not getting this handshake error in a perl script, and not in other scripts and I found the difference in the shebang line, when I use #!perl I get handshake error. When I use #!wperl I did n't get the handshake error it works fine as expected.

        All is well. I learn by answering your questions...
      I don't know what went wrong. But the public 5.28 build already included Tk. The 5.26 public build had Tkx but not Tk.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11132360]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2021-08-03 13:12 GMT
Find Nodes?
    Voting Booth?
    My primary motivation for participating at PerlMonks is: (Choices in context)

    Results (39 votes). Check out past polls.