Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 498028 - dev-python/matplotlib-1.3.1 should not unconditionally depend on ${VIRTUALX_DEPEND}
Summary: dev-python/matplotlib-1.3.1 should not unconditionally depend on ${VIRTUALX_D...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-13 21:27 UTC by Torbjörn Lönnemark
Modified: 2014-09-17 08:54 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
matplotlib-1.3.0-1.3.1.diff (mpl.diff,5.68 KB, patch)
2014-08-28 13:19 UTC, Guilherme Amadio
Details | Diff
dependencies for 1.3.0 with equery (deps-1.3.0,2.02 KB, text/plain)
2014-08-28 13:19 UTC, Guilherme Amadio
Details
dependencies for 1.3.1 with equery (deps-1.3.1,2.19 KB, text/plain)
2014-08-28 13:20 UTC, Guilherme Amadio
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Torbjörn Lönnemark 2014-01-13 21:27:54 UTC
Matplotlib no longer builds without X11, but there seems to be no reason for it.

This seems to have changed since 1.3.0 (i.e. when 1.3.1 was added). The ChangeLog mentions "wrap commands with virtualx.eclass".

The package seems to build (and work) if the line VIRTUALX_REQUIRED="always" is removed from the ebuild, though this is of course unlikely to be the correct solution.

My guess would have been that it would be specifying something like VIRTUALX_REQUIRED="fltk gtk gtk3 pyside qt4 tk wxwidgets", but it seems VIRTUALX_REQUIRED only supports a single value.

Reproducible: Always

Steps to Reproduce:
# With USE="-fltk -gtk -gtk3 -pyside -qt4 -tk -wxwidgets"
emerge matplotlib -a
Actual Results:  
A lot of X11 packages are pulled in.

Expected Results:  
No X11 packages should be pulled in.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-01-14 13:32:28 UTC
matplotlib-1.3.1.ebuild:11:VIRTUALX_REQUIRED="always"
Comment 2 Ian Delaney (RETIRED) gentoo-dev 2014-04-04 02:03:30 UTC
VIRTUALX_REQUIRED="always" may be un-needed.
Comment 3 Thomas Capricelli 2014-04-16 23:27:35 UTC
i use matplotlib with only the cairo USEFLAG on several web servers, and it never required X and worked very well. I highly doubt that upstream changed dep in such a huge way between 1.3.0 and 1.3.1 .. ?

Please remove this, portage want to install the whole huge x stack just to update matplotlib ...
Comment 4 Thomas Capricelli 2014-04-16 23:31:42 UTC
And i confirm it works by copying the ebuild to a local overlay, and remove the 
VIRTUALX_REQUIRED="always"
Comment 5 Guilherme Amadio gentoo-dev 2014-08-28 13:18:04 UTC
I was going to file a bug, but found this thread. I use matplotlib on prefix on OS X, and I was surprised to see that matplotlib-1.3.1 depends on xhost directly, while matplotlib-1.3.0 doesn't. I didn't really know why, but I believe that the VIRTUALX_REQUIRED is causing this. Please see some attachments with the dependencies.
I'd like to be able to install it without installing all the X related packages as before.
Comment 6 Guilherme Amadio gentoo-dev 2014-08-28 13:19:21 UTC
Created attachment 383856 [details, diff]
matplotlib-1.3.0-1.3.1.diff
Comment 7 Guilherme Amadio gentoo-dev 2014-08-28 13:19:49 UTC
Created attachment 383858 [details]
dependencies for 1.3.0 with equery
Comment 8 Guilherme Amadio gentoo-dev 2014-08-28 13:20:10 UTC
Created attachment 383860 [details]
dependencies for 1.3.1 with equery
Comment 9 Guilherme Amadio gentoo-dev 2014-08-28 13:24:31 UTC
Comment on attachment 383858 [details]
dependencies for 1.3.0 with equery

dev-python/matplotlib-1.3.0:
 [  0]  dev-python/matplotlib-1.3.0
 [  1]  dev-python/numpy-1.8.2
 [  1]  dev-python/python-dateutil-2.2
 [  1]  dev-python/pytz-2014.4
 [  1]  dev-python/six-1.7.3
 [  1]  media-fonts/stix-fonts-1.0.0-r1
 [  1]  media-libs/freetype-2.5.3-r1
 [  1]  media-libs/libpng-1.6.13
 [  1]  dev-python/pygtk-2.24.0-r4
 [  1]  dev-python/wxpython-2.9.4.1
 [  1]  virtual/pkgconfig-0-r1
 [  1]  app-text/dvipng-1.14
 [  1]  virtual/python-imaging-2
 [  1]  dev-python/ipython-2.2.0
 [  1]  dev-python/numpydoc-0.4-r1
 [  1]  dev-python/xlwt-0.7.5
 [  1]  dev-python/sphinx-1.2.2
 [  1]  dev-texlive/texlive-latexextra-2013
 [  1]  dev-texlive/texlive-fontsrecommended-2013
 [  1]  dev-texlive/texlive-latexrecommended-2013
 [  1]  media-gfx/graphviz-2.36.0
 [  1]  dev-python/nose-1.3.3
 [  1]  dev-lang/python-2.7.6-r1
 [  1]  dev-lang/python-3.2.5-r3
 [  1]  dev-lang/python-3.3.3
 [  1]  dev-lang/python-exec-2.0.1-r1
 [  1]  dev-python/pyparsing-2.0.2
 [  1]  dev-python/pycairo-1.8.10
 [  1]  dev-python/pyfltk-1.3.0-r1
 [  1]  dev-python/pygobject-3.12.2
 [  1]  x11-libs/gtk+-3.12.2
 [  1]  virtual/latex-base-1.0
 [  1]  app-text/ghostscript-gpl-9.10-r1
 [  1]  app-text/poppler-0.26.4
 [  1]  dev-python/PyQt4-4.11.1
 [  1]  dev-python/pyside-1.2.2
Comment 10 Guilherme Amadio gentoo-dev 2014-08-28 13:25:10 UTC
Comment on attachment 383860 [details]
dependencies for 1.3.1 with equery

dev-python/matplotlib-1.3.1:
 [  0]  dev-python/matplotlib-1.3.1
 [  1]  dev-python/numpy-1.8.2
 [  1]  dev-python/python-dateutil-2.2
 [  1]  dev-python/pytz-2014.4
 [  1]  dev-python/six-1.7.3
 [  1]  media-fonts/stix-fonts-1.0.0-r1
 [  1]  media-libs/freetype-2.5.3-r1
 [  1]  media-libs/libpng-1.6.13
 [  1]  dev-python/pygtk-2.24.0-r4
 [  1]  dev-python/wxpython-2.9.4.1
 [  1]  virtual/pkgconfig-0-r1
 [  1]  app-text/dvipng-1.14
 [  1]  virtual/python-imaging-2
 [  1]  dev-python/ipython-2.2.0
 [  1]  dev-python/numpydoc-0.4-r1
 [  1]  dev-python/xlwt-0.7.5
 [  1]  dev-python/sphinx-1.2.2
 [  1]  dev-texlive/texlive-latexextra-2013
 [  1]  dev-texlive/texlive-fontsrecommended-2013
 [  1]  dev-texlive/texlive-latexrecommended-2013
 [  1]  media-gfx/graphviz-2.36.0
 [  1]  dev-python/nose-1.3.3
 [  1]  dev-lang/python-2.7.6-r1
 [  1]  dev-lang/python-3.2.5-r3
 [  1]  dev-lang/python-3.3.3
 [  1]  dev-lang/python-exec-2.0.1-r1
 [  1]  x11-base/xorg-server-1.16.0
 [  1]  x11-apps/xhost-1.0.6
 [  1]  dev-python/pyparsing-2.0.2
 [  1]  dev-python/pycairo-1.8.10
 [  1]  dev-python/pyfltk-1.3.0-r1
 [  1]  dev-python/pygobject-3.12.2
 [  1]  x11-libs/gtk+-3.12.2
 [  1]  virtual/latex-base-1.0
 [  1]  app-text/ghostscript-gpl-9.10-r1
 [  1]  app-text/poppler-0.26.4
 [  1]  dev-texlive/texlive-xetex-2013
 [  1]  dev-python/pyside-1.2.2
 [  1]  dev-python/PyQt4-4.11.1
Comment 11 Guilherme Amadio gentoo-dev 2014-08-28 13:25:56 UTC
Sorry for the edits. The first files were garbled with colored output from equery.
Comment 12 Guilherme Amadio gentoo-dev 2014-08-28 13:52:48 UTC
I commented out VIRTUALX_REQUIRED="always" and it works on my prefix on OS X as well.
Please consider removing that from the dependencies.
Comment 13 Justin Lecher (RETIRED) gentoo-dev 2014-09-15 11:18:51 UTC
(In reply to Guilherme Amadio from comment #12)
> I commented out VIRTUALX_REQUIRED="always" and it works on my prefix on OS X
> as well.
> Please consider removing that from the dependencies.

Probably it is using lots of stuff from the host.
Comment 14 Justin Lecher (RETIRED) gentoo-dev 2014-09-15 11:20:21 UTC
mpl is doing lots of testing which fails without X and automagically disables support for some components. That's the reason I added the virtualx usage.
Comment 15 Guilherme Amadio gentoo-dev 2014-09-16 19:57:39 UTC
(In reply to Justin Lecher from comment #14)

While I understand your rationale for adding that dependency to the ebuild, I think that the expected behavior in this case is to let it work without X, as it always did. I'd rather let mpl disable the components for things I don't have installed than have to install things I will not use. On prefix, it is often the case the the dependencies are keyword masked (which is the case of xhost), and it only makes installing stuff more difficult/annoying. On Linux, X will most likely be installed and the components will not be disabled, but some people might be on Wayland or building mpl on a server and not want X at all. On OS X, X isn't needed either. Therefore, if the package works fine without X, I think we should not make its components hard dependencies.

Please consider removing VIRTUALX_REQUIRED="always" from the ebuilds.
Comment 16 Thomas Capricelli 2014-09-16 20:12:40 UTC
Indeed, i have matplotlib installed on all my servers, it's very often a dependancy for some php applications. And there's no X there...
Comment 17 Justin Lecher (RETIRED) gentoo-dev 2014-09-17 07:19:39 UTC
(In reply to Guilherme Amadio from comment #15)
> Please consider removing VIRTUALX_REQUIRED="always" from the ebuilds.

I will do a careful evaluation and see what I can do.
Comment 18 Justin Lecher (RETIRED) gentoo-dev 2014-09-17 07:20:32 UTC
(In reply to Thomas Capricelli from comment #16)
> And there's no X there...

it is build time only. Although I understand that it sucks having this heavy buildtime dependency, you are free to remove it later.
Comment 19 Justin Lecher (RETIRED) gentoo-dev 2014-09-17 08:54:52 UTC
  17 Sep 2014; Justin Lecher <jlec@gentoo.org> matplotlib-1.4.0.ebuild:
  Reduce usage of virtualx, #498028