From e3d5b384aa67c5562d59e8745fc6c48a9f2a997d Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Fri, 18 Jan 2019 12:43:06 +0100
Subject: [PATCH] build: expose ABI version in .packageauxvars

Subdequent commits need this information to resolve the ABI version when
computing binary ipk dependencies.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 include/package-dumpinfo.mk | 3 ++-
 scripts/metadata.pm         | 1 +
 scripts/package-metadata.pl | 9 +++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk
index 8a42be5bd1..ef98c482fb 100644
--- a/include/package-dumpinfo.mk
+++ b/include/package-dumpinfo.mk
@@ -24,7 +24,8 @@ $(if $(MENU),Menu: $(MENU)
 )$(if $(DEFAULT),Default: $(DEFAULT)
 )$(if $(findstring $(PREREQ_CHECK),1),Prereq-Check: 1
 )Version: $(VERSION)
-Depends: $(call PKG_FIXUP_DEPENDS,$(1),$(DEPENDS))
+$(if $(ABI_VERSION),ABIVersion: $(ABI_VERSION)
+)Depends: $(call PKG_FIXUP_DEPENDS,$(1),$(DEPENDS))
 Conflicts: $(CONFLICTS)
 Menu-Depends: $(MDEPENDS)
 Provides: $(PROVIDES)
diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index 4a5464edc0..5300e293e7 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -238,6 +238,7 @@ sub parse_package_metadata($) {
 		/^Build-Types:\s*(.+)\s*$/ and $src->{buildtypes} = [ split /\s+/, $1 ];
 		next unless $pkg;
 		/^Version: \s*(.+)\s*$/ and $pkg->{version} = $1;
+		/^ABIVersion: \s*(.+)\s*$/ and $pkg->{abiversion} = $1;
 		/^Title: \s*(.+)\s*$/ and $pkg->{title} = $1;
 		/^Menu: \s*(.+)\s*$/ and $pkg->{menu} = $1;
 		/^Submenu: \s*(.+)\s*$/ and $pkg->{submenu} = $1;
diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index b8c5de298a..b69ceb216a 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -516,6 +516,15 @@ sub gen_package_auxiliary() {
 		if ($pkg->{name} && $pkg->{repository}) {
 			print "Package/$name/subdir = $pkg->{repository}\n";
 		}
+		if ($pkg->{name} && defined($pkg->{abiversion})) {
+			if ($pkg->{abiversion} =~ m!^(\d{4})-(\d{2})-(\d{2})-[0-9a-f]{7,40}$!) {
+				print STDERR "WARNING: Reducing ABI version '$pkg->{abiversion}' of package '$name' to '$1$2$3'\n";
+				print "Package/$name/abiversion = $1$2$3\n";
+			}
+			elsif (length $pkg->{abiversion}) {
+				print "Package/$name/abiversion = $pkg->{abiversion}\n";
+			}
+		}
 	}
 }