From 7a06098308affed9fd1498dc8f1cda7e7b6819d8 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 21 Nov 2006 16:44:20 +0000 Subject: move create_transaction() and prepare_transaction() from urpm.pm into urpm/install.pm --- gurpmi2 | 4 ++-- urpm.pm | 38 -------------------------------------- urpm/install.pm | 39 +++++++++++++++++++++++++++++++++++++++ urpmi | 4 ++-- 4 files changed, 43 insertions(+), 42 deletions(-) diff --git a/gurpmi2 b/gurpmi2 index d1edcef3..44cfcd25 100755 --- a/gurpmi2 +++ b/gurpmi2 @@ -228,7 +228,7 @@ sub do_install_3 () { exit 0 if $response eq 'cancel'; 1; }); - $urpm->create_transaction( + urpm::install::create_transaction($urpm, $state, split_level => $urpm->{options}{'split-level'}, split_length => $urpm->{options}{'split-length'}, @@ -237,7 +237,7 @@ sub do_install_3 () { my $progress_nb; foreach my $set (@{$state->{transaction} || []}) { my (@transaction_list, %transaction_sources); - $urpm->prepare_transaction($set, $list, \%sources, \@transaction_list, \%transaction_sources); + urpm::install::prepare_transaction($urpm, $set, $list, \%sources, \@transaction_list, \%transaction_sources); $urpm->download_packages_of_distant_media( \@transaction_list, \%transaction_sources, diff --git a/urpm.pm b/urpm.pm index e0c5a10d..16177d4f 100644 --- a/urpm.pm +++ b/urpm.pm @@ -2210,32 +2210,6 @@ sub resolve_dependencies { $need_restart; } -sub create_transaction { - my ($urpm, $state, %options) = @_; - - if ($urpm->{parallel_handler} || !$options{split_length} || - keys %{$state->{selected}} < $options{split_level}) { - #- build simplest transaction (no split). - $urpm->build_transaction_set(undef, $state, split_length => 0); - } else { - my $db; - - if ($options{rpmdb}) { - $db = new URPM; - $db->parse_synthesis($options{rpmdb}); - } else { - $db = db_open_or_die($urpm, $urpm->{root}); - } - - my $sig_handler = sub { undef $db; exit 3 }; - local $SIG{INT} = $sig_handler; - local $SIG{QUIT} = $sig_handler; - - #- build transaction set... - $urpm->build_transaction_set($db, $state, split_length => $options{split_length}); - } -} - #- get the list of packages that should not be upgraded or installed, #- typically from the inst.list or skip.list files. sub get_packages_list { @@ -2618,18 +2592,6 @@ sub download_packages_of_distant_media { 1; } -#- prepare transaction. -sub prepare_transaction { - my ($_urpm, $set, $list, $sources, $transaction_list, $transaction_sources) = @_; - - foreach my $id (@{$set->{upgrade}}) { - foreach (0..$#$list) { - exists $list->[$_]{$id} and $transaction_list->[$_]{$id} = $list->[$_]{$id}; - } - exists $sources->{$id} and $transaction_sources->{$id} = $sources->{$id}; - } -} - #- extract package that should be installed instead of upgraded, #- sources is a hash of id -> source rpm filename. sub extract_packages_to_install { diff --git a/urpm/install.pm b/urpm/install.pm index c17c72f6..0c0df043 100644 --- a/urpm/install.pm +++ b/urpm/install.pm @@ -16,6 +16,45 @@ eval { $progress_size < 5 and $progress_size = 5; }; + +#- prepare transaction. +sub prepare_transaction { + my ($_urpm, $set, $list, $sources, $transaction_list, $transaction_sources) = @_; + + foreach my $id (@{$set->{upgrade}}) { + foreach (0..$#$list) { + exists $list->[$_]{$id} and $transaction_list->[$_]{$id} = $list->[$_]{$id}; + } + exists $sources->{$id} and $transaction_sources->{$id} = $sources->{$id}; + } +} + +sub create_transaction { + my ($urpm, $state, %options) = @_; + + if ($urpm->{parallel_handler} || !$options{split_length} || + keys %{$state->{selected}} < $options{split_level}) { + #- build simplest transaction (no split). + $urpm->build_transaction_set(undef, $state, split_length => 0); + } else { + my $db; + + if ($options{rpmdb}) { + $db = new URPM; + $db->parse_synthesis($options{rpmdb}); + } else { + $db = urpm::db_open_or_die($urpm, $urpm->{root}); + } + + my $sig_handler = sub { undef $db; exit 3 }; + local $SIG{INT} = $sig_handler; + local $SIG{QUIT} = $sig_handler; + + #- build transaction set... + $urpm->build_transaction_set($db, $state, split_length => $options{split_length}); + } +} + # install logger callback sub install_logger { my ($urpm, $type, $id, $subtype, $amount, $total) = @_; diff --git a/urpmi b/urpmi index fb827a5f..f966401f 100755 --- a/urpmi +++ b/urpmi @@ -609,7 +609,7 @@ $urpm->copy_packages_of_removable_media( #- now create transaction just before installation, this will save user impression of slowness. #- split of transaction should be disabled if --test is used. -$urpm->create_transaction($state, +urpm::install::create_transaction($urpm, $state, nodeps => $urpm->{options}{'allow-nodeps'} || $urpm->{options}{'allow-force'}, split_level => $urpm->{options}{'split-level'}, split_length => !$test && $urpm->{options}{'split-length'}); @@ -624,7 +624,7 @@ foreach my $set (@{$state->{transaction} || []}) { print "\n"; #- prepare transaction... - $urpm->prepare_transaction($set, $list, \%sources, \@transaction_list, \%transaction_sources); + urpm::install::prepare_transaction($urpm, $set, $list, \%sources, \@transaction_list, \%transaction_sources); #- first, filter out what is really needed to download for this small transaction. $urpm->download_packages_of_distant_media( -- cgit v1.2.1