guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

232/242: gnu: python-matplotlib-documentation: Fix build.


From: guix-commits
Subject: 232/242: gnu: python-matplotlib-documentation: Fix build.
Date: Wed, 11 May 2022 18:03:31 -0400 (EDT)

apteryx pushed a commit to branch wip-ipython-polyglossia
in repository guix.

commit 6c0597f263c7d5bd7b653003bd6619714fed3a02
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Sat Apr 23 23:48:31 2022 -0400

    gnu: python-matplotlib-documentation: Fix build.
    
    * gnu/packages/python-xyz.scm (python-matplotlib-documentation): Inherit 
from
    python-matplotlib.
    [version, source, build-system, home-page, description, license]: Delete
    fields, now inherited.
    [phases]: Streamline build and install phases and enable parallel build.
    [native-inputs]: Use new style.  Remove python-matplotlib, python-ipykernel,
    python-mock, texlive-enumitem, texlive-latex-geometry, 
texlive-latex-preview,
    texlive-latex-ucs, texlive-pdftex, texlive-fonts-ec, texlive-txfonts and
    inherited python-matplotlib packages.
    Add inkscape, python-mpl-sphinx-theme, python-scipy, python-ipywidgets,
    texlive-babel, texlive-fontspec, texlive-unicode-math, texlive-etoolbox,
    and texlive-underscore.
---
 gnu/packages/python-xyz.scm | 138 +++++++++++++++++++-------------------------
 1 file changed, 58 insertions(+), 80 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 93c6886109..46dae5dd8f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -6790,87 +6790,65 @@ toolkits.")
 
 (define-public python-matplotlib-documentation
   (package
+    (inherit python-matplotlib)
     (name "python-matplotlib-documentation")
-    (version (package-version python-matplotlib))
-    (source (package-source python-matplotlib))
-    (build-system python-build-system)
-    (native-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-colorspacious" ,python-colorspacious)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-copybutton" ,python-sphinx-copybutton)
-       ("python-sphinx-gallery" ,python-sphinx-gallery)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-ipython" ,python-ipython)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-mock" ,python-mock)
-       ("graphviz" ,graphviz)
-       ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                             texlive-enumitem
-                                             texlive-latex-amsmath
-                                             texlive-latex-expdlist
-                                             texlive-latex-geometry
-                                             texlive-latex-preview
-                                             texlive-latex-type1cm
-                                             texlive-latex-ucs
-
-                                             texlive-pdftex
-
-                                             texlive-fonts-ec
-                                             texlive-times
-                                             texlive-txfonts)))
-       ("texinfo" ,texinfo)
-       ,@(package-native-inputs python-matplotlib)))
-    (arguments
-     `(#:tests? #f ; we're only generating documentation
-       #:phases
-       (modify-phases %standard-phases
-         ;; The tests in python-matplotlib are run after the install phase, so
-         ;; we need to delete the extra phase here.
-         (delete 'check)
-         (replace 'build
-           (lambda _
-             (chdir "doc")
-             (setenv "PYTHONPATH" "../examples/units")
-             (substitute* "conf.py"
-               ;; Don't use git.
-               (("^SHA = check_output.*")
-                (string-append "SHA = \"" ,version "\"\n"))
-               ;; Don't fetch intersphinx files from the Internet
-               (("^explicit_order_folders" m)
-                (string-append "intersphinx_mapping = {}\n" m))
-               (("'sphinx.ext.intersphinx',") "")
-               ;; Disable URL embedding which requires internet access.
-               (("'https://docs.scipy.org/doc/numpy'") "None")
-               (("'https://docs.scipy.org/doc/scipy/reference'") "None"))
-             (invoke "make"
-                     "SPHINXBUILD=sphinx-build"
-                     "SPHINXOPTS=" ; don't abort on warnings
-                     "html" "texinfo")))
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((data (string-append (assoc-ref outputs "out") "/share"))
-                    (doc (string-append data "/doc/python-matplotlib-" 
,version))
-                    (info (string-append data "/info"))
-                    (html (string-append doc "/html")))
-               (mkdir-p html)
-               (mkdir-p info)
-               (copy-recursively "build/html" html)
-               (symlink (string-append html "/_images")
-                        (string-append info "/matplotlib-figures"))
-               (with-directory-excursion "build/texinfo"
-                 (substitute* "matplotlib.texi"
-                   (("@image\\{([^,]*)" all file)
-                    (string-append "@image{matplotlib-figures/" file)))
-                 (symlink (string-append html "/_images")
-                          "./matplotlib-figures")
-                 (invoke "makeinfo" "--no-split"
-                         "-o" "matplotlib.info" "matplotlib.texi"))
-               (install-file "build/texinfo/matplotlib.info" info)))))))
-    (home-page (package-home-page python-matplotlib))
-    (synopsis "Documentation for the python-matplotlib package")
-    (description (package-description python-matplotlib))
-    (license (package-license python-matplotlib))))
+    (arguments
+     (list
+      #:tests? #f                       ;we're only generating documentation
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'build
+            (lambda _
+              (setenv "HOME" "/tmp")
+              (chdir "doc")
+              (substitute* "conf.py"
+                ;; The sphinx_panels extension causes a "TypeError: first
+                ;; argument must be callable" to be raised when generating the
+                ;; info target; remove it (see:
+                ;; https://github.com/executablebooks/sphinx-panels/issues/74).
+                ((".*'sphinx_panels',.*") ""))
+              (invoke "make" "html" "info"
+                      ;; Don't abort on warnings; build in parallel.
+                      (format #f "SPHINXOPTS=-j~a" (parallel-job-count)))))
+          (replace 'install
+            (lambda _
+              (let* ((data (string-append #$output "/share"))
+                     (doc (string-append data "/doc/matplotlib"))
+                     (info (string-append data "/info"))
+                     (html (string-append doc "/html")))
+                (mkdir-p html)
+                (copy-recursively "build/html" html)
+                (install-file "build/texinfo/matplotlib.info" info)
+                ;; The "matplotlib-figures" directory contains are a subset of
+                ;; the images produced for the html target; simply create a
+                ;; symlink to it, saving about 11 MiB.
+                (symlink (string-append html "/_images")
+                         (string-append info "/matplotlib-figures"))))))))
+    (native-inputs
+     (list graphviz
+           inkscape
+           python-colorspacious
+           python-mpl-sphinx-theme
+           python-scipy
+           python-sphinx
+           python-sphinx-copybutton
+           python-sphinx-gallery
+           python-sphinxcontrib-svg2pdfconverter
+           python-numpydoc
+           python-ipython
+           python-ipywidgets
+           texlive-amsfonts
+           texlive-amsmath
+           texlive-babel
+           texlive-fontspec
+           texlive-unicode-math
+           texlive-etoolbox
+           texlive-latex-expdlist
+           texlive-underscore
+           texlive-latex-type1cm
+           texlive-times
+           texinfo))
+    (synopsis "Documentation for the @code{python-matplotlib} package")))
 
 (define-public python-matplotlib-inline
   (package



reply via email to

[Prev in Thread] Current Thread [Next in Thread]