Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 542068 - dev-python/bokeh-0.7.1: fails to install site-packages
Summary: dev-python/bokeh-0.7.1: fails to install site-packages
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-04 09:41 UTC by Marius Brehler
Modified: 2015-12-09 15:14 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marius Brehler 2015-03-04 09:41:02 UTC
bokeh 0.7.1 and newer versions provide there own javascript implementation (BokehJS). This is installed via "npm install" in src_prepare. This somehow doesn't work as aspected and therefore the python setup.py finishes, but doesn't installs the bokeh site-packages.

I worked on splitting BokehJS up into a on package, to get the bokeh ebuild working.
Unfortunately, building BokehJS brings some trouble as it needs grunt to compile BokehJS standalone. grunt is not available in the tree, but in [1]. Getting grunt into portage would require a bunch of other dependencies and also a new npm.eclass. I propose to mask bokeh-0.7.1 or to drop it from the tree.


[1] https://github.com/neurogeek/gentoo-overlay
Comment 1 Marius Brehler 2015-03-09 07:55:15 UTC
I put some more hours into debugging the package. Splitting into a standalone BokehJS package seems not to be an option.

Building BokehJS is somehow fine, as it than get's copied for the different python targets and doesn't have to be build multiple times. Anyway, I couldn't get Bokeh to install the site-packages.


In the current ebuild, BokehJS is build by "epython --build_js sdist". I replaced this by [1]
  npm install || die
  node_modules/.bin/grunt deploy

BokehJS is build and found, but this has no effect on the site-packages.


A look into the documentation [2] tells to use "python setup.py install --build_js".
I played around with "distutils-r1_python_install --build_js", "epython --build_js install" and "esetup.py --build_js install", but the only results were sandbox violations or no installed site-packages. I somehow don't get it.


[1] http://bokeh.pydata.org/en/latest/docs/dev_guide/building.html#building-bokehjs-with-grunt
[2] http://bokeh.pydata.org/en/latest/docs/dev_guide/building.html#python-setup
Comment 2 Ian Delaney (RETIRED) gentoo-dev 2015-03-16 01:01:33 UTC
< I put some more hours into debugging the package. Splitting into a standalone BokehJS package seems not to be an option. >

I bumped bokeh-0.5.0 in Oct at great expense of effort and jlec it seems added net-libs/nodejs and use of npm in the most recent bump.  The npm pm has been the focus of some discussion some months ago and its use is generally judged as incompatible with gentoo pms and should not be used.  jlec is an informed and established dev however I can only presume he knows little to nothing of this.  For one, the bokehjs is bundled and bundled packaging in tarballs of ebuilds is vigorously discouraged in gentoo ebuild protocol. This is a package of <herd>sci</herd> so I leave it to the sci herd to deal with.  All I can say here is prompt with a q;
Is the functionality of this js package really needed of just a curious optional extra?
Comment 3 Marius Brehler 2015-03-20 08:29:51 UTC
The most recent version of bokeh (0.7.1) is based on the ebuild/the diff in the bug report #529986. I further cleaned the version bumped ebuild, bumped it from 0.6.1 to 0.7.1 and send a pull request to the science overlay. The ebuild was NOT reviewed by jlec [1], but accepted to be merged into the science overlay. jlec just moved it to the tree. I only checked to get a "building" ebuild, since I do not use bokeh, but my colleges do. Hence, this was fine for me, till my colleges mentioned that it is not working. So blame on me, but not on the other devs. I am sorry for the trouble.
What makes it really worse is, that it was stabilized (#540290) and is the only stable (but non working version) in the tree.

As far as I understand, BokehJS is essential for bokeh. It can only be used additionally as standalone JavaScript libarary, but bokeh cannot be used without BokehJS. So I assume bundling is somehow okay. Anyway, also I am not pleased with the use of npm. In this case, npm fetches packages if not available (e.g. grunt), and afterwards BokehJS is build. As far as I can see, the packages are only fetched locally and are not getting installed anywhere (since the -g option is not passed to npm). This is nasty for sure, but hopefully acceptable.

Anyway, I did not had the time to dig deeper into the setup.py and site-packages still do not get installed by the ebuild. Hence, this version is currently useless.

[1] https://github.com/gentoo-science/sci/pull/352
Comment 4 Paweł Rumian 2015-03-26 10:51:01 UTC
In the meantime, bokeh has been updated to 0.8.2.

I will try to help in bringing a working bokeh version to the portage tree, as it seems like the most obvious choice for a project I am currently working on.

However, I have quite limited knowledge about portage internals - still if you can give me any hints I'll try to dig through this...
Comment 5 Marius Brehler 2015-04-03 18:15:48 UTC
Pawel, every help is welcome as I don't have that much time to spend on this package.

I finally got rid of building bokehjs. Unfortunately, this does not solve the problem that the sites-packages don't get installed. This currently in the bokeh branch of my gentoo science fork [1]. 
If desired, I can push this branch also to the science repo or merge it to the science master. Anyway, I will keep the KEYWORDS dropped, as long as site-packages do not get installed.

[1] https://github.com/marbre/sci/tree/bokeh/dev-python/bokeh
Comment 6 Justin Lecher (RETIRED) gentoo-dev 2015-12-09 15:14:15 UTC
ommit 20c37df5f09964b6949917de65e6a785c8a791d7
Author: Justin Lecher <jlec@gentoo.org>
Date:   Wed Dec 9 16:12:26 2015 +0100

    dev-python/bokeh: Drop old

    obsoletes:
    Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=542068

    Package-Manager: portage-2.2.26
    Signed-off-by: Justin Lecher <jlec@gentoo.org>

    https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20c37df5f09964b6949917de65e6a785c8a791d7