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



Re: Potential problem with MakeMaker

2011-02-15 Thread Craig A. Berry

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

2011-02-15 Thread Craig A. Berry

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

2011-02-14 Thread Dr. Martin P.J. Zinser
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