Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 567884 - dev-python/matplotlib-1.5.0 build fails: The following required packages can not be built: gtk3cairo
Summary: dev-python/matplotlib-1.5.0 build fails: The following required packages can ...
Status: RESOLVED INVALID
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:
: 567982 (view as bug list)
Depends on:
Blocks: python-abi-letters
  Show dependency tree
 
Reported: 2015-12-09 18:59 UTC by Jeff Kowalczyk
Modified: 2016-06-10 17:39 UTC (History)
6 users (show)

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


Attachments
emerge --info (emerge-info.txt,6.05 KB, text/plain)
2015-12-09 19:00 UTC, Jeff Kowalczyk
Details
build.log (build.log,6.57 KB, text/plain)
2015-12-09 19:03 UTC, Jeff Kowalczyk
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeff Kowalczyk 2015-12-09 18:59:36 UTC
When emerging dev-python/matplotlib-1.5 build fails with error:

ERROR: dev-python/matplotlib-1.5.0::gentoo failed (compile phase):
  (no error message)

Call stack:
    ebuild.sh, line  133:  Called src_compile
  environment, line 4117:  Called distutils-r1_src_compile
  environment, line 1181:  Called _distutils-r1_run_foreach_impl 'python_compile'
  environment, line  438:  Called python_foreach_impl 'distutils-r1_run_phase' 'python_compile'
  environment, line 3574:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
  environment, line 2606:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
  environment, line 2604:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_compile'
  environment, line  773:  Called distutils-r1_run_phase 'python_compile'
  environment, line 1174:  Called python_compile
  environment, line 3101:  Called wrap_setup 'distutils-r1_python_compile'
  environment, line 4888:  Called distutils-r1_python_compile 'build' '--build-lib=/var/tmp/portage/dev-python/matplotlib-1.5.0/work/matplotlib-1.5.0-python3_5/build/build/lib'
  environment, line 1046:  Called esetup.py 'build' 'build' '--build-lib=/var/tmp/portage/dev-python/matplotlib-1.5.0/work/matplotlib-1.5.0-python3_5/build/build/lib'
  environment, line 1669:  Called die
The specific snippet of code:
      "${@}" || die "${die_args[@]}" || return ${?}

with the following use options:

[ebuild   R    ] dev-python/matplotlib-1.5.0::gentoo  USE="cairo examples excel gtk3 latex wxwidgets -doc -fltk -gtk2 -pyside -qt4 -qt5 {-test} -tk" P
YTHON_TARGETS="python2_7 python3_5 -python3_3 -python3_4" 0 KiB


