perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: [mp2 patch] detection problems
Date Tue, 26 Apr 2005 17:56:42 GMT
Geoffrey Young wrote:
> 
> Stas Bekman wrote:
> 
>>Stas Bekman wrote:
>>
>>
>>>I'm not quite sure I understand why I can't install mp2 if mp1 is
>>>installed? I thought the whole deal was about making it possible to
>>>have both, no?
>>
>>
>>sorry, that was a false alarm.
>>
>>I've nuked Apache2/ but Apache2.pm was still there. So the detection
>>code got all confused. May be it needs to be improved to just die if it
>>finds Apache2.pm, which is no longer in mp2?
> 
> 
> yeah, it was in my mind to do something like that originally, but every time
> I started to code it in I either got distracted or my mind started racing
> with alternative scenarios that wouldn't be caught.
> 
> anyway, I think what we have is decent but clearly could be better.  if you
> have the inclination anything you want to do with it is fine.  my thought is
> that we should refuse to install if either Apache2.pm is found or
> mod_perl.pm > 1.99 is found.

How about this patch:

Index: Makefile.PL
===================================================================
--- Makefile.PL (revision 164840)
+++ Makefile.PL (working copy)
@@ -9,7 +9,7 @@
  use constant MIN_HTTPD_VERSION_DYNAMIC => '2.0.47';
  use constant MIN_HTTPD_VERSION_STATIC  => '2.0.51';

-my($old_modperl_version, $old_modperl_pm);
+my($old_modperl_version, $old_modperl_pm, $old_Apache2_pm);

  BEGIN {
      eval {
@@ -18,6 +18,7 @@
          if ($mod_perl::VERSION < 1.999_22 && $old_mp2) {
              $old_modperl_version = $mod_perl::VERSION;
              $old_modperl_pm = delete $INC{'mod_perl.pm'};
+            $old_Apache2_pm = delete $INC{'Apache2.pm'};
          }
      };
  }
@@ -142,10 +143,24 @@
                  "no collision)\n";
          }
          else {
+            my @files = ();
+            my @dirs = ();
+            push @files, $old_Apache2_pm if $old_Apache2_pm;
+            push @dirs, $path if $path =~ /Apache2/;
+
+            my $note = '';
+            if (@files || @dirs) {
+                $note  = "Problematic\n";
+                $note .= "files: @files\n" if @files;
+                $note .= "dirs: @dirs\n"   if @dirs;
+            }
+
              print " not ok\n\n";
              print <<EOI;
  Cannot install mod_perl/$VERSION on top of $vstring
  due to a major API change between mod_perl 1.999_21 and 1.999_22.
+
+$note
  Please nuke the prior mod_perl installation from your site_lib,
  use a different perl to run the installation process, or use the
  PREFIX option when creating your Makefile.  see





With pristine 1.999_21 install we now get:

     Cannot install mod_perl/1.999.23-dev on top of mod_perl/1.999_001
     due to a major API change between mod_perl 1.999_21 and 1.999_22.

     Problematic
     files: /home/stas/perl/5.8.7-ithread/lib/site_perl/5.8.6/Apache2.pm
     dirs: 
/home/stas/perl/5.8.7-ithread/lib/site_perl/5.8.6/Apache2/mod_perl.pm

     Please nuke the prior mod_perl installation from your site_lib,
     use a different perl to run the installation process, or use the
     PREFIX option when creating your Makefile.  see

With semi-nuked 1.999_21 install (Apache2/ and everything under it is
gone, but Apache2.pm is still there). now the error will be:


     Cannot install mod_perl/1.999.23-dev on top of mod_perl/1.29_01
     due to a major API change between mod_perl 1.999_21 and 1.999_22.

     Problematic
     files: /home/stas/perl/5.8.7-ithread/lib/site_perl/5.8.6/Apache2.pm

     Please nuke the prior mod_perl installation from your site_lib,
     use a different perl to run the installation process, or use the
     PREFIX option when creating your Makefile.  see

In any case I find it an improvement, since it tells the user exactly 
which dirs, files need to be nuked.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message