scripts/metadata.pm: avoid adding dup names in provides list
[openwrt/openwrt.git] / scripts / metadata.pm
index ea38735389a5f4bccdfc8a17358a83823b4a3f05..4a5464edc0d9e401a0fa1cecc086b9e10dd11afa 100644 (file)
@@ -250,6 +250,7 @@ sub parse_package_metadata($) {
                        my @vpkg = split /\s+/, $1;
                        @{$pkg->{provides}} = ($pkg->{name}, @vpkg);
                        foreach my $vpkg (@vpkg) {
+                               next if ($vpkg eq $pkg->{name});
                                $vpackage{$vpkg} or $vpackage{$vpkg} = [];
                                push @{$vpackage{$vpkg}}, $pkg;
                        }
@@ -283,8 +284,10 @@ sub parse_package_metadata($) {
 
                        for my $ugspec (@ugspecs) {
                                my @ugspec = split /:/, $ugspec, 2;
-                               parse_package_metadata_usergroup($src->{makefile}, "user", \%usernames, \%userids, $ugspec[0]) or return 0;
-                               if (@ugspec > 1) {
+                               if ($ugspec[0]) {
+                                       parse_package_metadata_usergroup($src->{makefile}, "user", \%usernames, \%userids, $ugspec[0]) or return 0;
+                               }
+                               if ($ugspec[1]) {
                                        parse_package_metadata_usergroup($src->{makefile}, "group", \%groupnames, \%groupids, $ugspec[1]) or return 0;
                                }
                        }