Skip Menu |

This queue is for tickets about the PAR-Packer CPAN distribution.

Report information
The Basics
Id: 75636
Status: resolved
Priority: 0/
Queue: PAR-Packer

People
Owner: Nobody in particular
Requestors: dancecile [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 1.013
Fixed in: (no value)



Subject: PAR::Packer Windows installation error (and suggested fix)
Date: Thu, 8 Mar 2012 21:05:44 -0500
To: rschupp [...] cpan.org, bug-par [...] rt.cpan.org
From: Dan Cecile <dancecile [...] gmail.com>
To Whom It May Concern, First, let me say thanks for PAR::Packer, it's working great for me. I ran into a bit of a snag when I tried installing PAR::Packer on Windows via CPAN: windres -F pei-i386 -i winres\pp.rc -o winres\pp.res windres -o ppresource.coff winres\pp.res windres: unexpected version string length 68 != 32 + 8 dmake: Error code 129, while making 'ppresource.coff' dmake.EXE: Error code 255, while making 'subdirs' RSCHUPP/PAR-Packer-1.013.tar.gz C:\Devel\lib\strawberry\c\bin\dmake.EXE -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: RSCHUPP/PAR-Packer-1.013.tar.gz : make NO I'm running Windows 7 (32-bit) and Strawberry Perl 5.14.2.1, and I used "cpan" "install PAR::Packer" for attempting the installation. To fix the problem, I deleted the boilerplate from "pp.rc": VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 PRODUCTVERSION 0,0,0,0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS PP_MANIFEST_FILEFLAGS FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "000004B0" BEGIN VALUE "CompanyName", " \0" VALUE "FileDescription", " \0" VALUE "FileVersion", "0.0.0.0\0" VALUE "InternalName", " \0" VALUE "LegalCopyright", " \0" VALUE "LegalTrademarks", " \0" VALUE "OriginalFilename", " \0" VALUE "ProductName", " \0" VALUE "ProductVersion", "0.0.0.0\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x00, 0x04B0 END END After that, I could run "dmake test" and "dmake install" without any problems, and packaging an application with "pp" worked very nicely. It's my first time using PAR::Packer, and I'm pleased to report that (besides the build issue) it's suits my needs well. Regards, Dan Cecile
IMHO better workaround - PAR-Packer-1.013.diff

Based on Mark Dootson idea from:
http://www.nntp.perl.org/group/perl.par/2012/03/msg5310.html

Subject: PAR-Packer-1.013.diff
diff -ru PAR-Packer-1.013\myldr\Makefile.PL PAR-Packer-1.013.patched\myldr\Makefile.PL --- PAR-Packer-1.013\myldr\Makefile.PL Thu Jan 26 19:51:55 2012 +++ PAR-Packer-1.013.patched\myldr\Makefile.PL Tue Apr 10 14:18:45 2012 @@ -114,9 +114,9 @@ $warn = $debug ? '-Wall -Wno-comments ' : ''; if( $^O =~ /^(?:MSWin|cygwin)/ ){ $res = 'ppresource.coff'; - $pre_res = qq(winres\\pp.res); - $rt_cmd = qq(windres -F pei-i386 -i winres\\pp.rc -o $pre_res); - $res_cmd = qq(windres -o ppresource.coff $pre_res); + $pre_res = qq(winres\\pp.rc); + $rt_cmd = '-$(NOOP)'; + $res_cmd = qq(windres -i winres\\pp.rc -o ppresource.coff --input-format=rc --output-format=coff --target=pe-i386); $res_section = $res; } $mt_cmd = '-$(NOOP)'; diff -ru PAR-Packer-1.013\myldr\winres\pp.rc PAR-Packer-1.013.patched\myldr\winres\pp.rc --- PAR-Packer-1.013\myldr\winres\pp.rc Thu Jan 26 19:51:55 2012 +++ PAR-Packer-1.013.patched\myldr\winres\pp.rc Tue Apr 10 12:13:54 2012 @@ -5,7 +5,7 @@ #define PP_MANIFEST_FILEFLAGS 0 #include <windows.h> -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "pp.manifest" +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "winres\\pp.manifest" VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 @@ -37,5 +37,5 @@ END END -WINEXE ICON pp.ico +WINEXE ICON winres\\pp.ico
Even better PAR-Packer-1.013_V2.diff  (works also on 64bit strawberry perl)
Subject: PAR-Packer-1.013_V2.diff
diff -ru PAR-Packer-1.013\myldr\Makefile.PL PAR-Packer-1.013_patched\myldr\Makefile.PL --- PAR-Packer-1.013\myldr\Makefile.PL Thu Jan 26 19:51:55 2012 +++ PAR-Packer-1.013_patched\myldr\Makefile.PL Tue Apr 10 15:08:37 2012 @@ -113,11 +113,12 @@ $lddebug = ($debug or $^O eq 'darwin') ? '' : '-s '; $warn = $debug ? '-Wall -Wno-comments ' : ''; if( $^O =~ /^(?:MSWin|cygwin)/ ){ - $res = 'ppresource.coff'; - $pre_res = qq(winres\\pp.res); - $rt_cmd = qq(windres -F pei-i386 -i winres\\pp.rc -o $pre_res); - $res_cmd = qq(windres -o ppresource.coff $pre_res); - $res_section = $res; + my $target = $Config{archname} =~ /x64/ ? 'pe-x86-64' : 'pe-i386'; + $res = 'ppresource.coff'; + $pre_res = qq(winres\\pp.rc); + $rt_cmd = '-$(NOOP)'; + $res_cmd = qq(windres -i winres\\pp.rc -o ppresource.coff --input-format=rc --output-format=coff --target=$target); + $res_section = $res; } $mt_cmd = '-$(NOOP)'; } else { diff -ru PAR-Packer-1.013\myldr\winres\pp.rc PAR-Packer-1.013_patched\myldr\winres\pp.rc --- PAR-Packer-1.013\myldr\winres\pp.rc Thu Jan 26 19:51:55 2012 +++ PAR-Packer-1.013_patched\myldr\winres\pp.rc Tue Apr 10 14:25:10 2012 @@ -5,7 +5,7 @@ #define PP_MANIFEST_FILEFLAGS 0 #include <windows.h> -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "pp.manifest" +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "winres\\pp.manifest" VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 @@ -37,5 +37,5 @@ END END -WINEXE ICON pp.ico +WINEXE ICON winres\\pp.ico
Applied the most recent patch, will be in the next release. Thanks, Roderich