]> granicus.if.org Git - libnl/commitdiff
Provide better help text when bumping CURRENT,AGE,REVISION
authorThomas Graf <tgraf@suug.ch>
Thu, 24 Jan 2013 13:34:22 +0000 (14:34 +0100)
committerThomas Graf <tgraf@suug.ch>
Thu, 24 Jan 2013 13:34:22 +0000 (14:34 +0100)
Signed-off-by: Thomas Graf <tgraf@suug.ch>
configure.ac

index 9599476685b16d238ef933131aa230787f96f2df..7654b70656c38ddb31f370bf97cee72de8538349 100644 (file)
@@ -16,23 +16,23 @@ m4_define([libnl_minor_version], [2])
 m4_define([libnl_micro_version], [20])
 
 
-# If either revision or age are omitted, they default to 0. Also note that age
-# must be less than or equal to the current interface number.
+# The following explanation may help to understand the above rules a bit
+# better: consider that there are three possible kinds of reactions from
+# users of your library to changes in a shared library:
 #
-# Here are a set of rules to help you update your library version information:
+# 1. Programs using the previous version may use the new version as drop-in
+#    replacement, and programs using the new version can also work with the
+#    previous one. In other words, no recompiling nor relinking is needed.
+#    In this case, bump revision only, don't touch current nor age.
 #
-# 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 since the last public release, then
-#    set age to 0.
+# 2. Programs using the previous version may use the new version as drop-in
+#    replacement, but programs using the new version may use APIs not
+#    present in the previous one. In other words, a program linking against
+#    the new version may fail with “unresolved symbols” if linking against
+#    the old version at runtime: set revision to 0, bump current and age.
+#
+# 3. Programs may need to be changed, recompiled, relinked in order to use
+#    the new version. Bump current, set revision and age to 0.
 
 m4_define([libnl_lt_current],    [216])
 m4_define([libnl_lt_revision],  [0])