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"; } } }