diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | urpm/download.pm | 27 |
2 files changed, 25 insertions, 3 deletions
@@ -3,6 +3,7 @@ o s/suggests/recommends/ - bash completion: o add --deploops & --debug-librpm +- fix reporting progress with newer aria2 (mga#16500) - library: o fix unmarking packages as potential orphans when downgrading (mga#16149) - prefer http mirrors when using a mirrorlist, this avoids selecting an rsync diff --git a/urpm/download.pm b/urpm/download.pm index 8fe9256d..4de9e316 100644 --- a/urpm/download.pm +++ b/urpm/download.pm @@ -694,7 +694,7 @@ sub sync_aria2 { "/usr/bin/aria2c", $options->{debug} ? ('--log', "$options->{dir}/.aria2.log") : @{[]}, '--auto-file-renaming=false', '--ftp-pasv', - '--summary-interval=0', + '--summary-interval=1', '--follow-metalink=mem', $medium->{mirrorlist} ? ( '--metalink-enable-unique-protocol=true', # do not try to connect to the same server using the same protocol @@ -762,8 +762,29 @@ sub _parse_aria2_output { propagate_sync_callback($options, 'start', $file) if !$options->{is_retry}; } - #parses aria2c: [#1 SIZE:176.0KiB/2.5MiB(6%) CN:3 SPD:256.22KiBs ETA:09s] - if ($buf =~ m!^\[#\d*\s+\S+:([\d\.]+\w*).([\d\.]+\w*)\S([\d]+)\S+\s+\S+\s*([\d\.]+)\s\w*:([\d\.]+\w*)\s\w*:(\d+\w*)\]$!) { + + # aria2c 1.16 and beyond: + # parses aria2c: [#2c8dae 496KiB/830KiB(59%) CN:1 DL:84KiB ETA:3s] + # + # using multiline mode and comments for better readability: + # + if ($buf =~ m! + ^\[\#[\dA-Fa-f]+ # match #2c8dae + \s+ + ([\d\.]+\w*) # Match 496KiB + / + ([\d\.]+\w*) # Match 830KiB + \s* \( (\d+) % \) # Match (59%) + \s+ + CN:(\S+) # Match CN:1 + \s+ + DL:(\S+) # Match DL:84KiB + \s+ + ETA:(\w+) + \]$ + !msx + ) + { my ($total, $percent, $speed, $eta) = ($2, $3, $5, $6); #- $1 = current downloaded size, $4 = connections if (propagate_sync_callback($options, 'progress', $file, $percent, $total, $eta, $speed) eq 'canceled') { |