Subject: | Build-bug in Tk w/ recent? EU::MM: pod2man broken |
On OS/platform/Distribution: Debian GNU/Linux "Woody (3.0r1)"
With related Perl components:
Perl 5.8.0
ExtUtils::MakeMaker 6.16
Using Build technique: "manual" invocations of the usual sort (`perl Makefile.PL' etc etc)
The build could not complete. Applies to:
perl-Tk-800.24
The error message was:
make[1]: *** [manifypods] Error 255
The MakeMaker-emitted mechanism for generating man pages from the package POD is broken. This interrupts the entire build process.
Upon investigation and research, I found that the error preceeding the `make' utility error (the subprocess error which propagates upwards to terminate in make's failure code) was emitted from Getopt::Long: "invalid parameter"). This invalid parameter is the switch "--center" that Tk's package build system is adding to the flags for the `pod2man' invocation. The `pod2man' call is where Getopt::Long is involved.
I was able to overcome the problem and get the build to run to successful completion by a two-pronged short-circuit (hack) which is briefly described below and shown in the accompanying patches.
The assumption being that TK has in the past been able to build oob, the cause of the problem is traceable to ExtUtils::MakeMaker and the sub-module / package namespace "ExtUtils::MakeMaker::Command::MM", which is causing to be created, a Makefile in which the system tool `pod2man' is no longer being invoked. Instead, a replacement "pod2man" internal to EU::MM::Command::MM is being used, and it is somewhere not working when arguments are added to it's parameter string.
The arguments are added to its param string by Tk's build support system, the Tk::MMutil module. What this module is doing no longer seems to work.
Part one of the prongs was hacking the system `pod2man' script to add the "perms_rw" support invented in EU::MM:Command::MM.pm. Part two was adding a hack to Tk::MMutil to make the call go to the system pod2man instead of to the EU synthetic pod2man.
I believe that this error should be very easy to reproduce on most *nix-like platforms, provided the implicated components are all as reported.
Message body not shown because it is not plain text.