Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contribute this to conda-forge? #1

Closed
jnothman opened this issue Dec 19, 2018 · 3 comments
Closed

Contribute this to conda-forge? #1

jnothman opened this issue Dec 19, 2018 · 3 comments

Comments

@jnothman
Copy link

I think it would be useful to have this maintained on conda-forge. Do you intend to contribute this there?

@stuarteberg
Copy link
Owner

I did originally, but there are a few sticking points. Here are the issues I can think of:

  • graph-tool requires gcc-5 or greater. At the time I wrote this recipe, conda-forge supported only gcc-4. Nowadays, conda-forge supports gcc-7 via Anaconda-provided compiler packages, so it might be possible to get a build working if we make some changes to conda-forge.yml. The resulting packages would go to an auxillary label on the conda-forge channel (gcc7).

  • On a related point, this recipe currently sets _GLIBCXX_USE_CXX11_ABI=0, to remain compatible with libraries that were built with gcc-4. Presumably, we should remove that, and just force people to obtain ALL of their C++ packages from conda-forge/label/gcc7 if they want to use this package. Alternatively, we could build two versions (one with each ABI), but I don't know if there's a precedence for that in conda-forge.

  • The dependencies must also be built with the new ABI, and uploaded to the gcc7 label. For example, it looks like sparsehash is good to go, but cgal is not. Presumably, this PR needs to be debugged first. Looks like cairomm is in a similar situation, but I think those are the only remaining unported dependencies.

  • This package takes hours to build. conda-forge relies on free compute time from the CI services (Travis, Circle, Appveyor), and the build will time out before the package is complete. In the past, the only workaround was to get a volunteer to build it locally and upload the packages manually. (I did that for Qt-5.6 at one point.) I don't know if there's a better solution nowadays, so we should ask some conda-forge experts.

  • The recipe builds graph-tool 2.26, but we should upgrade to 2.27.

  • Of course, we should un-pin boost so that we get the standard version that conda-forge uses these days.

Given the issues with cgal and cairomm, it probably doesn't make sense to rush forward with a new PR just yet. We should revisit this question again once those are sorted out. If you'd like to help prod this along, I guess those two PRs are the right place to start.

FWIW, the binaries for graph-tool 2.26 that came from this recipe are available on the following channel. (But please note the caveat above about the ABI, if that matters to you.)

https://anaconda.org/flyem-forge/graph-tool/files

@jnothman
Copy link
Author

jnothman commented Dec 19, 2018 via email

@stuarteberg
Copy link
Owner

@jnothman -- Thanks to improvements in conda-forge's infrastructure and package support, all of the issues mentioned above have been resolved. It is now possible to host a build of graph-tool on conda-forge. In fact, I've created a feedstock and the first build was uploaded to the conda-forge channel today.

Note: The gtk+3 issue you mentioned above is still a problem, so plotting doesn't work out-of-the-box.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants