From 1d0be47ab680db938ac8da1ee65e1de91e198f67 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Thu, 4 Oct 2018 10:24:34 +0200
Subject: progress: Generate valid 'download-progress' traces when the size is
 unknown.

Fixes <https://bugs.gnu.org/32895>.
Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>.

* guix/progress.scm (progress-reporter/trace): In 'stop', make sure SIZE
is an integer.  Previously we'd generate a "@ download-progress" trace
with #f for the 'transferred' number when downloading files whose size
is not known in advance.
---
 guix/progress.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/guix/progress.scm b/guix/progress.scm
index 3b9ff408cd..f846944952 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -304,12 +304,12 @@ progress reports, write \"build trace\" lines to be processed elsewhere."
                      log-port)))
    (report (rate-limited report-progress %progress-interval))
    (stop (lambda ()
-           (report-progress size)
-           (display (format #f "@ download-succeeded ~a ~a ~a~%"
-                            file url
-                            (or (and=> (stat file #f) stat:size)
-                                size))
-                    log-port)))))
+           (let ((size (or (and=> (stat file #f) stat:size)
+                           size)))
+             (report-progress size)
+             (display (format #f "@ download-succeeded ~a ~a ~a~%"
+                              file url size)
+                      log-port))))))
 
 ;; TODO: replace '(@ (guix build utils) dump-port))'.
 (define* (dump-port* in out
-- 
cgit v1.2.3