Re: Potential problem with MakeMaker

2011-02-16 Thread Martin . Zinser
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

2011-02-16 Thread Craig A. Berry

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