tag 335105 patch
tag 357264 patch
thanks

Attached is a patch to fix these two bugs; a brief explanation:

The fix for #335105 is to hard code the two numbers which are passed
between the forked child and the parent; rand can conceivably return
the same value twice in a row (although, such an occurance should be
rare.) Also, the test as written would have erroneously succeded if
the child never wrote anything at all.

The fix for #357264 is to always call perl with the proper -I option;
in the worst case, this is a null operation, but in cases where there
are inter-module dependencies in modules that cannot depend on
pm_to_blib the previous method would cause build failures. [See
#356975]

The attached interdiff prepared as if it were an NMU should fix
#335105 and has been tested to fix #357264 (and in consequence,
#356975)


Don Armstrong

-- 
"For those who understand, no explanation is necessary.
 For those who do not, none is possible."

http://www.donarmstrong.com              http://rzlab.ucr.edu
diff -u perl-5.8.8/lib/ExtUtils/MM_Unix.pm perl-5.8.8/lib/ExtUtils/MM_Unix.pm
--- perl-5.8.8/lib/ExtUtils/MM_Unix.pm
+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm
@@ -3028,14 +3028,11 @@
            # pm_to_blib depends on then it can't depend on pm_to_blib
            # else we have a dependency loop.
            my $pm_dep;
-           my $perlrun;
            if( defined $self->{PM}{$target} ) {
                $pm_dep  = '';
-               $perlrun = 'PERLRUN';
            }
            else {
                $pm_dep  = 'pm_to_blib';
-               $perlrun = 'PERLRUNINST';
            }
 
             $m .= <<MAKE_FRAG;
@@ -3044,7 +3041,7 @@
        \$(NOECHO) \$(NOOP)
 
 $target :: $plfile $pm_dep
-       \$($perlrun) $plfile $target
+       \$(PERLRUNINST) $plfile $target
 MAKE_FRAG
 
        }
diff -u perl-5.8.8/debian/changelog perl-5.8.8/debian/changelog
--- perl-5.8.8/debian/changelog
+++ perl-5.8.8/debian/changelog
@@ -1,3 +1,14 @@
+perl (5.8.8-4.1) unstable; urgency=low
+
+  * NMU
+  * Change the test in t/op/fork.t to use predefined values instead of
+    rand to work around broken rand implementations on some kernels.
+    (closes: #335105)
+  * Revert part of the upstream change in 24524 to always use PERLRUNINST
+    when building the perl modules (closes: #357264)
+
+ -- Don Armstrong <[EMAIL PROTECTED]>  Fri,  5 May 2006 22:53:49 -0700
+
 perl (5.8.8-4) unstable; urgency=low
 
   * Preserve timestamps in /usr/share/doc.
only in patch2:
unchanged:
--- perl-5.8.8.orig/t/op/fork.t
+++ perl-5.8.8/t/op/fork.t
@@ -431,16 +431,16 @@
 my $pid = fork;
 die "fork: $!" if !defined $pid;
 if ($pid == 0) {
-    my $rand_child = rand;
+    my $rand_child = 1;
     close RDR;
     print WTR $rand_child, "\n";
     close WTR;
 } else {
-    my $rand_parent = rand;
+    my $rand_parent = 2;
     close WTR;
     chomp(my $rand_child  = <RDR>);
     close RDR;
-    print $rand_child ne $rand_parent, "\n";
+    print length $rand_child and $rand_child ne $rand_parent, "\n";
 }
 EXPECT
 1

Attachment: signature.asc
Description: Digital signature

Reply via email to