Discussion:
Par Doesn't Work - Incompatible Versions
(too old to reply)
Mike Flannigan
2014-09-29 01:57:34 UTC
Permalink
I've been using par for years and it has generally
worked. Recently I upgraded Perl from 5.8 to 5.16.3
Then I installed Par and Par-Packer. That included
5 packages:

Par
Par-Packer
Getopt-ArgvFile
Parse-Binary
Win32-Exe

Now when I run par the usual way:
pp -o script.exe script.pl

I get:

Set up gcc environment - gcc.exe (rubenvb-4.5.4) 4.5.4
Perl lib version (5.16.3) doesn't match executable
'C:\Users\MIKE-M~1\AppData\Local\Temp\parlof0p.exe' version (v5.16.0) at
C:/Perl64/lib/Config.pm line 60.
Compilation failed in require at C:/Perl64/lib/Errno.pm line 8.
BEGIN failed--compilation aborted at C:/Perl64/lib/Errno.pm line 8.
Compilation failed in require at C:/Perl64/lib/File/Temp.pm line 148.
BEGIN failed--compilation aborted at C:/Perl64/lib/File/Temp.pm line 148.
Compilation failed in require at C:/Perl64/lib/Archive/Zip.pm line 14.
BEGIN failed--compilation aborted at C:/Perl64/lib/Archive/Zip.pm line 14.
Compilation failed in require at -e line 459.
C:\Perl64\site\bin\pp.bat: Failed to extract a parl from
'PAR::StrippedPARL::Static' to file
'C:\Users\MIKE-M~1\AppData\Local\Temp\parlfE7cNri.exe' at C:/Perl64
/site/lib/PAR/Packer.pm line 1169, <DATA> line 1.

I am using Windows7 64 bit - 64 bit Activestate Perl install.
I used Activestate ppm to install Par and Par-Packer. I see
no errors in the Status log.

If anybody has any recommendations on how to fix this
I would like to hear them.

Yeah, I know - Activestate does not have a lot of incentive
to fix this since they try to sell their development package.

I do not need to get this fixed, but it would be nice to
have Par capability back.

Thank you.


Mike
Roderich Schupp
2014-09-29 08:37:07 UTC
Permalink
Post by Mike Flannigan
Perl lib version (5.16.3) doesn't match executable
'C:\Users\MIKE-M~1\AppData\Local\Temp\parlof0p.exe' version (v5.16.0) at
C:/Perl64/lib/Config.pm line 60.
...

That means that PAR::Packer was built with another version of perl than the
one you have installed.
(PAR::Packer is very perculiar in this aspect - other modules will
generally work when built with different minor versions
of the same major version of perl.)

I am using Windows7 64 bit - 64 bit Activestate Perl install.
Post by Mike Flannigan
I used Activestate ppm to install Par and Par-Packer. I see
no errors in the Status log.
Rebuild PAR::Packer yourself.

Cheers, Roderich
Mike Flannigan
2014-09-29 11:22:26 UTC
Permalink
Post by Roderich Schupp
That means that PAR::Packer was built with another version of perl
than the one you have installed.
(PAR::Packer is very perculiar in this aspect - other modules will
generally work when built with different minor versions
of the same major version of perl.)
Rebuild PAR::Packer yourself.
Cheers, Roderich
Thank you. I may do that, but I hear it is not easy.
http://stackoverflow.com/questions/7352572/manual-installation-of-perl-modules-in-windows

I would also like to add Univ winnipeg Theoryx PPM Repository.
http://www.powershelladmin.com/wiki/University_of_Winnipeg%27s_Theoryx_ppm_repository_for_ActivePerl
but it wouldn't work when I did
ppm repo add Theoryx http://cpan.uwinnipeg.ca/PPMPackages/16xx/

Perhaps I should do
ppm repo add Theoryx http://cpan.uwinnipeg.ca/PPMPackages/14xx/

I purposely do not upgrade my software versions, but I was
pretty much forced to abandon Perl 5.8
I was surprised it went as well as it did.



