On Mar 20, 2007, at 9:06 PM, Bart Smaalders wrote:

> ...

> Stefan Teleman <Stefan.Teleman at Sun.COM>
> 15 March 2007
> ...
>       This case also announces the EOL of the Apache 2.0.x APR Interface
>       [with an announcement to take place in a Solaris 10 Update], and
>       EOFs the Apache 2.0.x APR Interface in the next Minor Release of
>       Solaris.

Apache httpd 2.0.x uses the APR 0.9.x series of libraries.
Apache httpd 2.2.x uses the APR 1.2.x series of libraries.

You should be installing APR as a shared library with its major
version number indicating the ABI.  IIRC, Subversion still uses
the older libapr-0.

>       2.2.    API and ABI compatibility
>
>       The Apache 2.2.x Module API/ABI is NOT binary compatible with the
>       Apache 2.0.x Module API/ABI:
>
>       "Add-in modules for Apache 1.3 or 2.0 are not compatible with
>       Apache 2.2. If you are running third party add-in modules, you
>       must obtain modules compiled or updated for Apache 2.2 from that
>       third party, before you attempt to upgrade from these previous
>       versions. Modules compiled for Apache 2.2 should continue to work
>       for all 2.2.x releases." [4]
>
>       Simply put, upgrading from Apache 2.0.x to Apache 2.2.x will break
>       existing Apache 2.0.x applications which have installed third party
>       Apache Modules. Extensive Release Notes detailing the consequences of
>       this breakage will be included with this new Integration. The  
> original
>       ARC Case for Apache2 [PSARC 2004/676] proposed Standard  
> Classification
>       Stability Level for the APR Interface. It was not possible to  
> foresee,
>       at that time, that the APR Interface for Apache 2.2.x would become  
> API
>       and ABI incompatible with the Apache 2.0.x APR Interface. [4]

Of course it was possible -- the APR 1.x ABI has been frozen since
September 2004 (and was in use for httpd development long before that).

...

>       2.4.    Packaging and Delivery
>
>       The current integration proposal does NOT allow for the inclusion and
>       coexistence of multiple versions of Apache 2.x.x. Installing Apache
>       2.2.4 will overwrite the existing Apache 2.0.x installation [with the
>       exception of the configuration files located under /etc/apache2,  
> which
>       will be preserved].

Why?  You could preserve the existing interfaces simply by installing
in a different directory.  There is nothing preventing both from
running on the same system (albeit on different TCP ports).

>       6.1.    Interface Stability
>
>       The Apache Project broke API and ABI compatibility between version
>       2.0.x and version 2.2.x of the canonical distribution. [3] We
>       propose that all Apache2 Interfaces be classified as Uncommitted.

httpd versioning is M.N.x, where M = source compatibility (when to  
rewrite
the module), N = ABI compatibility (when to recompile the module), and
x = bugfix level (no ABI changes).

APR versioning is M.n.x.  Any ABI incompatible change will result in
a new major version number (as is appropriate for a shared library).

....Roy

Reply via email to