Please take a look at the last 4 commits I did; any feedback welcome.
These commits are meant to clear up build issues with mod_perl and
friends.  The build system is very flexible and powerful - and at the
same time encounters random problems as a result of that flexibility.
I've attempting to eliminate those issues, so that clean builds will
result when you have a clean toolchain (which almost everyone seems to
have when building mod_perl, those with 10 different perl binaries
installed are rare and capable of figuring things out themselves.

If you could take a few minutes to svn update mod_perl trunk and run
the tests, that would be extremely helpful.  I've tested on 2
different platforms so far, OS X and Linux, and all tests are passing.


---------- Forwarded message ----------
From:  <ph...@apache.org>
Date: Sun, Oct 17, 2010 at 11:45 AM
Subject: svn commit: r1023553 - in /perl/modperl/trunk: Changes
Makefile.PL lib/Apache2/Build.pm lib/ModPerl/BuildOptions.pm
To: modperl-...@perl.apache.org


Author: phred
Date: Sun Oct 17 18:45:16 2010
New Revision: 1023553

URL: http://svn.apache.org/viewvc?rev=1023553&view=rev
Log:
Look for a usable apxs in $ENV{PATH} if all other options fail, then
prompt the user for one.

Work around bootstrap warnings when Apache2::BuildConfig has not been
created yet.

Remove Apache::test compatibility (part of mod_perl 1.2.7), that code
causes build issues and is 4 versions out of date.

Modified:
   perl/modperl/trunk/Changes
   perl/modperl/trunk/Makefile.PL
   perl/modperl/trunk/lib/Apache2/Build.pm
   perl/modperl/trunk/lib/ModPerl/BuildOptions.pm

Modified: perl/modperl/trunk/Changes
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=1023553&r1=1023552&r2=1023553&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Sun Oct 17 18:45:16 2010
@@ -12,6 +12,15 @@ Also refer to the Apache::Test changes l

 =item 2.0.5-dev

+Look for a usable apxs in $ENV{PATH} if all other options fail, then
prompt the user for one.
+[Phred]
+
+Work around bootstrap warnings when Apache2::BuildConfig has not been
created yet.
+[Phred]
+
+Remove Apache::test compatibility (part of mod_perl 1.2.7), that code
causes build issues and is 4 versions out of date.
+[Phred]
+
 Make sure perl is built either with multiplicity and ithreads or without
 both [Theory, Torsten]


Modified: perl/modperl/trunk/Makefile.PL
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/Makefile.PL?rev=1023553&r1=1023552&r2=1023553&view=diff
==============================================================================
--- perl/modperl/trunk/Makefile.PL (original)
+++ perl/modperl/trunk/Makefile.PL Sun Oct 17 18:45:16 2010
@@ -21,6 +21,7 @@ BEGIN {
            $old_Apache2_pm = delete $INC{'Apache2.pm'};
        }
    };
+
 }

 use lib qw(lib Apache-Test/lib);
@@ -629,13 +630,6 @@ use Config;
 use constant WIN32 => $^O eq 'MSWin32';
 use constant BUILD_APREXT => Apache2::Build::BUILD_APREXT;

-my $apache_test_install;
-BEGIN {
-    $apache_test_install = -e 'Apache-Test';
-    use lib './Apache-Test';
-    require 'install-pl' if $apache_test_install;
-}
-
 sub MY::top_targets {
    my $self = shift;
    my $string = $self->ModPerl::BuildMM::MY::top_targets;
@@ -729,9 +723,6 @@ modperl_banner:

 EOF

-    $string .= Apache::Test::install::nuke_Apache__test_target()
-        if $apache_test_install;
-
    $string;
 }

@@ -747,9 +738,6 @@ sub MY::install {
       # ModPerl::MM::add_dep(\$string, "pure${kind}_install" =>
'aprext_install')
       #    if BUILD_APREXT;

-       ModPerl::MM::add_dep(\$string, "pure${kind}_install" =>
'nuke_Apache__test')
-           if $apache_test_install;
-
       ModPerl::MM::add_dep_after(\$string, "install$kind",
"doc${kind}_install", 'modperl_banner');

       # glue_pods target must come first

Modified: perl/modperl/trunk/lib/Apache2/Build.pm
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/lib/Apache2/Build.pm?rev=1023553&r1=1023552&r2=1023553&view=diff
==============================================================================
--- perl/modperl/trunk/lib/Apache2/Build.pm (original)
+++ perl/modperl/trunk/lib/Apache2/Build.pm Sun Oct 17 18:45:16 2010
@@ -897,6 +897,10 @@ sub default_file {

 sub file_path {
    my $self = shift;
+
+    # work around when Apache2::BuildConfig has not been created yet
+    return unless $self && $self->{cwd};
+
    my @files = map { m:^/: ? $_ : join('/', $self->{cwd}, $_) } @_;
    return wantarray ? @files : $files[0];
 }

Modified: perl/modperl/trunk/lib/ModPerl/BuildOptions.pm
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/lib/ModPerl/BuildOptions.pm?rev=1023553&r1=1023552&r2=1023553&view=diff
==============================================================================
--- perl/modperl/trunk/lib/ModPerl/BuildOptions.pm (original)
+++ perl/modperl/trunk/lib/ModPerl/BuildOptions.pm Sun Oct 17 18:45:16 2010
@@ -66,6 +66,24 @@ sub init {
    $build->{MP_COMPAT_1X} = 1
        unless exists $build->{MP_COMPAT_1X} && !$build->{MP_COMPAT_1X};

+    # make a last ditch effort to find apxs in $ENV{PATH}
+    if (!$build->{MP_AP_PREFIX} && !$build->{MP_APXS}) {
+
+        my @paths = split(/:/, $ENV{PATH});
+        my $potential_apxs;
+        while (!$potential_apxs) {
+
+            last if scalar(@paths) == 0; # don't loop endlessly
+            $potential_apxs = File::Spec->catfile(shift @paths, 'apxs');
+            if (-e $potential_apxs && -x $potential_apxs) {
+
+                $build->{MP_APXS} = $potential_apxs;
+                print "MP_APXS unspecified, using $potential_apxs\n\n";
+            } else {
+                undef $potential_apxs;
+            }
+        }
+    }
 }

 sub parse {

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

Reply via email to