[Spice-devel,v4,1/3] configure.ac: highlight current, revision and age

Submitted by Alon Levy on June 12, 2012, 1 p.m.


Message ID 1339506026-28999-1-git-send-email-alevy@redhat.com
State New
Headers show

Not browsing as part of any series.

Commit Message

Alon Levy June 12, 2012, 1 p.m.
Move to the top so anyone changing the library version will have a
higher likelihood of noticing them and thinking if they need changes as
well. Added the rules, copied from libtool's info page, as a reminder.

Added some obvious docs for the already defined SPICE_MICRO, SPICE_MINOR
Changes per Marc-Andre and Daniel's comments:
 * no SONAME change - library name starts with libspice-server.so.1
 * changed -version-number usage to -version-info

Is this guranteed to be an increase though? numerically it seems
 libspice-server.1.2.0 > libspice.server.1.0.2
 (change made by the second patch, the third is obviously newer since it's 1.3.0)

But do package managers treat this as newer? Daniel, any idea?

 configure.ac |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/configure.ac b/configure.ac
index 66f9d12..efb0128 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,48 @@ 
+# Making releases:
+# 1. Increment SPICE_MICRO if no interface change has been done
+# 2. Increment SPICE_MINOR and zero SPICE_MICRO if new interfaces have been added,
+#    no changes to existing interfaces.
+# 3. Increment SPICE_MAJOR and zero both SPICE_MINOR and SPICE_MICRO if non
+#    backward compatible changes (interface changed or removed).
+# *additionally* follow the rules below for the libtool version.
 m4_define([SPICE_MAJOR], 0)
 m4_define([SPICE_MINOR], 10)
 m4_define([SPICE_MICRO], 1)
+# See info libtool or http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+# Here are the 6 rules: (rule 1 here just to avoid saying what I omitted)
+# 1. Start with version information of `0:0:0' for each libtool library.
+# 2. Update the version information only immediately before a public
+#    release of your software.  More frequent updates are unnecessary,
+#    and only guarantee that the current interface number gets larger
+#    faster.
+# 3. If the library source code has changed at all since the last
+#    update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
+# 4. If any interfaces have been added, removed, or changed since the
+#    last update, increment CURRENT, and set REVISION to 0.
+# 5. If any interfaces have been added since the last public release,
+#    then increment AGE.
+# 6. If any interfaces have been removed or changed since the last
+#    public release, then set AGE to 0.
+m4_define([SPICE_CURRENT], [1])
+m4_define([SPICE_REVISION], [0])
+m4_define([SPICE_AGE], [2])
+# Note on the library name (SONAME) produced by libtool (for reference, gleaned
+# from looking at libtool 2.4.2), applies for linux only, different for other
+# operating systems:
+# libspice-servver.so.current-age.age.revision
@@ -33,7 +73,7 @@  AC_FUNC_ALLOCA
 AC_DEFINE([__STDC_FORMAT_MACROS],[],[Force definition of format macros for C++])
-SPICE_LT_VERSION=m4_format("%d:%d:%d", 1, 0, 2)
 # Check for the CPU we are using