Browse Source

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 <[email protected]>
Jo-Philipp Wich 6 years ago
parent
commit
e3d5b384aa
3 changed files with 12 additions and 1 deletions
  1. 2 1
      include/package-dumpinfo.mk
  2. 1 0
      scripts/metadata.pm
  3. 9 0
      scripts/package-metadata.pl

+ 2 - 1
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)

+ 1 - 0
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;

+ 9 - 0
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";
+			}
+		}
 	}
 }