Mike
Roderich Schupp
2014-09-29 11:24:33 UTC
Permalink
Post by Mike Flannigan
Thank you. I may do that, but I hear it is not easy.
http://stackoverflow.com/questions/7352572/manual-
installation-of-perl-modules-in-windows
That's BS. Your mail shows that you already have gcc installed (and all the
prerequisites, too), so it's just

cpan PAR::Packer

(If you have never run "cpan" before, it will ask you some questions, the
defaults should usually work.)
Be advised that the self-test may take several minutes, esp. on slow disks
or network shares.

Other ppm repos might have the same problem as ActiveState's.

Cheers, Roderich
Mike Flannigan
2014-09-29 12:11:18 UTC
Permalink
Post by Roderich Schupp
That's BS. Your mail shows that you already have gcc installed (and
all the prerequisites, too), so it's just
cpan PAR::Packer
(If you have never run "cpan" before, it will ask you some questions,
the defaults should usually work.)
Be advised that the self-test may take several minutes, esp. on slow
disks or network shares.
Other ppm repos might have the same problem as ActiveState's.
Cheers, Roderich
Thanks a bunch. It sure looked like it was going to work,
but it had a dmake.exe problem. I ran "cpan PAR::Packer" twice
and both times is came up with an error window:

par.exe has stopped working
Windows can check online for a solution to the problem . . .

I clicked on "Close the Program", not find a solution online.


Then it continued writing to the shell for a while and quit.


The 1st time I ran it I defaulted both questions to the default -
install permanently.

The output from the 2nd time I ran it is listed below.
I have the last part of the output from the 1st time I ran it
if anybody wants that, but it appears to end just like the
2nd run. It did get through "All tests successful.", installed
more PM's, did more testing, etc.

I'm willing to jump through some hoops to get this, but
like I said I luckily don't need to fix this right now.
I'm going to move to Linux in the future, but probably
not real soon.



Shell Output:

