summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/build/haskell-build-system.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 8e2aee381d..3afc37e16d 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -192,7 +192,8 @@ given Haskell package."
       (let loop ((collecting #f)
                  (deps '()))
         (let* ((line (read-line port))
-               (field (and=> (regexp-exec field-rx line)
+               (field (and=> (and (not (eof-object? line))
+                                  (regexp-exec field-rx line))
                              (cut match:substring <> 1))))
           (cond
            ((and=> field (cut string=? <> "depends"))
@@ -200,7 +201,7 @@ given Haskell package."
             ;; so drop those characters.  A line may list more than one .conf.
             (let ((d (string-tokenize (string-drop line 8))))
               (loop #t (append d deps))))
-           ((and collecting field)
+           ((or (eof-object? line) (and collecting field))
             (begin
               (close-port port)
               (reverse! deps)))