From 797e5c1c48e6a5b8866504ea42bd7298c63ad3d5 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Thu, 17 Jan 2019 17:24:31 +0100
Subject: packages: set more explicit ABI_VERSION values

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           |  2 +-
 package/libs/mbedtls/Makefile           |  2 +-
 package/libs/ncurses/Makefile           |  2 +-
 package/libs/openssl/Makefile           |  2 +-
 package/libs/readline/Makefile          |  2 +-
 package/libs/ustream-ssl/Makefile       |  2 +-
 package/network/utils/iptables/Makefile | 10 +++++-----
 package/network/utils/iwinfo/Makefile   |  2 +-
 package/system/ubus/Makefile            |  2 +-
 9 files changed, 13 insertions(+), 13 deletions(-)

(limited to 'package')

diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile
index a0e75f936c..8267486d72 100644
--- a/package/libs/libubox/Makefile
+++ b/package/libs/libubox/Makefile
@@ -27,7 +27,7 @@ define Package/libubox
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Basic utility library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20170601
   DEPENDS:=
 endef
 
diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile
index e265cac575..ce513e59b0 100644
--- a/package/libs/mbedtls/Makefile
+++ b/package/libs/mbedtls/Makefile
@@ -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
diff --git a/package/libs/ncurses/Makefile b/package/libs/ncurses/Makefile
index 904d3c1551..5be65c2f08 100644
--- a/package/libs/ncurses/Makefile
+++ b/package/libs/ncurses/Makefile
@@ -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
diff --git a/package/libs/openssl/Makefile b/package/libs/openssl/Makefile
index 1e28267560..35759566f9 100644
--- a/package/libs/openssl/Makefile
+++ b/package/libs/openssl/Makefile
@@ -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
 
diff --git a/package/libs/readline/Makefile b/package/libs/readline/Makefile
index ca3a468637..246e318750 100644
--- a/package/libs/readline/Makefile
+++ b/package/libs/readline/Makefile
@@ -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
diff --git a/package/libs/ustream-ssl/Makefile b/package/libs/ustream-ssl/Makefile
index 2ea5bf0bd5..a15f3d8ab8 100644
--- a/package/libs/ustream-ssl/Makefile
+++ b/package/libs/ustream-ssl/Makefile
@@ -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
diff --git a/package/network/utils/iptables/Makefile b/package/network/utils/iptables/Makefile
index 6c42774ef4..c6e0a64966 100644
--- a/package/network/utils/iptables/Makefile
+++ b/package/network/utils/iptables/Makefile
@@ -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
 
diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile
index c737dd41e7..000a79cbf6 100644
--- a/package/network/utils/iwinfo/Makefile
+++ b/package/network/utils/iwinfo/Makefile
@@ -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
diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile
index 8fd5cf6edb..6653132351 100644
--- a/package/system/ubus/Makefile
+++ b/package/system/ubus/Makefile
@@ -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
 
-- 
cgit v1.2.3