diff options
-rwxr-xr-x | mgaapplet-upgrade-helper | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/mgaapplet-upgrade-helper b/mgaapplet-upgrade-helper index 30a68a2e..b2d9b309 100755 --- a/mgaapplet-upgrade-helper +++ b/mgaapplet-upgrade-helper @@ -99,9 +99,15 @@ sub run_gurpmi() { my $succeeded_win = create_upgrade_succeeded_window(); my $failed_win = create_upgrade_failed_window(); + # Handle the priority upgrades first + # We need to ensure the initial upgrade of rpm+urpmi is done in one + # transaction (hense --split-length=0) as otherwise the rpmdb indexes can be + # rebuilt with the wrong libdb version + fork_gurpmi('--split-length=0', 'rpm', 'urpmi'); + while ($refork_gurpmi) { - my $ok = fork_gurpmi(); + my $ok = fork_gurpmi('--auto-select'); if ($refork_gurpmi && !$ok) { $refork_gurpmi--; } else { @@ -324,9 +330,10 @@ packages as well?).")) sub fork_gurpmi { run_program::raw({ timeout => 'never' }, - 'gurpmi', '>>', $log_file, '2>>', $log_file, '--auto', '--auto-select', '--replacefiles', '--clean', + 'gurpmi', '>>', $log_file, '2>>', $log_file, '--auto', '--replacefiles', '--clean', if_($root, "--urpmi-root=$root"), - if_($download_dir, "--download-all=$download_dir")); + if_($download_dir, "--download-all=$download_dir"), + @_); } sub update_media() { |