PS C:\Perl64\00MikeF> cpan PAR::Packer
Set up gcc environment - gcc.exe (rubenvb-4.5.4) 4.5.4
CPAN: Term::ANSIColor loaded ok (v4.02)
CPAN: Storable loaded ok (v2.34)
Reading 'C:\Perl64\cpan\Metadata'
Database was generated on Sun, 28 Sep 2014 09:53:22 GMT
Running install for module 'PAR::Packer'
Running make for R/RS/RSCHUPP/PAR-Packer-1.022.tar.gz
CPAN: Digest::SHA loaded ok (v5.84)
CPAN: Compress::Zlib loaded ok (v2.06)
Checksum for
C:\Perl64\cpan\sources\authors\id\R\RS\RSCHUPP\PAR-Packer-1.022.tar
.gz ok
CPAN: Archive::Tar loaded ok (v1.90)
PAR-Packer-1.022/
PAR-Packer-1.022/myldr/
PAR-Packer-1.022/myldr/run_with_inc.pl
PAR-Packer-1.022/myldr/encode_append.pl
PAR-Packer-1.022/myldr/Dynamic.in
PAR-Packer-1.022/myldr/sha1.c.PL
PAR-Packer-1.022/myldr/boot.c
PAR-Packer-1.022/myldr/winres/
PAR-Packer-1.022/myldr/winres/pp.ico
PAR-Packer-1.022/myldr/winres/pp.rc
PAR-Packer-1.022/myldr/winres/pp.manifest
PAR-Packer-1.022/myldr/Makefile.PL
PAR-Packer-1.022/myldr/env.c
PAR-Packer-1.022/myldr/internals.c
PAR-Packer-1.022/myldr/main.c
PAR-Packer-1.022/myldr/file2c.pl
PAR-Packer-1.022/myldr/usernamefrompwuid.c
PAR-Packer-1.022/myldr/par_pl2c.pl
PAR-Packer-1.022/myldr/mktmpdir.h
PAR-Packer-1.022/myldr/utils.c
PAR-Packer-1.022/myldr/mktmpdir.c
PAR-Packer-1.022/myldr/Static.in
PAR-Packer-1.022/MANIFEST.SKIP
PAR-Packer-1.022/contrib/
PAR-Packer-1.022/contrib/stdio/
PAR-Packer-1.022/contrib/stdio/Stdio_readme.txt
PAR-Packer-1.022/contrib/stdio/Stdio.pm
PAR-Packer-1.022/contrib/gui_pp/
PAR-Packer-1.022/contrib/gui_pp/gpp_readme.txt
PAR-Packer-1.022/contrib/gui_pp/gpp
PAR-Packer-1.022/contrib/pare/
PAR-Packer-1.022/contrib/pare/pare_readme.txt
PAR-Packer-1.022/contrib/pare/pare
PAR-Packer-1.022/contrib/procedural_pp/
PAR-Packer-1.022/contrib/procedural_pp/pp_old
PAR-Packer-1.022/contrib/automated_pp_test/
PAR-Packer-1.022/contrib/automated_pp_test/automated_pp_test.pl
PAR-Packer-1.022/contrib/automated_pp_test/hello_tk.pl
PAR-Packer-1.022/contrib/automated_pp_test/hi.ico
PAR-Packer-1.022/contrib/automated_pp_test/pipe_a_command.pm
PAR-Packer-1.022/contrib/automated_pp_test/prior_to_test.pm
PAR-Packer-1.022/contrib/automated_pp_test/remove_file_and_try_executable_again.
pm
PAR-Packer-1.022/contrib/automated_pp_test/test_in_further_subdir.pm
PAR-Packer-1.022/contrib/extract_embedded/
PAR-Packer-1.022/contrib/extract_embedded/extract-embedded.pl
PAR-Packer-1.022/contrib/docs/
PAR-Packer-1.022/contrib/docs/where_is_it.txt
PAR-Packer-1.022/contrib/docs/who_am_i.txt
PAR-Packer-1.022/inc/
PAR-Packer-1.022/inc/Module/
PAR-Packer-1.022/inc/Module/Install.pm
PAR-Packer-1.022/inc/Module/Install/
PAR-Packer-1.022/inc/Module/Install/Win32.pm
PAR-Packer-1.022/inc/Module/Install/Makefile.pm
PAR-Packer-1.022/inc/Module/Install/WriteAll.pm
PAR-Packer-1.022/inc/Module/Install/PAR.pm
PAR-Packer-1.022/inc/Module/Install/Fetch.pm
PAR-Packer-1.022/inc/Module/Install/Include.pm
PAR-Packer-1.022/inc/Module/Install/Metadata.pm
PAR-Packer-1.022/inc/Module/Install/Can.pm
PAR-Packer-1.022/inc/Module/Install/Base.pm
PAR-Packer-1.022/script/
PAR-Packer-1.022/script/pp
PAR-Packer-1.022/script/par.pl
PAR-Packer-1.022/script/tkpp
PAR-Packer-1.022/script/parl.pod
PAR-Packer-1.022/t/
PAR-Packer-1.022/t/20-pp.t
PAR-Packer-1.022/t/30-current_exec.t
PAR-Packer-1.022/t/00-pod.t
PAR-Packer-1.022/t/test-proc
PAR-Packer-1.022/t/40-packer_cd_option.t
PAR-Packer-1.022/t/90-rt59710.t
PAR-Packer-1.022/t/10-parl-generation.t
PAR-Packer-1.022/Makefile.PL
PAR-Packer-1.022/package/
PAR-Packer-1.022/package/parl.nsi
PAR-Packer-1.022/ChangeLog
PAR-Packer-1.022/lib/
PAR-Packer-1.022/lib/PAR/
PAR-Packer-1.022/lib/PAR/Packer.pm
PAR-Packer-1.022/lib/PAR/StrippedPARL/
PAR-Packer-1.022/lib/PAR/StrippedPARL/Base.pm
PAR-Packer-1.022/lib/PAR/Filter/
PAR-Packer-1.022/lib/PAR/Filter/PodStrip.pm
PAR-Packer-1.022/lib/PAR/Filter/Bleach.pm
PAR-Packer-1.022/lib/PAR/Filter/PatchContent.pm
PAR-Packer-1.022/lib/PAR/Filter/Bytecode.pm
PAR-Packer-1.022/lib/PAR/Filter/Obfuscate.pm
PAR-Packer-1.022/lib/PAR/Filter.pm
PAR-Packer-1.022/lib/pp.pm
PAR-Packer-1.022/lib/App/
PAR-Packer-1.022/lib/App/Packer/
PAR-Packer-1.022/lib/App/Packer/PAR.pm
PAR-Packer-1.022/TODO
PAR-Packer-1.022/MANIFEST
PAR-Packer-1.022/README
PAR-Packer-1.022/AUTHORS
PAR-Packer-1.022/META.yml
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.4405)
CPAN: CPAN::Meta loaded ok (v2.120921)
CPAN: Module::CoreList loaded ok (v2.80)

