Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Problems running a packaged script.

by vitoco (Hermit)
on Feb 06, 2019 at 21:20 UTC ( [id://1229498]=note: print w/replies, xml ) Need Help??


in reply to Re: Problems running a packaged script.
in thread Problems running a packaged script.

I've just tried it, unsuccessfully! :-(

I had to install some missing modules to run this tool and lots of dependencies, including Wx!!!

As far as I could understand, this utility finishes after the EXE was created, but I didn't get any (at least in my working dir). Reviewing STDERR, I found that it finishes with the following line:

UH OH empty ARRAY(0x530b488) []  at C:\WorkingDir\ppsimple.pl line 131.

Checking STDOUT, I could see many DLLs as dependencies, but the expected "libexpat-1__.dll" was not between them. I couldn't identify other ones that should be forced to pp.

Did I do something wrong?

Replies are listed 'Best First'.
Re^3: Problems running a packaged script.
by swl (Parson) on Feb 07, 2019 at 00:59 UTC

      Wow! This time it worked!!! The EXE run on the server without perl environment.... Thank you!

      But... I wanted to know what was failing before, so I compared the new temp/par/cache dir with the one that aborted with the missing "new" error message, and... guess what? Only 3 missing DLLs: the same that I previously tried as an attempt and wrote about at the end of my original post (libcrypto-1_1-x64__.dll, zlib1__.dll and libssl-1_1-x64__.dll in addition to libexpat-1__.dll). And there was some missing files in the running EXE: two *.xs.dll and cacert.pm. Strange...

      And I also noticed that the *.pm files were of different size between cache dirs, and that was because I run pp_autolink.pl with the PAR_VERBATIM environment variable set.

      To have a better conclusion, I opened a new command prompt with standard settings and run original pp command linking those 4 DLL libs and made an EXE file, then run pp_autolink in the same session and made another EXE. I put both EXEs in the server and tried each of them, backing up and removing their respective new temp/par/cache dirs and compared them. Identical contents, except for the cacert.pem file. This was included in the EXE of the plain pp because I included it with "-a" in the command line. I did that (in a BAT file) because it was required at some point of the development of my script.

      So, why I couldn't run before posting this thread if I already tried adding those DLL? At this time I cannot say... I spent two days trying to generate a successfully running EXE by adding and removing things from the command line and updating my setups (both 32-bit and x64), and probably the right combination of components was met after I installed lots of non required modules while trying another alternatives like ppsimple. I didn't backup all the cache dirs, just removed them before each try in order to start a clean EXE. I came with this thread on the third day!

      Conclusion: to solve the missing "new" error on "LWP::Protocol::https::Socket" package, just include libcrypto-1_1-x64__.dll, zlib1__.dll and libssl-1_1-x64__.dll libraries in an up to date perl environment.

      Thanks to all!

      Ppsimple also doesnt depend on wx
        The version of ppsimple.pl that I found following the given search link required Wx::Perl::Packager, and Wx was installed by cpanm as a dependency of that module.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-25 17:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found