On Wed, 2005-02-09 at 15:31, Stas Bekman wrote:
> That's why the only sensible thing I can suggest is a second DESTDIR
> argument, which is apache-specific and of course it needs to be called
> differently. I've earlier suggested MP_AP_DESTDIR.
Attached is a patch which will add a new build time option
MP_AP_DESTDIR, which will be prefixed to all of the Apache bits
for installation. This works for me, building SysV packages on
Solaris 8 in a non-root environment.
Regards,
Cory.
--
Cory Omand <[EMAIL PROTECTED]>
Sun Microsystems
diff --speed-large-files --minimal -Nru mod_perl-2.0.0-RC4.orig/Makefile.PL mod_perl-2.0.0-RC4/Makefile.PL
--- mod_perl-2.0.0-RC4.orig/Makefile.PL 2005-02-16 15:22:21.709509000 -0500
+++ mod_perl-2.0.0-RC4/Makefile.PL 2005-02-16 14:50:44.791344000 -0500
@@ -79,6 +79,7 @@
PERL => $build->perl_config('perlpath'),
MOD_INSTALL => ModPerl::BuildMM::mod_install(),
MODPERL_AP_INCLUDEDIR => $build->install_headers_dir(),
+ MODPERL_AP_DESTDIR => $build->{MP_AP_DESTDIR},
MODPERL_XS_H_FILES => join(" \\\n\t", @xs_h_files),
},
clean => {
@@ -672,8 +673,8 @@
cd "$(MODPERL_SRC)" && $(MAKE) install
modperl_xs_h_install:
- @$(MKPATH) $(MODPERL_AP_INCLUDEDIR)
- $(CP) $(MODPERL_XS_H_FILES) $(MODPERL_AP_INCLUDEDIR)
+ @$(MKPATH) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_INCLUDEDIR)
+ $(CP) $(MODPERL_XS_H_FILES) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_INCLUDEDIR)
modperl_src_clean:
cd "$(MODPERL_SRC)" && $(MAKE) clean
diff --speed-large-files --minimal -Nru mod_perl-2.0.0-RC4.orig/docs/user/install/install.pod mod_perl-2.0.0-RC4/docs/user/install/install.pod
--- mod_perl-2.0.0-RC4.orig/docs/user/install/install.pod 2005-02-16 15:22:17.271960000 -0500
+++ mod_perl-2.0.0-RC4/docs/user/install/install.pod 2005-02-16 15:21:45.448926000 -0500
@@ -511,6 +511,17 @@
% t/TEST -httpd /home/stas/httpd/prefork/bin/httpd
+=head4 MP_AP_DESTDIR
+
+Apache installation destination directory. This path will be prefixed to the
+installation paths for all Apache specific files during C<make install>. For
+instance, if C<MP_AP_DESTDIR> is set to C</tmp/foo>, the Apache module will be
+installed to:
+
+ /tmp/foo/path/to/httpd-2.0/libexec/mod_perl.so
+
+This option exists to make the lives of package maintainers easier.
+
=head4 MP_APR_CONFIG
If APR wasn't installed under the same file tree as httpd, you may
diff --speed-large-files --minimal -Nru mod_perl-2.0.0-RC4.orig/lib/Apache/Build.pm mod_perl-2.0.0-RC4/lib/Apache/Build.pm
--- mod_perl-2.0.0-RC4.orig/lib/Apache/Build.pm 2005-02-16 15:22:18.718177000 -0500
+++ mod_perl-2.0.0-RC4/lib/Apache/Build.pm 2005-02-16 14:50:45.142351000 -0500
@@ -1569,16 +1569,16 @@
if (!$self->should_build_apache) {
$install .= <<'EOI';
# install mod_perl.so
- @$(MKPATH) $(MODPERL_AP_LIBEXECDIR)
+ @$(MKPATH) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBEXECDIR)
$(MODPERL_TEST_F) $(MODPERL_LIB_DSO) && \
- $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)
+ $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBEXECDIR)
EOI
}
$install .= <<'EOI';
# install mod_perl .h files
- @$(MKPATH) $(MODPERL_AP_INCLUDEDIR)
- $(MODPERL_CP) $(MODPERL_H_FILES) $(MODPERL_AP_INCLUDEDIR)
+ @$(MKPATH) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_INCLUDEDIR)
+ $(MODPERL_CP) $(MODPERL_H_FILES) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_INCLUDEDIR)
EOI
my $mf = $self->default_file('makefile');
@@ -1617,9 +1617,9 @@
print $fh $self->canon_make_attr('lib_symbols', $symbols);
$install .= <<'EOI';
# install mod_perl symbol file
- @$(MKPATH) $(MODPERL_AP_LIBEXECDIR)
+ @$(MKPATH) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBEXECDIR)
$(MODPERL_TEST_F) $(MODPERL_LIB_SYMBOLS) && \
- $(MODPERL_CP) $(MODPERL_LIB_SYMBOLS) $(MODPERL_AP_LIBEXECDIR)
+ $(MODPERL_CP) $(MODPERL_LIB_SYMBOLS) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBEXECDIR)
EOI
}
@@ -1629,9 +1629,9 @@
"$self->{MP_AP_PREFIX}/lib");
$install .= <<'EOI';
# install mod_perl.lib
- @$(MKPATH) $(MODPERL_AP_LIBDIR)
+ @$(MKPATH) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBDIR)
$(MODPERL_TEST_F) $(MODPERL_LIB_LOCATION) && \
- $(MODPERL_CP) $(MODPERL_LIB_LOCATION) $(MODPERL_AP_LIBDIR)
+ $(MODPERL_CP) $(MODPERL_LIB_LOCATION) $(MODPERL_AP_DESTDIR)$(MODPERL_AP_LIBDIR)
EOI
}
@@ -1645,6 +1645,9 @@
print $fh $self->canon_make_attr('libperl', $libperl);
}
+ print $fh $self->canon_make_attr('ap_destdir', $self->{MP_AP_DESTDIR})
+ if $self->{MP_AP_DESTDIR};
+
for my $method (qw(ccopts ldopts inc)) {
print $fh $self->canon_make_attr($method, $self->$method());
}
diff --speed-large-files --minimal -Nru mod_perl-2.0.0-RC4.orig/lib/ModPerl/BuildOptions.pm mod_perl-2.0.0-RC4/lib/ModPerl/BuildOptions.pm
--- mod_perl-2.0.0-RC4.orig/lib/ModPerl/BuildOptions.pm 2005-02-16 15:22:20.166130000 -0500
+++ mod_perl-2.0.0-RC4/lib/ModPerl/BuildOptions.pm 2005-02-16 14:50:45.262146000 -0500
@@ -230,6 +230,7 @@
OPTIONS_FILE 0 Read options from given file
STATIC_EXTS 0 Build Apache::*.xs as static extensions
APXS 0 Path to apxs
+AP_DESTDIR 1 Destination for Apache specific mod_perl bits
AP_PREFIX 0 Apache installation or source tree prefix
AP_CONFIGURE 0 Apache ./configure arguments
APR_CONFIG 0 Path to apr-config