summaryrefslogtreecommitdiff
path: root/guix/build/cvs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/build/cvs.scm')
-rw-r--r--guix/build/cvs.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/build/cvs.scm b/guix/build/cvs.scm
index bd5c50a51a..9976e624b3 100644
--- a/guix/build/cvs.scm
+++ b/guix/build/cvs.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,14 +52,20 @@
"Fetch REVISION from MODULE of CVS-ROOT-DIRECTORY into DIRECTORY. REVISION
must either be a date in ISO-8601 format (e.g. \"2012-12-21\") or a CVS tag.
Return #t on success, #f otherwise."
- (and (zero? (system* cvs-command "-z3"
+ ;; Use "-z0" because enabling compression leads to hangs during checkout on
+ ;; certain repositories, such as
+ ;; ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards".
+ (and (zero? (system* cvs-command "-z0"
"-d" cvs-root-directory
"checkout"
(if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision)
"-D" "-r")
revision
module))
- (rename-file module directory)
+ ;; Copy rather than rename in case MODULE and DIRECTORY are on
+ ;; different devices.
+ (copy-recursively module directory)
+
(with-directory-excursion directory
(for-each delete-file-recursively (find-cvs-directories)))
#t))