Subject: bug#26025: closed (Re: bug#26025: [PATCH] gnu: python-matplotlib-documentation: Fix build.)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 08 Mar 2017 17:32:02 +0000

Your bug report

#26025: [PATCH] gnu: python-matplotlib-documentation: Fix build.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
26025: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26025
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#26025: [PATCH] gnu: python-matplotlib-documentation: Fix build.
From: Marius Bakke <[email-masked]>
To: Thomas Danckaert <[email-masked]>, [email-masked]
Date: Wed, 08 Mar 2017 18:31:20 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Thomas Danckaert <[email-masked]> writes:

> Hi Guix,
>
> I didn't notice that building html documentation for the updated 
> matplotlib package failed halfway.  This patch fixes that, and 
> rewrites the build procedure in a way that should make the package 
> build fail on similar errors in the future.

Pushed, thanks!

Subject: [PATCH] gnu: python-matplotlib-documentation: Fix build.
From: Thomas Danckaert <[email-masked]>
To: [email-masked]
Date: Wed, 08 Mar 2017 13:53:08 +0100 (CET)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix,

I didn't notice that building html documentation for the updated 
matplotlib package failed halfway.  This patch fixes that, and 
rewrites the build procedure in a way that should make the package 
build fail on similar errors in the future.

Thomas
>From c16cfc0ecaa41c5e974dc9ce480eed5c16759a9a Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <[email-masked]>
Date: Tue, 7 Mar 2017 20:42:05 +0100
Subject: [PATCH] gnu: python-matplotlib-documentation: Fix build.

* gnu/packages/python.scm (python-matplotlib-documentation) [native-inputs]:
Add python-mock and graphviz.
[arguments]: Use separate build and install phases; correctly set latex paper size.
---
 gnu/packages/python.scm | 61 +++++++++++++++++++++++++------------------------
 1 file changed, 31 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a271ad46b..0b7804e0a 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3968,6 +3968,8 @@ toolkits.")
        ("python-sphinx" ,python-sphinx)
        ("python-numpydoc" ,python-numpydoc)
        ("python-ipython" ,python-ipython)
+       ("python-mock" ,python-mock)
+       ("graphviz" ,graphviz)
        ("texlive" ,texlive)
        ("texinfo" ,texinfo)
        ,@(package-native-inputs python-matplotlib)))
@@ -3975,42 +3977,41 @@ toolkits.")
      `(#:tests? #f ; we're only generating documentation
        #:phases
        (modify-phases %standard-phases
-         (delete 'build)
+         (replace 'build
+           (lambda _
+             (chdir "doc")
+             ;; Produce pdf in 'A4' format.
+             (substitute* "conf.py"
+               (("latex_paper_size = 'letter'") "")
+               ;; latex_paper_size is deprecated -> set paper size using
+               ;; latex_elements
+               (("latex_elements\\['pointsize'\\] = '11pt'" match)
+                ;; insert at a point where latex_elements{} is defined:
+                (string-append match "\nlatex_elements['papersize'] = 'a4paper'")))
+             (zero? (system* "python" "make.py" "html" "latex" "texinfo"))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((data (string-append (assoc-ref outputs "out") "/share"))
-                    (doc (string-append data "/doc/" ,name "-" ,version))
+                    (doc (string-append data "/doc/python-matplotlib-" ,version))
                     (info (string-append data "/info"))
                     (html (string-append doc "/html")))
-               ;; Make installed package available for building the
-               ;; documentation
-               (with-directory-excursion "doc"
-                 ;; Produce pdf in 'A4' format.
-                 (substitute* (find-files "." "conf\\.py")
-                   (("latex_paper_size = 'letter'")
-                    "latex_paper_size = 'a4'"))
-                 (mkdir-p html)
-                 (mkdir-p info)
-                 ;; The doc recommends to run the 'html' target twice.
-                 (system* "python" "make.py" "html")
-                 (system* "python" "make.py" "html")
-                 (copy-recursively "build/html" html)
-                 (system* "python" "make.py" "latex")
-                 (system* "python" "make.py" "texinfo")
+               (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")
-                          (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")
-                   (system* "makeinfo" "--no-split"
-                            "-o" "matplotlib.info" "matplotlib.texi"))
-                 (copy-file "build/texinfo/matplotlib.info"
-                            (string-append info "/matplotlib.info"))
-                 (copy-file "build/latex/Matplotlib.pdf"
-                            (string-append doc "/Matplotlib.pdf"))))
+                          "./matplotlib-figures")
+                 (system* "makeinfo" "--no-split"
+                          "-o" "matplotlib.info" "matplotlib.texi"))
+               (copy-file "build/texinfo/matplotlib.info"
+                          (string-append info "/matplotlib.info"))
+               (copy-file "build/latex/Matplotlib.pdf"
+                          (string-append doc "/Matplotlib.pdf")))
              #t)))))
     (home-page (package-home-page python-matplotlib))
     (synopsis "Documentation for the python-matplotlib package")
-- 
2.11.1