[Lsb-messages] /var/www/bzr/lsb/devel/componenttodb r54: Fix processing of requires/provides for Deb packages

Denis Silakov dsilakov at gmail.com
Thu Jul 14 11:59:04 UTC 2016


------------------------------------------------------------
revno: 54
committer: Denis Silakov <dsilakov at gmail.com>
branch nick: componenttodb
timestamp: Thu 2016-07-14 14:59:04 +0300
message:
  Fix processing of requires/provides for Deb packages
modified:
  Upload.pm
  upload_distr_data.pl
-------------- next part --------------
=== modified file 'Upload.pm'
--- a/Upload.pm	2016-06-20 14:34:48 +0000
+++ b/Upload.pm	2016-07-14 11:59:04 +0000
@@ -1082,6 +1082,9 @@
     elsif( $elf_arch =~ /ARM/ ) {
         return "ARM";
     }
+    elsif( $elf_arch =~ /AArch64/ ) {
+        return "AArch64";
+    }
 
     return 0;
 }

=== modified file 'upload_distr_data.pl'
--- a/upload_distr_data.pl	2016-06-20 14:34:48 +0000
+++ b/upload_distr_data.pl	2016-07-14 11:59:04 +0000
@@ -297,7 +297,10 @@
                 $lib_arch_id = $row[0];
             }
             else {
-                die "Unknown architecture name: $lib_arch";
+                warn "Cannot determine db architecture name for $lib_arch; the file will be skipped";
+                # Set cmd to 1, so the wile will not be treated as library and will not be uploaded
+                $cmd=1;
+                next;
             }
             add_library($RLname, $RLversion, $RLrunname, $RLpath, $RLabitag, $RLsoname, $lib_arch_id);
 
@@ -1147,19 +1150,28 @@
 # Add CompProvides record
 sub add_comp_provides($ ) # args: (provided capability name)
 {
-    my ($cap) = ($_[0]);
-    my ($flag, $name, $ver) = parse_req_version($cap);
-
-    my $flag_ins = $flag ? "'$flag'" : "NULL";
-    my $ver_ins = $ver ? "'$ver'" : "NULL";
-    if( $DBmode eq "patch" ) {
-        push( @comp_provides, "(\@C,'$name',$flag_ins,$ver_ins)" );
-    }
-    else {
-        push( @comp_provides, "($ComponentId,'$name',$flag_ins,$ver_ins)" );
-    }
-
-    print "'$cap' capability has been assigned to the component\n" if(not $quiet);
+    my ($caps) = ($_[0]);
+
+    my @capabilities = split( /,/, $caps);
+
+    foreach my $cap (@capabilities) {
+        $cap =~ s/<</</;
+        $cap =~ s/>>/>/;
+        # Deb packages has versions in brackets - drop the brackets
+        $cap =~ s/\(((>|<|=).*)\)/$1/;
+        $cap = trim($cap);
+
+        my ($flag, $name, $ver) = parse_req_version($cap);
+        my $flag_ins = $flag ? "'$flag'" : "NULL";
+        my $ver_ins = $ver ? "'$ver'" : "NULL";
+        if( $DBmode eq "patch" ) {
+            push( @comp_provides, "(\@C,'$name',$flag_ins,$ver_ins)" );
+        }
+        else {
+            push( @comp_provides, "($ComponentId,'$name',$flag_ins,$ver_ins)" );
+        }
+        print "'$cap' capability has been assigned to the component\n" if(not $quiet);
+    }
 }
 
 # Add CompFile record
@@ -1182,18 +1194,27 @@
 # Add CompRequires record
 sub add_comp_requires($ ) # args: (dependency name)
 {
-    my ($compdep) = ($_[0]);
-    my ($flag, $name, $ver) = parse_req_version($compdep);
-
-    if( $compdep ) {
+    my ($compdeps) = ($_[0]);
+
+    # Debian can have alternative dependencies joined by "|", let's treat them as separate ones
+    my @deps = split( / \| /, $compdeps);
+
+    foreach my $compdep (@deps) {
+        $compdep =~ s/<</</;
+        $compdep =~ s/>>/>/;
+        # Deb packages has versions in brackets - drop the brackets
+        $compdep =~ s/\(((>|<|=).*)\)/$1/;
+        $compdep = trim($compdep);
+
+        my ($flag, $name, $ver) = parse_req_version($compdep);
         my $flag_ins = $flag ? "'$flag'" : "NULL";
         my $ver_ins = $ver ? "'$ver'" : "NULL";
 
         if( $DBmode eq "patch" ) {
-            push( @comp_requires, "(\@C,'$name',$flag_ins,$ver_ins)" );
+            push( @comp_requires, "(\@C,'$name',$ver_ins,$flag_ins)" );
         }
         else {
-            push( @comp_requires, "($ComponentId,'$name',$flag_ins,$ver_ins)" );
+            push( @comp_requires, "($ComponentId,'$name',$ver_ins,$flag_ins)" );
         }
 
         print "'$compdep' dependency has been assigned to the component\n" if(not $quiet);



More information about the lsb-messages mailing list