build: add ABI_VERSION to binary package names
authorJo-Philipp Wich <jo@mein.io>
Thu, 17 Jan 2019 16:31:09 +0000 (17:31 +0100)
committerJo-Philipp Wich <jo@mein.io>
Sat, 19 Jan 2019 13:32:12 +0000 (14:32 +0100)
commite6bcf1e4acc4901c1803cdccc4b9fabfd6d84c90
treef7b66277175ff0ae6baf093db66ca929dfb2b225
parente3d5b384aa67c5562d59e8745fc6c48a9f2a997d
build: add ABI_VERSION to binary package names

Add the ABI_VERSION source makefile variable to the binary package basename
and resolve source dependencies on packages with ABI_VERSION set to such
expanded names.

If for example a package specifies DEPENDS:=libopenssl while the OpenSSL
Makefile specifies ABI_VERSION:=1.0.0, the resulting ipk control data
dependency will be "Depends: libopenssl1.0.0" and the libopenssl ipk file
will be called "libopenssl1.0.0_<version>_<arch>.ipk".

The next time a library such as OpenSSL is updated to an incompatible
version, the ABI_VERSION shall be changed accordingly to prevent opkg from
simply upgrading to an incompatible library without considering the
dependencies of already installed packages.

Also introduce another "SourceName" control field which is required by
the newly introduced "scritps/ipkg-remove" to determine the proper related
.ipk files to delete upon buildroot package clean operations.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
include/feeds.mk
include/image.mk
include/package-ipkg.mk
package/Makefile
scripts/ipkg-remove [new file with mode: 0755]