summaryrefslogtreecommitdiffstats
path: root/mgaapplet-upgrade-helper
diff options
context:
space:
mode:
Diffstat (limited to 'mgaapplet-upgrade-helper')
-rwxr-xr-xmgaapplet-upgrade-helper13
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() {