ODE and ABI stability
Hi,
First let me introduce myself, I'm a Linux enthusiast and a Fedora developer.
As Fedora developer I'm the creator and maintainer of the Fedora ode packages 
(since ode-0.6)
Today I started on updating ode in Fedora to 0.10, as with each release I 
started with comparing the public headers to check for ABI changes, to my 
disappointment this is the first ode release that breaks the ABI with older 
releases. In some places without a good reason (such as adding values to an 
enumerate and not adding them at the end).
In other places (adding additional members to structs) I assume with good 
reason. I wonder did the API also change, or should programs which worked with 
0.9 still work fine with 0.10.0 ?
###
Much to my disappointment the ChangeLog reads:
* Disabled building shared library by default with autotools. ODE
  shouldn't be installed as a system library.
This is IMHO not acceptable. This _directly_ contradicts most Linux 
distributions on libraries, we don't want to have a zillion (compiled) copies 
of libraries in our package repository instead we want one shared library, so 
that we've one place to issue bugfixes, updates, etc.
Note that atleast Fedora, but probably also other distributions (I'm pretty 
certain Debian and thus Ubuntu too) will keep compiling ode as a shared 
library, even if that means that all dependend packages need to be rebuild each 
upstream release.
Thus I would also like to ask you to reconsider the current use of the libtool 
-release option when linking, instead of libode-0.10.0.so I would like to see a 
normal versioned so like libode.so.4 where the last number get bumped each time 
the ABI changed, so it would have stayed the same for ode-0.6 till ode-0.9 and 
be bumped from 0.9 - 0.10. This would then be combined with being carefull 
about ABI breakage where not necessary. I'm not asking you to never change the 
ABI, just to avoid it when not needed.
###
While looking around for some more info I found the following page on the wiki:
http://opende.sourceforge.net/mediawiki-1.6.10/index.php/Products_that_use_ODE
I noticed that non of the packages in Fedora which use ode are listed here, so 
you might want to expand this page with the following programs:
crystalspace
maniadrive (raydium)
stormbaancoureur
xmoto
machineball
(For more info on each use google, if that doesn't help ask me).
###
While preparing Fedora packages I noticed that you try to detect if the 
compilation target has a performance counter (pentium=yes) but instead you 
detect fi the compilation host has such a performance counter, the attached 
patch fixes this.
Thanks & Regards,
Hans
diff -up ode-0.10.0/configure.in~ ode-0.10.0/configure.in
--- ode-0.10.0/configure.in~	2008-07-02 11:41:50.000000000 +0200
+++ ode-0.10.0/configure.in	2008-07-02 11:41:50.000000000 +0200
@@ -60,7 +60,7 @@ dnl this may NOT be the machine on which
 dnl so allow users to compile programs for their target machine.
 pentium=no
 cpu64=no
-case "$host_cpu" in
+case "$target_cpu" in
   i586 | i686 | i786 )
         pentium=yes
         AC_DEFINE(PENTIUM,1,[compiling for a pentium on a gcc-based platform?])
diff -up ode-0.10.0/configure~ ode-0.10.0/configure
--- ode-0.10.0/configure~	2008-07-02 11:41:48.000000000 +0200
+++ ode-0.10.0/configure	2008-07-02 11:41:48.000000000 +0200
@@ -20857,7 +20857,7 @@ echo "${ECHO_T}$enable_demos" >&6; }
 
 pentium=no
 cpu64=no
-case "$host_cpu" in
+case "$target_cpu" in
   i586 | i686 | i786 )
         pentium=yes
 
Reply to: