diff options
Diffstat (limited to 'urpm/select.pm')
-rw-r--r-- | urpm/select.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/urpm/select.pm b/urpm/select.pm index a015f7a5..dbde19a3 100644 --- a/urpm/select.pm +++ b/urpm/select.pm @@ -756,6 +756,27 @@ sub should_we_migrate_back_rpmdb_db_version { 0; } +sub migrate_forward_rpmdb_db_if_needed { + my ($urpm, $state) = @_; + + my ($pkg) = selected_packages_providing($urpm, $state, 'rpm') or return; + my $rooted_rpm_version = version->new("v" . $pkg->version); # perl_checker: $self = revision + my $rpm_version = _rpm_version(); # perl_checker: $self = revision + + if ($rpm_version ge v4.16.0) { + if ($rooted_rpm_version && $rooted_rpm_version ge v4.16) { + $urpm->{debug} and $urpm->{debug}("chrooted db version used by librpm is at least as good as non-rooted one"); + if (-f "$urpm->{root}/var/lib/rpm/Packages") { + $urpm->{debug} and $urpm->{debug}("Migrating chrooted db"); + $urpm->{need_migrate_rpmdb_now} = '4.16'; + urpm::sys::migrate_forward_rpmdb_db_version($urpm, $urpm->{root}); + return 1; + } + } + } + 0; +} + 1; =back |