(address . guix-patches@gnu.org)
Exit with a friendlier error message instead of throwing throwing a “failed with
signal 11” error if ‘svn’ isn’t in the user’s PATH.
$ guix import texlive getmap
command "svn" "export" "--non-interactive" "--trust-server-cert" "-r" "59745" "svn://www.tug.org/texlive/tags/texlive-2021.3/Master/texmf-dist/doc/latex/getmap/" "/tmp/guix-directory.YgfGgo/doc/latex/getmap/" failed with signal 11
* doc/guix.texi (Invoking guix import): Mention that Subversion has be
installed.
* guix/import/texlive.scm (tlpdb->package): Check if ‘svn’ is found in PATH,
if not exit with an error message.
---
doc/guix.texi | 4 +++-
guix/import/texlive.scm | 7 +++++++
2 files changed, 10 insertions(+), 1 deletion(-)
Toggle diff (51 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 333cb4117a..1ece51de81 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -12020,7 +12020,9 @@
Information about the package is obtained from the TeX Live package
database, a plain text file that is included in the @code{texlive-bin}
package. The source code is downloaded from possibly multiple locations
-in the SVN repository of the Tex Live project.
+in the SVN repository of the Tex Live project. This means that the
+@code{subversion} package has to be installed in order for the importer
+to work.
The command command below imports metadata for the @code{fontspec}
TeX package:
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index bdef9f58b0..e3b870efa0 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,6 +38,8 @@ (define-module (guix import texlive)
#:use-module (guix utils)
#:use-module (guix upstream)
#:use-module (guix packages)
+ #:use-module (guix diagnostics)
+ #:use-module (guix i18n)
#:use-module (guix build-system texlive)
#:export (texlive->guix-package
texlive-recursive-import))
@@ -204,6 +207,10 @@ (define (files->directories files)
equal?)))
(define (tlpdb->package name package-database)
+ ;; Check if 'svn' is available.
+ (unless (search-path (string-split (getenv "PATH") #\:) "svn")
+ (leave (G_ "the 'svn' program has to be in your PATH~%")))
+
(and-let* ((data (assoc-ref package-database name))
(dirs (files->directories
(map (lambda (dir)
base-commit: 87e5502d406bfb44b61f7577b241602e02a3498e
--
2.33.1