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
signature.asc
Description: Digital signature