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


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.