Subject: bug#25177: [PATCH v6] gnu: python-sphinx: Update to 1.4.8.

From: Marius Bakke <[email-masked]>
Date: Sat, 14 Jan 2017 16:28:27 +0100

Danny Milosavljevic <[email-masked]> writes:

> Hi,
>
> I've fixed python-matplotlib locally. It builds fine now.
>
> The fix itself would be:
>
> +                 (substitute* "users/intro.rst"
> +                   ;; Fix reST markup error (see <https://github.com/sphinx-doc/sphinx/issues/3044>)
> +                   (("[[][*][]]") "[#]"))
>
> However, I've also changed alist-cons* phase construction to modify-phases. That would make the patch look real scary.
>
> So here is a weird patch created via "git diff -b" where you can actually see what's happening without all the noise caused by indentation changes:
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index c540d7b5a..a5220e05e 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -3723,8 +3723,8 @@ transcendental functions).")
>         ("texinfo" ,texinfo)))
>      (arguments
>       `(#:phases
> -       (alist-cons-before
> -        'build 'configure-environment
> +       (modify-phases %standard-phases
> +         (add-before 'build 'configure-environment
>             (lambda* (#:key outputs inputs #:allow-other-keys)
>               (let ((cairo (assoc-ref inputs "cairo"))
>                     (gtk+ (assoc-ref inputs "gtk+")))
> @@ -3740,9 +3740,8 @@ basedirlist = ~a,~a~%
>   [rc_options]~%
>  backend = TkAgg~%"
>                             (assoc-ref inputs "tcl")
> -                        (assoc-ref inputs "tk"))))))
> -        (alist-cons-after
> -         'install 'install-doc
> +                           (assoc-ref inputs "tk")))))))
> +         (add-after 'install 'install-doc
>             (lambda* (#:key inputs outputs #:allow-other-keys)
>               (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
>                      (doc (string-append data "/doc/" ,name "-" ,version))
> @@ -3756,6 +3755,9 @@ backend = TkAgg~%"
>                   (substitute* (find-files "." "conf\\.py")
>                     (("latex_paper_size = 'letter'")
>                      "latex_paper_size = 'a4'"))
> +                 (substitute* "users/intro.rst"
> +                   ;; Fix reST markup error (see <https://github.com/sphinx-doc/sphinx/issues/3044>)
> +                   (("[[][*][]]") "[#]"))
>                   (mkdir-p html)
>                   (mkdir-p info)
>                   ;; The doc recommends to run the 'html' target twice.
> @@ -3777,8 +3779,7 @@ backend = TkAgg~%"
>                   (copy-file "build/texinfo/matplotlib.info"
>                              (string-append info "/matplotlib.info"))
>                   (copy-file "build/latex/Matplotlib.pdf"
> -                          (string-append doc "/Matplotlib.pdf")))))
> -        %standard-phases))))
> +                            (string-append doc "/Matplotlib.pdf")))))))))
>      (home-page "http://matplotlib.org")
>      (synopsis "2D plotting library for Python")
>      (description
>
> Should I split this into two commits - one for modify-phases and one
> for the actual change?

Yes, please do! That's what we've done so far, try to 'git grep' for
modify-phases.

> Should I post them to the list? If so, should I mark that it's for
> python-tests somehow?

That's up to you. Typically cosmetic commits like changing to use
modify-phases are OK to just push, assuming it is followed up with a
more "meaty" commit with actual changes. Otherwise it will just cause
pointless rebuilds.

When you do change it to use modify-phases, please also check that
phases end on a #t. It should be added explicitly if the ending
statement has an unspecified return value :-)