my $vmswapsize = "";
my $disable_debuginfo = 0;#disable debuginfo when using build cmd
my $depends = 0; #depends subcommand to put reverse dependency
+my $depends_local_only = 0; #generate depends xml only from local repos
my $reverse_off = 0; #disable reverse dependency
my $reverse_on = 1; #enable reverse dependency
my $export_only = 0; # only export, not building
"vm-swap=s" => \$vmswapsize,
"disable-debuginfo" => \$disable_debuginfo,
"depends" => \$depends,
+ "depends-local-only" => \$depends_local_only,
"export-only" => \$export_only,
"tarfile" => \$tarfile,
);
return %packs;
}
+sub get_pack_list_from_local_repo {
+ my $rpmdeps = "$order_dir/.repo.cache.local";
+ my %fn;
+ my @local_pack_list = ();
+
+ open(my $fh, '<', "$rpmdeps") || die("$rpmdeps: $!\n");
+
+ while(<$fh>) {
+ chomp;
+ if (/^F:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
+ next if $fn{$1};
+ $fn{$1} = $2;
+ my $pack = $1;
+ $pack =~ /^(.*)\.([^\.]+)$/ or die;
+ my $this_pack_name = $1;
+ my $so = source_of($this_pack_name, \%subptomainp);
+ push(@local_pack_list, $so) if defined $so;
+ }
+ }
+ close $fh;
+ return @local_pack_list;
+}
+
#---------------------------------------------------------------------
# Re-read .repo.cache and update information of
# every package such as requires, provides etc.
info("parsing package data...");
my %packs = parse_packs($config, @packs);
- %to_build = %packs;
+
+ if ($depends_local_only) {
+ my @local_packs = get_pack_list_from_local_repo();
+ foreach my $p (sort keys %packs) {
+ if (grep $_ eq $p, @local_packs) {
+ $to_build{$p} = $packs{$p};
+ }
+ }
+ } else {
+ %to_build = %packs;
+ }
if (scalar (keys %to_build) == 0) {
warning("no available packages to generate depends.");