guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] gnu: python-matplotlib: Don't propagate python-numpy-bootstr


From: Thomas Danckaert
Subject: Re: [PATCH] gnu: python-matplotlib: Don't propagate python-numpy-bootstrap.
Date: Mon, 30 Jan 2017 11:26:03 +0100 (CET)

From: Marius Bakke <address@hidden>
Subject: Re: [PATCH] gnu: python-matplotlib: Don't propagate python-numpy-bootstrap.
Date: Fri, 27 Jan 2017 20:57:12 +0100

This patch works around it by creating an intermediate
python-matplotlib-bootstrap package as well, which is then used as a
native input to generate the documentation of python-numpy.
python-numpy is then used as a propagated input of python-matplotlib, so python-numpy-bootstrap doesn't appear in user's profiles anymore.

What do you think?

This sounds sensible. Does numpy not require any matplotlib functions at
runtime?

No. It's just used for the documentation. With the attached patch, the dependency chain is this:

matplotlib -> numpy -> matplotlib-bootstrap -> numpy-bootstrap (=“numpy-without-docs”)

If so, this patch LGTM. The new matplotlib-bootstrap variables
should have an explaining comment though :)

I've added a comment and fixed some long lines.

Thomas
From 8a9584dd196dae3520fe2ac4b050a9e0c88503f8 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <address@hidden>
Date: Fri, 27 Jan 2017 12:12:42 +0100
Subject: [PATCH] gnu: python-matplotlib: Don't propagate
 python-numpy-bootstrap.

* gnu/packages/python.scm 
(python-matplotlib-bootstrap,python2-matplotlib-bootstrap):
  New variables.
  (python-matplotlib, python2-matplotlib) [propagated-inputs]: Use
  python-numpy instead of python-numpy-bootstrap.
  (python-numpy, python2-numpy) [propagated-inputs,native-inputs]: Replace
  matplotlib by native inputs matplotlib-bootstrap.
---
 gnu/packages/python.scm | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 81f9200..14d2e23 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2016 Arun Isaac <address@hidden>
 ;;; Copyright © 2016 Julien Lepiller <address@hidden>
 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <address@hidden>
-;;; Copyright © 2016 Thomas Danckaert <address@hidden>
+;;; Copyright © 2016, 2017 Thomas Danckaert <address@hidden>
 ;;; Copyright © 2017 Carlo Zancanaro <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -3404,11 +3404,11 @@ association studies (GWAS) on extremely large data 
sets.")
      `(("which" ,which)
        ,@(package-inputs python-numpy-bootstrap)))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-pyparsing" ,python-pyparsing)
+     `(("python-pyparsing" ,python-pyparsing)
        ,@(package-propagated-inputs python-numpy-bootstrap)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("python-matplotlib" ,python-matplotlib-bootstrap) ; to build 
documentation
        ("python-sphinx" ,python-sphinx)
        ("python-numpydoc" ,python-numpydoc)
        ("texlive" ,texlive)
@@ -3458,7 +3458,11 @@ association studies (GWAS) on extremely large data 
sets.")
               ,phases)))))))
 
 (define-public python2-numpy
-  (package-with-python2 python-numpy))
+  (let ((numpy (package-with-python2 python-numpy)))
+    (package (inherit numpy)
+             (native-inputs
+              `(("python-matplotlib" ,python2-matplotlib-bootstrap)
+                ,@(alist-delete "python-matplotlib" (package-native-inputs 
numpy)))))))
 
 (define-public python-pygit2
   (package
@@ -3623,7 +3627,7 @@ transcendental functions).")
        ("gobject-introspection" ,gobject-introspection)
        ("python-tkinter" ,python "tk")
        ("python-dateutil" ,python-dateutil-2)
-       ("python-numpy" ,python-numpy-bootstrap)
+       ("python-numpy" ,python-numpy)
        ("python-pillow" ,python-pillow)
        ("python-pytz" ,python-pytz)
        ("python-six" ,python-six)
@@ -3740,8 +3744,18 @@ toolkits.")
        `(("python2-pycairo" ,python2-pycairo)
          ("python2-pygobject-2" ,python2-pygobject-2)
          ("python2-tkinter" ,python-2 "tk")
+         ("python2-numpy" ,python2-numpy)
          ,@(fold alist-delete (package-propagated-inputs matplotlib)
-                 '("python-pycairo" "python-pygobject" "python-tkinter")))))))
+                 '("python-pycairo" "python-pygobject" "python-tkinter"
+                   "python-numpy")))))))
+
+;; Use `bootstrap` versions of matplotlib to build numpy documentation.
+(define python-matplotlib-bootstrap
+  ((package-input-rewriting `((,python-numpy . ,python-numpy-bootstrap)))
+   python-matplotlib))
+(define python2-matplotlib-bootstrap
+  ((package-input-rewriting `((,python2-numpy . ,python2-numpy-bootstrap)))
+   python2-matplotlib))
 
 (define-public python2-pysnptools
   (package
-- 
2.7.4


reply via email to

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