package-dumpinfo,metadata: add ABI version information to package index
[openwrt/openwrt.git] / scripts / metadata.pm
index f252c5309ca82c1b31ca62804bf89110a1a0546f..a00d19f185a2bc28dea179e935572b19d3e04335 100644 (file)
@@ -256,6 +256,8 @@ sub parse_package_metadata($) {
                /^Source: \s*(.+)\s*$/ and $pkg->{source} = $1;
                /^License: \s*(.+)\s*$/ and $pkg->{license} = $1;
                /^LicenseFiles: \s*(.+)\s*$/ and $pkg->{licensefiles} = $1;
+               /^CPE-ID: \s*(.+)\s*$/ and $pkg->{cpe_id} = $1;
+               /^ABI-Version: \s*(.+)\s*$/ and $pkg->{abi_version} = $1;
                /^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
                /^Provides: \s*(.+)\s*$/ and do {
                        my @vpkg = split /\s+/, $1;
@@ -295,13 +297,19 @@ sub parse_package_metadata($) {
                        my @ugspecs = split /\s+/, $1;
 
                        for my $ugspec (@ugspecs) {
-                               my @ugspec = split /:/, $ugspec, 2;
+                               my @ugspec = split /:/, $ugspec, 3;
                                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;
                                }
+                               if ($ugspec[2]) {
+                                       my @addngroups = split /,/, $ugspec[2];
+                                       for my $addngroup (@addngroups) {
+                                               parse_package_metadata_usergroup($src->{makefile}, "group", \%groupnames, \%groupids, $addngroup) or return 0;
+                                       }
+                               }
                        }
                };
        }