packages: set more explicit ABI_VERSION values
authorJo-Philipp Wich <jo@mein.io>
Thu, 17 Jan 2019 16:24:31 +0000 (17:24 +0100)
committerJo-Philipp Wich <jo@mein.io>
Sat, 19 Jan 2019 13:31:51 +0000 (14:31 +0100)
In the case of upstream libraries, set the ABI_VERSION variable to the
soname value of the first version version after the last backwards
incompatible change.

For custom OpenWrt libraries, set the ABI_VERSION to the date of the
last Git commit doing backwards incompatible changes to the source,
such as changing function singatures or dropping exported symbols.

The soname values have been determined by either checking
https://abi-laboratory.pro/index.php?view=tracker or - in the case
of OpenWrt libraries - by carefully reviewing the changes made to
header files thorough the corresponding Git history.

In the future, the ABI_VERSION values must be bumped whenever the
library is updated to an incpompatible version but not with every
package update, in order to reduce the dependency churn in the
binary package repository.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/libs/libubox/Makefile
package/libs/mbedtls/Makefile
package/libs/ncurses/Makefile
package/libs/openssl/Makefile
package/libs/readline/Makefile
package/libs/ustream-ssl/Makefile
package/network/utils/iptables/Makefile
package/network/utils/iwinfo/Makefile
package/system/ubus/Makefile

index a0e75f936c95d6ba92cc5c92e7fa08040f084426..8267486d7228418d34d95fc083a2a1e457cb07e7 100644 (file)
@@ -27,7 +27,7 @@ define Package/libubox
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Basic utility library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20170601
   DEPENDS:=
 endef
 
index e265cac575a9cb0bb16b24be04b68b46fa08d50f..ce513e59b06014c82f0e34a897e2bc33c41dc21d 100644 (file)
@@ -39,7 +39,7 @@ $(call Package/mbedtls/Default)
   CATEGORY:=Libraries
   SUBMENU:=SSL
   TITLE+= (library)
-  ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
+  ABI_VERSION:=12
 endef
 
 define Package/mbedtls-util
index 904d3c1551ff6ba0f4651255064fa8cebbb2d838..5be65c2f083cabb85db4cf79ecab2368b4012768 100644 (file)
@@ -41,7 +41,7 @@ define Package/libncurses
   URL:=http://www.gnu.org/software/ncurses/
   PROVIDES:=libncursesw
   DEPENDS:= +terminfo
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=6
 endef
 
 define Package/libncurses-dev
index 1e28267560f5a411986d3943ff79af4074238c25..35759566f957cb5a30ba88a16ecff50f3d91153e 100644 (file)
@@ -74,7 +74,7 @@ $(call Package/openssl/Default)
   CATEGORY:=Libraries
   DEPENDS:=+OPENSSL_WITH_COMPRESSION:zlib
   TITLE+= (libraries)
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=1.0.0
   MENU:=1
 endef
 
index ca3a468637afd4954baf87ec64dbe73a1f924bf6..246e3187500bcc20f9200901cbc5e5abb9c09e59 100644 (file)
@@ -31,7 +31,7 @@ define Package/libreadline
   CATEGORY:=Libraries
   TITLE:=Command lines edition library
   URL:=http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=7
 endef
 
 define Package/libreadline/description
index 2ea5bf0bd59a6319b63913a11477c0cd13376f41..a15f3d8ab8e22fdbf445b7ce9d5912737df47b18 100644 (file)
@@ -25,7 +25,7 @@ define Package/libustream/default
   CATEGORY:=Libraries
   TITLE:=ustream SSL Library
   DEPENDS:=+libubox
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20150806
 endef
 
 define Package/libustream-openssl
index 6c42774ef41bec69b3b3400249d4844115e89c25..c6e0a649669b2bbefabb43cc570e73824a892684 100644 (file)
@@ -493,7 +493,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   DEPENDS:=+libip4tc +libip6tc +libxtables
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   TITLE:=IPv4/IPv6 firewall - shared libiptc library (nf compatibility stub)
 endef
 
@@ -502,7 +502,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=IPv4 firewall - shared libiptc library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   DEPENDS:=+libxtables
 endef
 
@@ -511,7 +511,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=IPv6 firewall - shared libiptc library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   DEPENDS:=+libxtables
 endef
 
@@ -520,7 +520,7 @@ define Package/libxtables
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=IPv4/IPv6 firewall - shared xtables library
- ABI_VERSION:=$(PKG_VERSION)
+ ABI_VERSION:=12
  DEPENDS:= \
        +IPTABLES_CONNLABEL:libnetfilter-conntrack \
        +IPTABLES_NFTABLES:libnftnl
@@ -531,7 +531,7 @@ define Package/libxtables-nft
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=IPv4/IPv6 firewall - shared xtables nft library
- ABI_VERSION:=$(PKG_VERSION)
+ ABI_VERSION:=12
  DEPENDS:=libxtables
 endef
 
index c737dd41e768686484759e615163f6a532b3e8be..000a79cbf68aee5cd6a0620e6dc0cfb6f7fc50ca 100644 (file)
@@ -33,7 +33,7 @@ define Package/libiwinfo
   CATEGORY:=Libraries
   TITLE:=Generalized Wireless Information Library (iwinfo)
   DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny +libuci +libubus
-  ABI_VERSION:=$(PKG_RELEASE)
+  ABI_VERSION:=20181126
 endef
 
 define Package/libiwinfo/description
index 8fd5cf6edbb16d86401547f911e3a5b2d093b91b..66531323518cf10113c724b0e1e3262d4d141067 100644 (file)
@@ -36,7 +36,7 @@ define Package/libubus
   SECTION:=libs
   CATEGORY:=Libraries
   DEPENDS:=+libubox
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20170705
   TITLE:=OpenWrt RPC client library
 endef