瀏覽代碼

build: extend ABI_VERSION suffixing to provides

When a library package specifies additional provides, e.g. libncurses
which provides libncursesw, we should also append the abi version
suffix to each provide, since there may be more than one package
providing the virtual library.

Signed-off-by: Jo-Philipp Wich <[email protected]>
Jo-Philipp Wich 6 年之前
父節點
當前提交
60558790a2
共有 2 個文件被更改,包括 11 次插入5 次删除
  1. 1 1
      include/package-ipkg.mk
  2. 10 4
      scripts/package-metadata.pl

+ 1 - 1
include/package-ipkg.mk

@@ -162,7 +162,7 @@ Package: $(1)$$(ABIV_$(1))
 Version: $(VERSION)
 $$(call addfield,Depends,$$(Package/$(1)/DEPENDS)
 )$$(call addfield,Conflicts,$$(call mergelist,$(CONFLICTS))
-)$$(call addfield,Provides,$$(call mergelist,$(PROVIDES)$$(if $$(ABIV_$(1)), $(1)))
+)$$(call addfield,Provides,$$(call mergelist,$(PROVIDES)$$(if $$(ABIV_$(1)), $(1) $(foreach provide,$(PROVIDES),$(provide)$$(ABIV_$(1)))))
 )$$(call addfield,Alternatives,$$(call mergelist,$(ALTERNATIVES))
 )$$(call addfield,Source,$(SOURCE)
 )$$(call addfield,SourceName,$(1)

+ 10 - 4
scripts/package-metadata.pl

@@ -516,13 +516,19 @@ sub gen_package_auxiliary() {
 		if ($pkg->{name} && $pkg->{repository}) {
 			print "Package/$name/subdir = $pkg->{repository}\n";
 		}
-		if ($pkg->{name} && defined($pkg->{abiversion})) {
+		if ($pkg->{name} && defined($pkg->{abiversion}) && length($pkg->{abiversion})) {
+			my $abiv;
+
 			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";
+				$abiv = "$1$2$3";
+			}
+			else {
+				$abiv = $pkg->{abiversion};
 			}
-			elsif (length $pkg->{abiversion}) {
-				print "Package/$name/abiversion = $pkg->{abiversion}\n";
+
+			foreach my $n (@{$pkg->{provides}}) {
+				print "Package/$n/abiversion = $abiv\n";
 			}
 		}
 	}