From: Hyokeun Jeon Date: Tue, 23 Mar 2021 06:51:17 +0000 (+0900) Subject: --profiling-reference option X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=851f992393070382a638e135b109146fe581d6e7;p=tools%2Fdepanneur.git --profiling-reference option --- diff --git a/depanneur b/depanneur index 36b996f..4ac62ec 100755 --- a/depanneur +++ b/depanneur @@ -195,6 +195,7 @@ my $reverse_on = 1; #enable reverse dependency my $export_only = 0; # only export, not building my $tarfile = 0; # generate tar file for dependence & reverse dependence xml file my $preordered_list = ""; +my $profiling_reference = ""; GetOptions ( "repository=s" => \@repos, @@ -255,6 +256,7 @@ GetOptions ( "export-only" => \$export_only, "tarfile" => \$tarfile, "preordered-list=s" => \$preordered_list, + "profiling-reference=s" => \$profiling_reference, ); if ( $help ) { @@ -2584,51 +2586,50 @@ sub prepare_preorder_list { my_system("rm -rf bsr_profiling_report"); - my $preview_command = "bsr preview -a $arch --verbose --depsnumbersort "; - my $dep_xml_file = "$depends_dir/$dist/$arch/$dist\_$arch\_pkgdepends.xml"; - if (-e $dep_xml_file) { - $preview_command = $preview_command . " -x \"$dep_xml_file\" "; - } + my @preview_orders = (); - # Get candidate repos - my $candidate_ref = ""; - foreach my $r (@package_repos) { - if (index($r, "base") != -1 || (index($r, "/debug") != -1)) { - next; - } - $candidate_ref = $r; - } - if ($candidate_ref ne "") { - $preview_command = $preview_command . " -r \"$candidate_ref\" --criticalsort "; + if ($preordered_list ne "") { + @preview_orders = split(',', $preordered_list) } - info(""); - info($preview_command); - info(""); + if ($profiling_reference ne "") { + my $preview_command = "bsr reorder -j $profiling_reference --verbose "; + my_system($preview_command); + + info(""); + info($preview_command); + info(""); - my_system($preview_command); + my $preview_config = ""; + if (-f ".bsr.preview.yaml") { + $preview_config = LoadFile(".bsr.preview.yaml"); + unlink ".bsr.preview.yaml"; + if ($preview_config + && $preview_config->{preview} + && $preview_config->{preview}->{packages} + && @{$preview_config->{preview}->{packages}} > 0) { - #.bsr.preview.yaml + info("We have preview orders... " . @{$preview_config->{preview}->{packages}}); - my $preview_config = ""; - $preordered_list = ""; - if (-f ".bsr.preview.yaml") { - $preview_config = LoadFile(".bsr.preview.yaml"); - unlink ".bsr.preview.yaml"; - if ($preview_config - && $preview_config->{preview} - && $preview_config->{preview}->{packages} - && @{$preview_config->{preview}->{packages}} > 0) { - $preordered_list = join ",", @{$preview_config->{preview}->{packages}}; + foreach my $p (@{$preview_config->{preview}->{packages}}) { + if ( !(grep $_ eq $p, @preview_orders) ) { + push @preview_orders, $p; + } + } + + } else { + $preview_config = ""; + info("Empty config"); + } } else { $preview_config = ""; + info("No .bsr.preview.yaml file found"); } - } else { - $preview_config = ""; } - # Remove depends directory - my_system("rm -rf $depends_dir"); + if (@preview_orders) { + $preordered_list = join ",", @preview_orders; + } } sub profiling_report { @@ -2835,9 +2836,8 @@ info("package dependency resolving ..."); update_pkgdeps($reverse_on); update_pkgrdeps(); -generate_depends_xmlfile(); - if ($depends) { + generate_depends_xmlfile(); exit 0; } @@ -3014,6 +3014,7 @@ if ($preordered_list ne "") { } } + # Main process loop # Every loop, first update package information # include dependencies if there is new package