summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-01-19 18:01:07 -0600
committerEric Bavier <bavier@member.fsf.org>2016-01-19 18:01:07 -0600
commit252ddedd4b3af9a1b947258994e0ae1aa4fa81d3 (patch)
tree0d4f2a1286751148b43e8bf8391d20aff4a0fec5
parentafe9f409491a055e5d058c8f747e80d1506391e5 (diff)
downloadguix-252ddedd4b3af9a1b947258994e0ae1aa4fa81d3.tar.gz
build-system/haskell: Fix package.conf parsing.
* guix/build/haskell-build-system.scm (register)[conf-depends]: Properly
  react to EOF while reading GHC package conf files.
-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)))