Re: Potential problem with MakeMaker
Hello Craig, thanks for the info about 5.12.3, I've spent today rebuilding Perl and all the various modules. Looks quite good so far. Concerning Net::DNS, if you look at my original message (+ patch), you will see that I already have a patch for netdns.h (I think a little better than your suggestion in this case, since from the comments in the code it looks like the author really wants about 4 times the standard value of 256, which your patch does not allow) as well as a fix for the compiler check and the initial library creation in Makefile.PL . There is some confusing stuff going on with xs no parameters to Makefile.PL . I hope to analyze this some more tomorrow and will report back. Greetings, Martin |+ |Craig A. Berry| | |craigbe...@mac.com| | || To| |15.02.2011 21:58|Dr. Martin P.J. Zinser zin...@sysdev.deutsche-boerse.com| || cc| ||VMSPERL@PERL.ORG | || Subject| ||Re: Potential problem with MakeMaker | || | || | || | || | || | |+ ---| | | ---| On Feb 14, 2011, at 11:24 AM, Dr. Martin P.J. Zinser wrote: One problem that I am not quit sure how to fix happens during the build of Net::DNS 0.66 . To improve on my previous response a bit, all I did to get a successful build was the following change: --- netdns.h;-0 2009-12-30 05:01:39 -0600 +++ netdns.h2011-02-15 21:49:40 -0600 @@ -22,7 +22,9 @@ extern double foo(int, long, const char* * Hmmm 1010 is just a bit oversized */ +#ifndef MAXDNAME #define MAXDNAME 1010 +#endif int netdns_dn_expand( u_char *msg, u_char *eomorig, u_char *comp_dn, u_char *exp_dn, [end] followed by (with -xs to bypass the broken compiler test): $ perl Makefile.PL -xs $ mmk ... $ mmk test ... Failed 7/32 test programs. 3/1492 subtests failed. And I think what failed was in not finding prerequisites I don't have. Passing 1489 / 1492 tests is pretty good. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser - Diese E-Mail enthaelt vertrauliche oder rechtlich geschuetzte Informationen. Wenn Sie nicht der beabsichtigte Empfaenger sind, informieren Sie bitte sofort den Absender und loeschen Sie diese E-Mail. Das unbefugte Kopieren dieser E-Mail oder die unbefugte Weitergabe der enthaltenen Informationen ist nicht gestattet. The information contained in this message is confidential or protected by law. If you are not the intended recipient, please contact the sender and delete this message. Any unauthorised copying of this message or unauthorised distribution of the information contained herein is prohibited. Legally required information for business correspondence/ Gesetzliche Pflichtangaben fuer Geschaeftskorrespondenz: http://deutsche-boerse.com/letterhead
Re: Potential problem with MakeMaker
On Feb 16, 2011, at 5:50 PM, martin.zin...@deutsche-boerse.com wrote: Concerning Net::DNS, if you look at my original message (+ patch), I saw it but took a step back and questioned how much of it was necessary. you will see that I already have a patch for netdns.h (I think a little better than your suggestion in this case, since from the comments in the code it looks like the author really wants about 4 times the standard value of 256, which your patch does not allow) You could be right. On the other hand, modifying the definition of a constant supplied by a system header may or may not work out as the module author expects. as well as a fix for the compiler check and the initial library creation in Makefile.PL . There is some confusing stuff going on with xs no parameters to Makefile.PL . The have_compiler() function is hopelessly non-portable. There is one in ExtUtils::CBuilder that mostly works though it takes considerable vigilance to keep it that way. Anything simpler is unlikely to work consistently on very many platforms, and since EU::CB is in the core, it's h hard to think of a reason to roll your own. Luckily, in this case, the whole thing is avoidable by simply passing the -xs option to Makefile.PL so it doesn't try to test for the presence of a compiler. The postamble seems mostly designed to create an object library, but you already automatically get [.blib.arch.auto.net.dns]dns.olb, so I don't see why you'd want another one with the same objects in it. Unless you specifically require an object library (in addition to the shareable image Perl will be using) and the one you already get isn't good enough for some reason, I wouldn't bother trying to fix the code that generates it. My theme here is why bother fixing it if it's not worth fixing and I don't need it. With your changes to netdns.h and the prerequisites installed, I got a successful build and all tests but one passing with the minor test nits below picked. The one test that didn't pass was 08-online.t, which seems to time out waiting for something at net-dns.org. --- t/00-load.t;-0 2009-12-30 05:01:39 -0600 +++ t/00-load.t 2011-02-16 20:43:02 -0600 @@ -14,7 +14,7 @@ BEGIN { # can't test windows, has registry stuff } -diag(\nThese tests were ran with:\n); +diag(\nThese tests were run with:\n); diag(Net::DNS::VERSION: . $Net::DNS::VERSION); diag(Net::DNS::SEC seems to be available) if $Net::DNS::DNSSEC; --- t/00-pod.t;-0 2009-12-30 05:01:39 -0600 +++ t/00-pod.t 2011-02-16 20:43:02 -0600 @@ -13,7 +13,7 @@ if ($@) { Test::Pod-import; my @files; - my $blib = File::Spec-catfile(qw(blib lib)); + my $blib = File::Spec-catdir(qw(blib lib)); find( sub { push(@files, $File::Find::name) if /\.p(l|m|od)$/}, $blib); --- t/00-version.t;-0 2009-12-30 05:01:39 -0600 +++ t/00-version.t 2011-02-16 22:38:30 -0600 @@ -7,7 +7,7 @@ use ExtUtils::MakeMaker; use strict; my @files; -my $blib = File::Spec-catfile(qw(blib lib)); +my $blib = File::Spec-catdir(qw(blib lib)); find( sub { push(@files, $File::Find::name) if /\.pm$/}, $blib); @@ -26,7 +26,7 @@ foreach my $file (@files) { my $version = MM-parse_version($file); diag($file\t=\t$version) if $ENV{'NET_DNS_DEBUG'}; isnt($file: $version, $file: undef, $file has a version); - next if $file =~ /Net\/DNS.pm$/; + next if $file =~ /DNS.pm$/i; ok ($version290,$file: version has reasonable value); } Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser
Re: Potential problem with MakeMaker
On Feb 14, 2011, at 11:24 AM, Dr. Martin P.J. Zinser wrote: Hello, I am currently going over a number of modules to check that they install/work with Perl 5.12.2 on OpenVMS Itanium 8.3-1H1. You may not have noticed that 5.12.3 is out and includes bug fixes. If memory serves, one or more things you've reported have been fixed. One problem that I am not quit sure how to fix happens during the build of Net::DNS 0.66 . I've already applied the changes below to make it compile as far as it does. Now it fails with the following message: I responded to a similar query here: http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1438489 but I haven't looked deeply to see if there is any reason 5.12.x would behave differently from 5.10.x when building Net::DNS 0.66. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser
Re: Potential problem with MakeMaker
On Feb 14, 2011, at 11:24 AM, Dr. Martin P.J. Zinser wrote: One problem that I am not quit sure how to fix happens during the build of Net::DNS 0.66 . To improve on my previous response a bit, all I did to get a successful build was the following change: --- netdns.h;-0 2009-12-30 05:01:39 -0600 +++ netdns.h2011-02-15 21:49:40 -0600 @@ -22,7 +22,9 @@ extern double foo(int, long, const char* * Hmmm 1010 is just a bit oversized */ +#ifndef MAXDNAME #define MAXDNAME 1010 +#endif int netdns_dn_expand( u_char *msg, u_char *eomorig, u_char *comp_dn, u_char *exp_dn, [end] followed by (with -xs to bypass the broken compiler test): $ perl Makefile.PL -xs $ mmk ... $ mmk test ... Failed 7/32 test programs. 3/1492 subtests failed. And I think what failed was in not finding prerequisites I don't have. Passing 1489 / 1492 tests is pretty good. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser
Potential problem with MakeMaker
Hello, I am currently going over a number of modules to check that they install/work with Perl 5.12.2 on OpenVMS Itanium 8.3-1H1. Most of the issues I've encountered have been minor and appropriate fixits have been submitted via the CPAN bug tracker system. One problem that I am not quit sure how to fix happens during the build of Net::DNS 0.66 . I've already applied the changes below to make it compile as far as it does. Now it fails with the following message: CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /NOANSI_ALIAS/float=ieee/ieee=denorm/Define=(_USE_STD_STAT=1,VERSION= 0.66,XS_VERSION=0.66)/Include=(perl_root:[lib.VMS_IA64.5_12_2.CORE])/NoList DNS.c MCR dsa23:[user.zinser.public.gnu.perl512_root]perl.exe.1 -MExtUtils::Command -e cp -- netdns.olb [.BLIB.ARCH.AUTO.NET.DNS]DNS .OLB If F$Search([.BLIB.ARCH.AUTO.NET.DNS]DNS.OLB).eqs. Then Library/Object/Create [.BLIB.ARCH.AUTO.NET.DNS]DNS.OLB Library/Object/Replace [.BLIB.ARCH.AUTO.NET.DNS]DNS.OLB dns.obj netdns.obj %DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters \NETDNS\ Obviously I can go into descrip.mms and fix this manually, but that does not fix the underlying problem. Also after staring at Makefile.PL for a while, I do not see how this is directly triggering the problem, which makes me suspect that there is something fishy going on in MakeMaker (6.56 as part of 5.12.2). Any suggestions of the experts on the internal workings of MakeMaker? Greetings, Martin P.S. Patches applied to Net::DNS 0.66 to make it compile sofar: *** Makefile.PL 2011-02-12 16:48:20.0 -0600 --- Makefile.PL.orig2011-02-12 17:34:23.281748476 -0600 *** *** 241,254 close(F) or return; ! my $ret; ! ! if ($^O ne 'VMS'){ ! $ret = system($Config{'cc'} -c compile.c -o compile$Config{obj_ext}); ! } ! else { ! $ret = system($Config{'cc'} compile.c); ! } foreach my $file (glob('compile*')) { unlink($file) || warn Could not delete $file: $!\n; --- 241,247 close(F) or return; ! my $ret = system($Config{'cc'} -c compile.c -o compile$Config{obj_ext}); foreach my $file (glob('compile*')) { unlink($file) || warn Could not delete $file: $!\n; *** *** 271,287 sub postamble { my $content; - my $lib_flag; - if ($^O eq 'MSWin32' $Config{'cc'} eq 'cl'){ - $lib_flag = '/OUT:'; - } - elsif ($^O eq 'VMS'){ - $lib_flag = 'library/create '; - } - else { - $lib_flag = 'cr '; - } - $content.=' test_cover : pure_all cover -delete --- 264,269 *** *** 289,295 cover netdns$(LIB_EXT): netdns$(OBJ_EXT) ! $(AR) '.$lib_flag. 'netdns$(LIB_EXT) netdns$(OBJ_EXT) '; --- 271,277 cover netdns$(LIB_EXT): netdns$(OBJ_EXT) ! $(AR) '.($^O eq 'MSWin32' $Config{'cc'} eq 'cl'?'/OUT:':'cr '). 'netdns$(LIB_EXT) netdns$(OBJ_EXT) '; *** netdns.h2011-02-12 17:23:54.0 -0600 --- netdns.h.orig 2011-02-12 17:34:16.142483676 -0600 *** *** 22,31 * Hmmm 1010 is just a bit oversized */ - #ifdef MAXDNAME - #undef MAXDNAME - #endif - #define MAXDNAME 1010 int netdns_dn_expand( u_char *msg, u_char *eomorig, --- 22,27