Re: [mp2] make install quirk

2002-12-14 Thread Stas Bekman
Randy Kobes wrote:

On Sat, 14 Dec 2002, Stas Bekman wrote:



[looks my original reply didn't make it through, trying again]

Beau E. Cox wrote:
 Hi -

 I am posting this message informally - this is not
 critical (maybe not worth looking at); during
 the mp2 make install, mod_perl.so is copied to the
 apache2 tree (on my system) like this:

 cp mod_perl.so /usr/local/apache2/modules

 Now, if you haven't configured any apache2 modules
 (as I haven't for my test server), the subdirectory
 modules doesn't exist, so mod_perl.so is put into
 the apache2 tree as _file_ 'modules' under
 /usr/local/apache2. That's why I couldn't find it!

[...]

This is a known problem. I came up with this patch:
http://marc.theaimsgroup.com/?l=apache-modperl-devm=103847596809386w=2

But I'm afraid it's not portable and hence I couldn't commit it. Here is the
relevant snippet of the patch:

install:
+   test -d $(MODPERL_AP_LIBEXECDIR) || mkdir $(MODPERL_AP_LIBEXECDIR)
   $(MODPERL_TEST_F) $(MODPERL_LIB_DSO)  \
   $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)

Any portability gurus know how to make this Makefile's line (the one with +)
portable? I think 'mkdir' is portable. What about 'test -d'?



On Win32, at least, 'test' isn't available. What about something
like the following:

perl -e exit ! -d \$(MODPERL_AP_LIBEXECDIR)\ || mkdir $(...)

(the \ may be needed if the directory contains spaces, as Win32
might). And if one is worried about the system mkdir 
availability, one can use
   perl -MExtUtils::Command -e mkpath directory
 

randy++!

Please check that this work for you and I'll commit it (verified on linux). 
You need to run a full build to check, unless you patch the Makefile manually.

I also see that my copy-n-paste has translated \t into spaces, so replace 
those with tabs (between the + and $)

I've replaced \\ with qq{} because shells and quotes, even escaped ones are 
a big trouble. At least your suggestion didn't work for me. qq{} works just fine.

Index: lib/Apache/Build.pm
===
RCS file: /home/cvs/modperl-2.0/lib/Apache/Build.pm,v
retrieving revision 1.108
diff -u -r1.108 Build.pm
--- lib/Apache/Build.pm 28 Nov 2002 16:31:36 -  1.108
+++ lib/Apache/Build.pm 14 Dec 2002 08:43:32 -
@@ -1057,6 +1057,9 @@
 lib: $(MODPERL_LIB)

 install:
+   $(MODPERL_PERLPATH) -e exit ! -d qq{$(MODPERL_AP_LIBEXECDIR)} || \
+   $(MODPERL_PERLPATH) -MExtUtils::Command  \
+   -e mkpath $(MODPERL_AP_LIBEXECDIR)
$(MODPERL_TEST_F) $(MODPERL_LIB_DSO)  \
$(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)



__
Stas BekmanJAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide --- http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com



Re: [mp2] make install quirk

2002-12-14 Thread Randy Kobes
On Sat, 14 Dec 2002, Stas Bekman wrote:
[ .. ]
 Please check that this work for you and I'll commit it
 (verified on linux).  You need to run a full build to check,
 unless you patch the Makefile manually.
 
 I also see that my copy-n-paste has translated \t into spaces,
 so replace those with tabs (between the + and $)
 
 I've replaced \\ with qq{} because shells and quotes, even
 escaped ones are a big trouble. At least your suggestion didn't
 work for me. qq{} works just fine.
 
 Index: lib/Apache/Build.pm
 ===
 RCS file: /home/cvs/modperl-2.0/lib/Apache/Build.pm,v
 retrieving revision 1.108
 diff -u -r1.108 Build.pm
 --- lib/Apache/Build.pm 28 Nov 2002 16:31:36 -  1.108
 +++ lib/Apache/Build.pm 14 Dec 2002 08:43:32 -
 @@ -1057,6 +1057,9 @@
   lib: $(MODPERL_LIB)
 
   install:
 +   $(MODPERL_PERLPATH) -e exit ! -d qq{$(MODPERL_AP_LIBEXECDIR)} || \
 +   $(MODPERL_PERLPATH) -MExtUtils::Command  \
 +   -e mkpath $(MODPERL_AP_LIBEXECDIR)
  $(MODPERL_TEST_F) $(MODPERL_LIB_DSO)  \
  $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)