CPAN.pm: Building R/RS/RSCHUPP/PAR-Packer-1.022.tar.gz

Set up gcc environment - gcc.exe (rubenvb-4.5.4) 4.5.4
Checking if your kit is complete...
Looks good
Prototype mismatch: sub main::prompt: none vs ($;$) at
C:/Perl64/site/lib/ExtUti
ls/MakeMaker.pm line 221.
Warning (mostly harmless): No library found for -lkernel32
Warning (mostly harmless): No library found for -luser32
Warning (mostly harmless): No library found for -lgdi32
Warning (mostly harmless): No library found for -lwinspool
Warning (mostly harmless): No library found for -lcomdlg32
Warning (mostly harmless): No library found for -ladvapi32
Warning (mostly harmless): No library found for -lshell32
Warning (mostly harmless): No library found for -lole32
Warning (mostly harmless): No library found for -loleaut32
Warning (mostly harmless): No library found for -lnetapi32
Warning (mostly harmless): No library found for -luuid
Warning (mostly harmless): No library found for -lws2_32
Warning (mostly harmless): No library found for -lmpr
Warning (mostly harmless): No library found for -lwinmm
Warning (mostly harmless): No library found for -lversion
Warning (mostly harmless): No library found for -lodbc32
Warning (mostly harmless): No library found for -lodbccp32
Warning (mostly harmless): No library found for -lcomctl32
Warning (mostly harmless): No library found for -lmsvcrt
Warning: NAME must be a package name
Generating a dmake-style Makefile
Writing Makefile for par.exe
Writing MYMETA.yml and MYMETA.json
Generating a dmake-style Makefile
Writing Makefile for PAR::Packer
Writing MYMETA.yml and MYMETA.json
Set up gcc environment - gcc.exe (rubenvb-4.5.4) 4.5.4
cp lib/PAR/StrippedPARL/Base.pm blib\lib\PAR\StrippedPARL\Base.pm
cp lib/PAR/Packer.pm blib\lib\PAR\Packer.pm
cp lib/PAR/Filter/PodStrip.pm blib\lib\PAR\Filter\PodStrip.pm
cp lib/PAR/Filter/Obfuscate.pm blib\lib\PAR\Filter\Obfuscate.pm
cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm
cp lib/PAR/Filter.pm blib\lib\PAR\Filter.pm
cp lib/PAR/Filter/PatchContent.pm blib\lib\PAR\Filter\PatchContent.pm
cp lib/PAR/Filter/Bytecode.pm blib\lib\PAR\Filter\Bytecode.pm
cp lib/pp.pm blib\lib\pp.pm
cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm
C:\Perl64\bin\perl.exe par_pl2c.pl my_par_pl < ..\script\par.pl >
my_par_pl.c
C:\Perl64\bin\perl.exe sha1.c.PL
C:\Perl64\site\bin\gcc.exe -c -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT
-DWIN64 -D
CONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -DHASATTRIBUTE -fno-strict-aliasing
-mms-bitfi
elds -I"C:\Perl64\lib\CORE" -DPARL_EXE=\"parl.exe\" -O2 main.c
main.c: In function 'main':
main.c:121:23: warning: assignment discards qualifiers from pointer
target type
windres -i winres/pp.rc -o ppresource.coff --input-format=rc
--output-format=cof
f --target=pe-x86-64
C:\Perl64\site\bin\g++.exe main.o ppresource.coff -s
-L"C:\Perl64\lib\CORE" C
:\Perl64\lib\CORE\perl516.lib -o par.exe
rem
C:\Perl64\bin\perl.exe encode_append.pl Dynamic.in par.exe Dynamic.pm
C:\Perl64\bin\perl.exe file2c.pl -c 30000 "par.exe"
"C:\Perl64\bin\perl516.dll"
Post by Roderich Schupp
boot_embedded_files.c
C:\Perl64\site\bin\gcc.exe -c -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT
-DWIN64 -D
CONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -DHASATTRIBUTE -fno-strict-aliasing
-mms-bitfi
elds -I"C:\Perl64\lib\CORE" -DPARL_EXE=\"parl.exe\" -O2 boot.c
In file included from mktmpdir.h:85:0,
from mktmpdir.c:1,
from boot.c:10:
sha1.c: In function 'sha_transform':
sha1.c:146:2: warning: right shift count >= width of type
boot.c: In function 'main':
boot.c:220:5: warning: passing argument 3 of 'spawnvpe' from
incompatible pointe
r type
c:\perl64\site\lib\auto\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.5.4/../../../.
./x86_64-w64-mingw32/include/process.h:178:20: note: expected 'char *
const*' bu
t argument is of type 'const char * const*'
boot.c:220:5: warning: passing argument 4 of 'spawnvpe' from
incompatible pointe
r type
c:\perl64\site\lib\auto\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.5.4/../../../.
./x86_64-w64-mingw32/include/process.h:178:20: note: expected 'char *
const*' bu
t argument is of type 'const char * const*'
C:\Perl64\site\bin\g++.exe boot.o -static-libgcc -s
-L"C:\Perl64\lib\CORE" C:
\Perl64\lib\CORE\perl516.lib ppresource.coff -o boot.exe
rem
C:\Perl64\bin\perl.exe encode_append.pl Static.in boot.exe Static.pm
cp Static.pm ..\blib\lib\PAR\StrippedPARL\Static.pm
cp Dynamic.pm ..\blib\lib\PAR\StrippedPARL\Dynamic.pm
C:\Perl64\bin\perl.exe -Mblib=.. run_with_inc.pl par.exe -q -B -Oparldyn.exe
Can't spawn "par.exe": No error at run_with_inc.pl line 12.
system(par.exe -I..\blib\arch -I..\blib\lib -IC:/Perl64/site/lib
-IC:/Perl64/lib
-I. -q -B -Oparldyn.exe) failed:
dmake.exe: Error code 255, while making 'parldyn.exe'
dmake.exe: Error code 255, while making 'subdirs'
RSCHUPP/PAR-Packer-1.022.tar.gz
C:\Perl64\site\bin\dmake.exe -- NOT OK
CPAN: YAML::XS loaded ok (v0.39)
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Roderich Schupp
2014-09-29 13:36:10 UTC
Permalink
Post by Mike Flannigan
par.exe has stopped working
Windows can check online for a solution to the problem . . .
Yeah, Windows and its user friendly messages.
You could change into the myldr sub directory of cpan's build directory
(depends on what you configured, typically
<your-user-directory>\.cpan\build\PAR-Packer-1.022*)
and run

par.exe -I..\blib\arch -I..\blib\lib -IC:/Perl64/site/lib -IC:/Perl64/lib
-I. -q -B -Oparldyn.exe

by hand - maybe it will show a more informative error message.

Cheers, Roderich

Loading...