Reproducible: Always
Comment 1 Jeff Kowalczyk 2015-12-09 19:00:05 UTC
Created attachment 418904 [details]
emerge --info
Comment 2 Jeff Kowalczyk 2015-12-09 19:03:19 UTC
Created attachment 418906 [details]
build.log
Comment 3 Harris Landgarten 2015-12-10 00:04:53 UTC
same here
Comment 4 Justin Lecher (RETIRED) gentoo-dev 2015-12-10 08:37:58 UTC
Do you have pycairo or dev-python/cairocffi installed? And if yes, which version?
Comment 5 Justin Lecher (RETIRED) gentoo-dev 2015-12-10 08:38:31 UTC
Which versions of dev-python/pygobject are installed?
Comment 6 Bernd Feige 2015-12-10 10:05:04 UTC
(In reply to Justin Lecher from comment #5)
> Which versions of dev-python/pygobject are installed?

Just had the same problem here, apparently due to the update to dev-lang/python-3.5.0-r3. "emerge -1 dev-python/pygobject:3" fixed it, recompiling version 3.18.2. I don't think it is catched by emerge @preserved-rebuild.

Best regards,
Bernd
Comment 7 Jeff Kowalczyk 2015-12-10 15:37:21 UTC
In response to Justin's question about installed pycairo and cairo:

% sudo qlist -I cairo
dev-cpp/cairomm
dev-python/pycairo
x11-libs/cairo

% sudo emerge x11-libs/cairo dev-python/pycairo -pv
[ebuild     U  ] x11-libs/cairo-1.14.6::gentoo [1.14.4::gentoo] USE="X glib opengl svg xcb (-aqua) -debug (-directfb) (-gles2) -static-libs -valgrind -xlib-xcb" ABI_X86="(64) -32 (-x32)" 35,196 KiB

[ebuild   R    ] dev-python/pycairo-1.10.0-r5::gentoo  USE="svg xcb -doc -examples {-test}" PYTHON_TARGETS="python2_7 python3_5 -python3_3 -python3_4" 0 KiB
Comment 8 Gangræna Gorgeous 2015-12-10 16:29:10 UTC
Same here with =dev-lang/python-3.4.3-r4, =dev-lang/python-exec-2.1, and the latest eselect-python

No errors with =dev-lang/python-3.4.3-r2, =dev-lang/python-exec-2.02.
Comment 9 Jeff Kowalczyk 2015-12-10 16:31:06 UTC
Fixed for me by reemerging pygobject and pycairo along with today's cairo update.
Comment 10 Juergen Rose 2015-12-11 10:59:55 UTC
(In reply to Jeff Kowalczyk from comment #9)
> Fixed for me by reemerging pygobject and pycairo along with today's cairo
> update.

Same issue, same solution.
Comment 11 Gangræna Gorgeous 2015-12-11 14:52:43 UTC
I think problem is in `pymalloc` enabled by default in new ebuilds with SLOT="3.4/3.4m", SLOT="3.5/3.5m"

python-updater should somehow detect this problem and reemerge packages.
Fixed for me by reemerging pycairo and numpy.
Comment 12 Mike Gilbert gentoo-dev 2015-12-11 15:23:57 UTC
pymalloc has always been enabled by default; the only change we made was to name the resulting python binaries, libraries and headers as upstream wants them.

Can anyone exactly explain why rebuilding pygobject resolves this build failure? I would like to better understand it.
Comment 13 Mike Gilbert gentoo-dev 2015-12-11 15:26:58 UTC
Oh, I see. It's probably just the extension module naming convention.

/usr/lib64/python3.5/site-packages/gi/_gi_cairo.cpython-35-x86_64-linux-gnu.so
/usr/lib64/python3.5/site-packages/gi/_gi.cpython-35-x86_64-linux-gnu.so

versus

/usr/lib64/python3.5/site-packages/gi/_gi_cairo.cpython-35m-x86_64-linux-gnu.so
/usr/lib64/python3.5/site-packages/gi/_gi.cpython-35m-x86_64-linux-gnu.so
Comment 14 Justin Lecher (RETIRED) gentoo-dev 2015-12-13 10:50:31 UTC
*** Bug 567982 has been marked as a duplicate of this bug. ***
Comment 15 David Kredba 2015-12-29 08:52:56 UTC
I had to unmerge dev-python/cairocffi and media-gfx/cairosvg what depends on it. Only after that matplotlib was able to finish its configure phase.
Comment 16 Attila Tóth 2015-12-29 12:45:49 UTC
(In reply to David Kredba from comment #15)
> I had to unmerge dev-python/cairocffi and media-gfx/cairosvg what depends on
> it. Only after that matplotlib was able to finish its configure phase.

By removing the above mentioned packages you haven't solved the problem, because matplotlib will no longer try to build the extension. The solution has been already mentioned in the bug report: re-emerge pygobject.
Comment 17 David Kredba 2015-12-29 14:42:16 UTC
It builds it because it uses dev-python/pycairo as cairo dependency and not the second option dev-python/cairocffi.

In the ebuild there is OR
 cairo? (
        || (
            dev-python/pycairo[${PYTHON_USEDEP}]
            dev-python/cairocffi[${PYTHON_USEDEP}]
            )
        )

In my case rebuilding before mentioned packages was not helping
but removing the second python-cairo "bridge" helped.

dev-python/matplotlib-1.5.0::gentoo was built with the following:
USE="cairo excel fltk gtk3 latex qt5 tk wxwidgets -doc -examples -gtk2 -pyside -qt4 -test" ABI_X86="64" PYTHON_TARGETS="python2_7 python3_5 -python3_3 -python3_ 4"
CFLAGS="-O2 -ggdb -pipe -march=core2 -frecord-gcc-switches -fno-strict-aliasing"
CXXFLAGS="-O2 -ggdb -pipe -march=core2 -frecord-gcc-switches -fno-strict-liasin   g"
Comment 18 Teika kazura 2016-06-03 08:39:24 UTC
This may be off-topic, but matplotlib seems to deprecate pycairo, by emitting this run-time message:
------------------------------------------------------------------------
/usr/lib64/python3.4/site-packages/matplotlib/backends/backend_gtk3agg.py:18: UserWarning: The Gtk3Agg backend is known to not work on Python 3.x with pycairo. Try installing cairocffi.
  "The Gtk3Agg backend is known to not work on Python 3.x with pycairo. "
------------------------------------------------------------------------
This applies (at least) to 1.4.2 <= matplotlib <= 1.5.1. See <src tree top>/lib/matplotlib/backends/backend_gtk3agg.py

I think einfo will be nice if the user don't have dev-python/cairocffi. (Or drop pycairo altogether?)

# BTW I'd prefer that kind of einfo _before_ building, if emerge -a or -p is executed.
Comment 19 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-06-10 17:39:45 UTC
A matter of re-emerging, so nothing to do for us.