The convention seems to be that build directory is found in the same 
place / level where apache modules are kept. So, if  we are going to 
keep the modules under /usr/apache2/modules then the corresponding build 
directory also needs to reside under /usr/apache2/build. 

thanks
sriram

Seema Alevoor wrote:
> Another point which I forgot to mention.
>
> With the current layout (existing one), trying to create a sample module 
> failed with the following error.
> -------------------------------------------------------------------------
> % apxs -n foo -g
> % cd foo
> % make all reload
> make: Warning: Can't find `/usr/apache2/build/rules.mk': No such file or 
> directory
> make: Fatal error in reader: /var/apache2/build/special.mk, line 26: Read of 
> include file `/usr/apache2/build/rules.mk' failed
> -------------------------------------------------------------------------
>
> The cause for the failure is the non-existence of /usr/apache2/build 
> directory. The scripts fail to look at the configured installbuilddir.
> They expect it to be under $prefix/build directory which is incorrect. It 
> could be an error on the Apache side as the build dir is one of the
> configurable parameter. Changing the installbuilddir from 
> "/var/apache2/build" to "/usr/apache2/build" solved the issue.
> Should we change the "build" dir location or should we add a patch file which 
> fixes the issue on the apache side ?
>
>
> Thanks and Regards,
> Seema.
>
>
> Seema Alevoor wrote:
>   
>>> 1.  I was wondering, for simplicity sake, should we not compile the 
>>> apache httpd in the same way for both MPM models. This would allow us 
>>> to use same configure script and change only line '--with-mpm' 
>>> depending on which model we build. This way, going forward, if we need 
>>> to add another MPM support (say Solaris specific), we don't introduce 
>>> any different compilation options.
>>>       
>> Sure, we can do that.
>>
>>     
>>> 2. In your prototype, did you explore the need to bundle apxs 
>>> separately (one for prefork and worker)  ?  
>>>       
>> No, I didn't. Test suite uses this script and it worked fine with the 
>> common one.
>>
>>     
>>> Say a customer wanting to compile his third party apache module - foo 
>>> , does he need to know what is the MPM model currently configured ?  I 
>>> am hoping that this is transparent to the customer and can simply use 
>>> apxs irrespective of the MPM mode. But, just wanted to ensure that we 
>>> took this issue into account.
>>>
>>>       
>> The var within config_vars.mk that varies for prefork and worker is 
>> MPM_NAME (which will be set to "prefork" or "worker" mpm mode)
>> and progname (will be set to "httpd"). apxs uses "progname" var to check 
>> if the server has been build with mod_so
>> module and also to use server's default .conf file (httpd.conf). Since 
>> both these mpms are built with mod_so, check succeeds.
>>
>> As I had mentioned in my previous mail, I do see some differences in the 
>> files. I have attached the list of files which differ and are new.
>> Would this mean bundling 2 sets of these differing files,  one for 
>> prefork and one for worker ?
>>
>>
>> Thanks and Regards,
>> Seema.
>>
>>
>> ------------------------------------------------------------------------
>>
>> diff -r worker/usr/apache2/include/ap_config_auto.h 
>> prefork/usr/apache2/include/ap_config_auto.h
>> 5c5
>> < #define APACHE_MPM_DIR "server/mpm/worker"
>> ---
>>     
>>> #define APACHE_MPM_DIR "server/mpm/prefork"
>>>       
>> 114c114
>> < #define HAVE_PTHREAD_KILL 1
>> ---
>>     
>>> /* #undef HAVE_PTHREAD_KILL */
>>>       
>> diff -r worker/usr/apache2/include/mpm.h prefork/usr/apache2/include/mpm.h
>> 25a26,27
>>     
>>> #include "httpd.h"
>>> #include "mpm_default.h"
>>>       
>> 29,30c31,32
>> < #ifndef APACHE_MPM_WORKER_H
>> < #define APACHE_MPM_WORKER_H
>> ---
>>     
>>> #ifndef APACHE_MPM_PREFORK_H
>>> #define APACHE_MPM_PREFORK_H
>>>       
>> 32c34
>> < #define WORKER_MPM
>> ---
>>     
>>> #define PREFORK_MPM
>>>       
>> 34c36
>> < #define MPM_NAME "Worker"
>> ---
>>     
>>> #define MPM_NAME "Prefork"
>>>       
>> 47,48d48
>> < #define AP_MPM_WANT_SET_STACKSIZE
>> < #define AP_MPM_WANT_SET_GRACEFUL_SHUTDOWN
>> 49a50
>>     
>>> #define AP_MPM_WANT_SET_GRACEFUL_SHUTDOWN
>>>       
>> 51a53
>>     
>>> #define AP_MPM_USES_POD 1
>>>       
>> 59,61c61
>> < extern char ap_coredump_dir[MAX_STRING_LEN];
>> < 
>> < #endif /* APACHE_MPM_WORKER_H */
>> ---
>>     
>>> #endif /* APACHE_MPM_PREFORK_H */
>>>       
>> diff -r worker/usr/apache2/include/mpm_default.h 
>> prefork/usr/apache2/include/mpm_default.h
>> 32c32
>> < #define DEFAULT_START_DAEMON 3
>> ---
>>     
>>> #define DEFAULT_START_DAEMON 5
>>>       
>> 46c46
>> < #define DEFAULT_MIN_FREE_DAEMON 3
>> ---
>>     
>>> #define DEFAULT_MIN_FREE_DAEMON 5
>>>       
>> 49,52d48
>> < #ifndef DEFAULT_THREADS_PER_CHILD
>> < #define DEFAULT_THREADS_PER_CHILD 25
>> < #endif
>> < 
>>
>> diff -r worker/usr/apache2/modules/httpd.exp 
>> prefork/usr/apache2/modules/httpd.exp
>> 345a344,348
>>     
>>> ap_mpm_pod_open
>>> ap_mpm_pod_check
>>> ap_mpm_pod_close
>>> ap_mpm_pod_signal
>>> ap_mpm_pod_killpg
>>>       
>> diff -r worker/var/apache2/build/config.nice 
>> prefork/var/apache2/build/config.nice
>> 30c30
>> < "--with-mpm=worker" \
>> ---
>>     
>>> "--with-mpm=prefork" \
>>>       
>> diff -r worker/var/apache2/build/config_vars.mk 
>> prefork/var/apache2/build/config_vars.mk
>> 25c25
>> < MPM_NAME = worker
>> ---
>>     
>>> MPM_NAME = prefork
>>>       
>> Only in worker/usr/apache2/include: fdqueue.h
>> Only in worker/usr/apache2/include: pod.h
>>
>>     
> _______________________________________________
> webstack-discuss mailing list
> webstack-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>   

Reply via email to