You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Benoît Desmeules <bd...@eurekium.com> on 2002/07/15 15:20:59 UTC

Apache2 modules version compatibility

Hi there

Last week, I sent this email to users@httpd.apache.org but I didn't get any 
response. I may have addressed to the wrong mailing list. I hope that you 
guys can help me out.


The product I'm working on at my company uses a web module as input, and, 
of course, we have modules for Apache1 and Apache2 and both works very fine.

However, today, I just upgraded my machine to 2.0.39 and noticed that my 
old module does not work. I had to recompile the module (I got a message 
"module msip_apr2.cpp is not compatible with this version of Apache. Please 
contact the vendor for the correct version.").

Up to now, it's ok. I thought I'd have to recompile the module and then it 
would work for any previous version of Aapche2. However, it's not the case. 
When the module was recompiled with Apache 2.0.39, I could not make it run 
on a 2.0.35 server (same error message as previous one).

My question is the following: does it always work like that? I mean, having 
to recompile your Apache2 modules when using a new version of Apache2? Is 
it specific to 2.0.39? I know some major security issue was resolved in 
2.0.39. What does someone that needs to deliver a commercial module should 
do? Download all versions of Apache2 and compile his module with all of 
them, having the binaries ready depending on what the client's version of 
Apache2 is? Or force the client to use 2.0.39 since it has a big security 
fix? What if the client refuses (remember, the client usually does not take 
the decision you expect him to take :P)?

Here's some info about our development environment :
M$ Windows 2000 Service Pack 2
Visual Studio 6 Service Pack 5

If you need more info to answer my question, please ask. I really need some 
feedback on this.

	Thanks in advance

		Ben


Re: Apache2 modules version compatibility

Posted by Benoît Desmeules <bd...@eurekium.com>.
Hey Cliff

Thanks again for your quick response.
I wanted to ask you (and the community) a few other quick questions.

Is it possible that 2.0.35 and 2.0.36 are compatible in terms of 
dynamically loadable modules? I've compiled my module with both and both 
modules can be loaded on both versions. Would it be safer to distribute 
distinct module version for those two versions?

Is there a way in the httpd.conf file to check for server version before 
loading a module? Haven't found anything like it in the directives...

         Ben



At 12:04 7/15/2002 -0400, Cliff Woolley wrote:
>On Mon, 15 Jul 2002, [iso-8859-1] Benoît Desmeules wrote:
>
> > My question is the following: does it always work like that? I mean, having
> > to recompile your Apache2 modules when using a new version of Apache2? Is
> > it specific to 2.0.39? I know some major security issue was resolved in
> > 2.0.39. What does someone that needs to deliver a commercial module should
> > do? Download all versions of Apache2 and compile his module with all of
> > them, having the binaries ready depending on what the client's version of
> > Apache2 is? Or force the client to use 2.0.39 since it has a big security
> > fix? What if the client refuses (remember, the client usually does not take
> > the decision you expect him to take :P)?
>
>The reason for this is that due to API changes between the two versions,
>we were forced to bump the Module Magic Number since modules would not
>necessarily retain binary compatibility with the new API.
>
>Look in ap_mmn.h for the full revision history of the MMN.  Then go look
>at ap_mmn.h from Apache 1.3 ... as you can see, it's common to have MMN
>bumps for the first few sub-revisions, though things tend to settle down
>after that.
>
>In other words, if all you distribute is binaries, then yes, you'll have
>to have separate binaries for 2.0.35, 2.0.36, and 2.0.39.  And another for
>2.0.40 when it comes out, most likely.  Hopefully we'll soon settle the
>API down and *perhaps* 2.0.40 will see the last or next-to-last 2.0.x
>major number bump.  Perhaps.
>
>--Cliff


Re: Apache2 modules version compatibility

Posted by Cliff Woolley <jw...@virginia.edu>.
On Mon, 15 Jul 2002, [iso-8859-1] Beno�t Desmeules wrote:

> My question is the following: does it always work like that? I mean, having
> to recompile your Apache2 modules when using a new version of Apache2? Is
> it specific to 2.0.39? I know some major security issue was resolved in
> 2.0.39. What does someone that needs to deliver a commercial module should
> do? Download all versions of Apache2 and compile his module with all of
> them, having the binaries ready depending on what the client's version of
> Apache2 is? Or force the client to use 2.0.39 since it has a big security
> fix? What if the client refuses (remember, the client usually does not take
> the decision you expect him to take :P)?

The reason for this is that due to API changes between the two versions,
we were forced to bump the Module Magic Number since modules would not
necessarily retain binary compatibility with the new API.

Look in ap_mmn.h for the full revision history of the MMN.  Then go look
at ap_mmn.h from Apache 1.3 ... as you can see, it's common to have MMN
bumps for the first few sub-revisions, though things tend to settle down
after that.

In other words, if all you distribute is binaries, then yes, you'll have
to have separate binaries for 2.0.35, 2.0.36, and 2.0.39.  And another for
2.0.40 when it comes out, most likely.  Hopefully we'll soon settle the
API down and *perhaps* 2.0.40 will see the last or next-to-last 2.0.x
major number bump.  Perhaps.

--Cliff