This works fine on Win32, both if the modules directory
exists, and in creating it if it doesn't. Thanks!

-- 
best regards,
randy




Re: [mp2] make install quirk

2002-12-13 Thread Stas Bekman
[looks my original reply didn't make it through, trying again]

Beau E. Cox wrote:
 Hi -

 I am posting this message informally - this is not
 critical (maybe not worth looking at); during
 the mp2 make install, mod_perl.so is copied to the
 apache2 tree (on my system) like this:

 cp mod_perl.so /usr/local/apache2/modules

 Now, if you haven't configured any apache2 modules
 (as I haven't for my test server), the subdirectory
 modules doesn't exist, so mod_perl.so is put into
 the apache2 tree as _file_ 'modules' under
 /usr/local/apache2. That's why I couldn't find it!

[...]

This is a known problem. I came up with this patch:
http://marc.theaimsgroup.com/?l=apache-modperl-devm=103847596809386w=2

But I'm afraid it's not portable and hence I couldn't commit it. Here is the
relevant snippet of the patch:

install:
+   test -d $(MODPERL_AP_LIBEXECDIR) || mkdir $(MODPERL_AP_LIBEXECDIR)
   $(MODPERL_TEST_F) $(MODPERL_LIB_DSO)  \
   $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)

Any portability gurus know how to make this Makefile's line (the one with +)
portable? I think 'mkdir' is portable. What about 'test -d'?


__
Stas BekmanJAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide --- http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com




Re: [mp2] make install quirk

2002-12-13 Thread Randy Kobes
On Sat, 14 Dec 2002, Stas Bekman wrote:

 [looks my original reply didn't make it through, trying again]
 
 Beau E. Cox wrote:
   Hi -
  
   I am posting this message informally - this is not
   critical (maybe not worth looking at); during
   the mp2 make install, mod_perl.so is copied to the
   apache2 tree (on my system) like this:
  
   cp mod_perl.so /usr/local/apache2/modules
  
   Now, if you haven't configured any apache2 modules
   (as I haven't for my test server), the subdirectory
   modules doesn't exist, so mod_perl.so is put into
   the apache2 tree as _file_ 'modules' under
   /usr/local/apache2. That's why I couldn't find it!
 
 [...]
 
 This is a known problem. I came up with this patch:
 http://marc.theaimsgroup.com/?l=apache-modperl-devm=103847596809386w=2
 
 But I'm afraid it's not portable and hence I couldn't commit it. Here is the
 relevant snippet of the patch:
 
  install:
 +   test -d $(MODPERL_AP_LIBEXECDIR) || mkdir $(MODPERL_AP_LIBEXECDIR)
 $(MODPERL_TEST_F) $(MODPERL_LIB_DSO)  \
 $(MODPERL_CP) $(MODPERL_LIB_DSO) $(MODPERL_AP_LIBEXECDIR)
 
 Any portability gurus know how to make this Makefile's line (the one with +)
 portable? I think 'mkdir' is portable. What about 'test -d'?

On Win32, at least, 'test' isn't available. What about something
like the following:

perl -e exit ! -d \$(MODPERL_AP_LIBEXECDIR)\ || mkdir $(...)

(the \ may be needed if the directory contains spaces, as Win32
might). And if one is worried about the system mkdir 
availability, one can use
   perl -MExtUtils::Command -e mkpath directory
 
-- 
best regards,
randy




[mp2] make install quirk

2002-12-12 Thread Beau E. Cox
Hi -

I am posting this message informally - this is not
critical (maybe not worth looking at); during
the mp2 make install, mod_perl.so is copied to the
apache2 tree (on my system) like this:

cp mod_perl.so /usr/local/apache2/modules

Now, if you haven't configured any apache2 modules
(as I haven't for my test server), the subdirectory
modules doesn't exist, so mod_perl.so is put into
the apache2 tree as _file_ 'modules' under
/usr/local/apache2. That's why I couldn't find it!

I will update my mini-HOWTO:

http://beaucox.com/mason/mason-with-apmp2-mini-HOWTO.htm

to reflect this quirk.

Aloha = Beau.