From: Jo-Philipp Wich Date: Mon, 21 Jan 2019 16:29:57 +0000 (+0100) Subject: build: extend ABI_VERSION suffixing to provides X-Git-Tag: v19.07.0-rc1~1540 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=60558790a2a832265ec041131e851b6648f514d4;p=openwrt%2Fstaging%2Fpepe2k.git 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 --- diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index dc05eefc7c..1cb4da8e30 100644 --- a/include/package-ipkg.mk +++ b/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) diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl index b69ceb216a..e0cdff1e81 100755 --- a/scripts/package-metadata.pl +++ b/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"; } } }