Page MenuHomeSolus

Package Request: graph-tool
Closed, ResolvedPublic

Description

Name: graph-tool
Homepage: https://graph-tool.skewed.de/
Open Source: yes
Licence: GNU General Public License v3.0
Link to source tarball: https://downloads.skewed.de/graph-tool/graph-tool-2.22.tar.bz2
Description: Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks).
Why should this be included in the repository? There are no networks packages in the repository at the moment, igraph and networkx are two other common ones and both can be installed with pip whereas this can't.
How many users do you anticipate will use this software? Probably not too many, people who work on network science and use Solus, not sure if there's more than me there yet, maybe soon some of my students!
Notes on compilation: I cannot compile this myself for Python3 as Solus does not seem to have a version of boost.python linked to Python3. On Python2 I can ./configure but when I try to make it I always run out of RAM. According to the documentation it should need max 4GB of RAM but using GCC or clang I always run out of RAM despite my laptop having 8GB RAM and 6GB swap. Ideally I'd like to use it with Python3.

Event Timeline

padraig created this task.Jun 28 2017, 11:00 AM
DataDrake triaged this task as Wishlist priority.Jul 18 2017, 6:21 PM
DataDrake moved this task from Backlog to Accepted For Inclusion on the Package Requests board.

Just an update on this, I have since been able to compile for Python 2 by increasing the size of the swap, it took 16GB RAM to compile , I can possibly provide the eopkg for python2 once I have learned a bit more about packaging. I think I still need help with the libboost thing for Python3 though.

Giving it Wishlist priority isn't an indicator of how much I care about it, more how many people I expect need it soon. I'll probably end up packaging it next weekend if I run out of higher priority things.

padraig added a comment.EditedJul 19 2017, 12:00 PM

No worries, as I say I was able to compile it for python2 only but I was not able to build the package. It takes a very large amount of RAM (>15GB for me but the developer claims it's about half that), I get this error:

make[4]: Leaving directory '/home/build/YPKG/root/graph-tool/build/graph-tool-2.22/src/graph/inference'
make[3]: *** [Makefile:739: all-recursive] Error 1
make[3]: Leaving directory '/home/build/YPKG/root/graph-tool/build/graph-tool-2.22/src/graph'
make[2]: *** [Makefile:418: all-recursive] Error 1
make[2]: Leaving directory '/home/build/YPKG/root/graph-tool/build/graph-tool-2.22/src'
make[1]: *** [Makefile:590: all-recursive] Error 1
make[1]: Leaving directory '/home/build/YPKG/root/graph-tool/build/graph-tool-2.22'
make: *** [Makefile:477: all] Error 2
Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-buildNYMd2g']' returned non-zero exit status 2
[Build] build failed
ERRO[12:56:58] Failed to build package                       error="exit status 1"
ERRO[12:57:00] Failed to build packages

I attach the package.yml file if that helps

@padraig I have the same issue with the RAM, even using make on its own to ensure no parallel processes. @Justin has also tried his 32GB RAM machine and the build process capped it out too.

I went to the graph-tool message board about the high RAM usage in compilation before and the maintainer was surprised it used so much but he said the master branch is better, I was able to compile the master for Python 2.7 on my machine using 13GB at maximum but couldn't compile version 2.22, he said there well be a new release "soon" a few weeks ago so once that comes out I can test that and we can try again. Bit crazy really though.

OK, so, I built it. It peaked around 52GB (RAM + SWAP) used. So there's something amiss with the build but it worked.

Seems to have only built against python2 though.

lspisi graph-tool-2.23-2-1-x86_64.eopkg 
/usr/lib/python2.7/site-packages/graph_tool/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/all.py
/usr/lib/python2.7/site-packages/graph_tool/all.pyc
/usr/lib/python2.7/site-packages/graph_tool/all.pyo
/usr/lib/python2.7/site-packages/graph_tool/centrality/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/centrality/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/centrality/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/centrality/libgraph_tool_centrality.so
/usr/lib/python2.7/site-packages/graph_tool/clustering/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/clustering/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/clustering/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/clustering/libgraph_tool_clustering.so
/usr/lib/python2.7/site-packages/graph_tool/collection/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/collection/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/collection/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/collection/adjnoun.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/as-22july06.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/astro-ph.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/celegansneural.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/cond-mat-2003.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/cond-mat-2005.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/cond-mat.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/dolphins.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/email-Enron.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/football.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/hep-th.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/karate.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/konect.py
/usr/lib/python2.7/site-packages/graph_tool/collection/konect.pyc
/usr/lib/python2.7/site-packages/graph_tool/collection/konect.pyo
/usr/lib/python2.7/site-packages/graph_tool/collection/lesmis.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/netscience.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/pgp-strong-2009.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/polblogs.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/polbooks.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/power.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/collection/serengeti-foodweb.gt.gz
/usr/lib/python2.7/site-packages/graph_tool/correlations/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/correlations/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/correlations/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/correlations/libgraph_tool_correlations.so
/usr/lib/python2.7/site-packages/graph_tool/decorators.py
/usr/lib/python2.7/site-packages/graph_tool/decorators.pyc
/usr/lib/python2.7/site-packages/graph_tool/decorators.pyo
/usr/lib/python2.7/site-packages/graph_tool/dl_import.py
/usr/lib/python2.7/site-packages/graph_tool/dl_import.pyc
/usr/lib/python2.7/site-packages/graph_tool/dl_import.pyo
/usr/lib/python2.7/site-packages/graph_tool/draw/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/draw/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/draw/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/draw/cairo_draw.py
/usr/lib/python2.7/site-packages/graph_tool/draw/cairo_draw.pyc
/usr/lib/python2.7/site-packages/graph_tool/draw/cairo_draw.pyo
/usr/lib/python2.7/site-packages/graph_tool/draw/graph-tool-logo.svg
/usr/lib/python2.7/site-packages/graph_tool/draw/graphviz_draw.py
/usr/lib/python2.7/site-packages/graph_tool/draw/graphviz_draw.pyc
/usr/lib/python2.7/site-packages/graph_tool/draw/graphviz_draw.pyo
/usr/lib/python2.7/site-packages/graph_tool/draw/gtk_draw.py
/usr/lib/python2.7/site-packages/graph_tool/draw/gtk_draw.pyc
/usr/lib/python2.7/site-packages/graph_tool/draw/gtk_draw.pyo
/usr/lib/python2.7/site-packages/graph_tool/draw/libgraph_tool_draw.so
/usr/lib/python2.7/site-packages/graph_tool/draw/libgraph_tool_layout.so
/usr/lib/python2.7/site-packages/graph_tool/flow/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/flow/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/flow/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/flow/libgraph_tool_flow.so
/usr/lib/python2.7/site-packages/graph_tool/generation/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/generation/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/generation/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/generation/libgraph_tool_generation.so
/usr/lib/python2.7/site-packages/graph_tool/gt_io.py
/usr/lib/python2.7/site-packages/graph_tool/gt_io.pyc
/usr/lib/python2.7/site-packages/graph_tool/gt_io.pyo
/usr/lib/python2.7/site-packages/graph_tool/include/base64.hh
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/betweenness_centrality.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/copy_alt.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/graphml.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/graphviz.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/isomorphism.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/kamada_kawai_spring_layout.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/metric_tsp_approx.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/named_function_params-alt.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/overloading.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/push_relabel_max_flow.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/read_graphviz_new.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/boost-workaround/boost/graph/stoer_wagner_min_cut.hpp
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_closeness.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_eigentrust.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_eigenvector.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_hits.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_katz.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_pagerank.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/graph_trust_transitivity.hh
/usr/lib/python2.7/site-packages/graph_tool/include/centrality/minmax.hh
/usr/lib/python2.7/site-packages/graph_tool/include/clustering/graph_clustering.hh
/usr/lib/python2.7/site-packages/graph_tool/include/clustering/graph_extended_clustering.hh
/usr/lib/python2.7/site-packages/graph_tool/include/clustering/graph_motifs.hh
/usr/lib/python2.7/site-packages/graph_tool/include/config.h
/usr/lib/python2.7/site-packages/graph_tool/include/coroutine.hh
/usr/lib/python2.7/site-packages/graph_tool/include/correlations/graph_assortativity.hh
/usr/lib/python2.7/site-packages/graph_tool/include/correlations/graph_avg_correlations.hh
/usr/lib/python2.7/site-packages/graph_tool/include/correlations/graph_corr_hist.hh
/usr/lib/python2.7/site-packages/graph_tool/include/correlations/graph_correlations.hh
/usr/lib/python2.7/site-packages/graph_tool/include/demangle.hh
/usr/lib/python2.7/site-packages/graph_tool/include/fast_vector_property_map.hh
/usr/lib/python2.7/site-packages/graph_tool/include/flow/graph_augment.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/dynamic_sampler.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_community_network.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_complete.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_generation.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_geometric.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_lattice.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_predecessor.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_price.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_rewiring.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_sbm.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_triangulation.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/graph_union.hh
/usr/lib/python2.7/site-packages/graph_tool/include/generation/sampler.hh
/usr/lib/python2.7/site-packages/graph_tool/include/gml.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_adaptor.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_adjacency.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_exceptions.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_filtered.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_filtering.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_io_binary.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_properties.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_properties_copy.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_properties_group.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_properties_map_values.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_python_interface.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_reverse.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_selectors.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_tool.hh
/usr/lib/python2.7/site-packages/graph_tool/include/graph_util.hh
/usr/lib/python2.7/site-packages/graph_tool/include/hash_map_wrap.hh
/usr/lib/python2.7/site-packages/graph_tool/include/histogram.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/bundled_vacate_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/cache.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/exhaustive_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/gibbs_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_elist.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_em.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_emat.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_entries.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_entropy.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_exhaustive.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_gibbs.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_layers.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_layers_util.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_mcmc.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_merge.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_multicanonical.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_multiflip_mcmc.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_overlap.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_overlap_mcmc_bundled.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_overlap_partition.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_overlap_util.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_overlap_vacate.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_partition.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_util.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_blockmodel_weights.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_modularity.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_neighbour_sampler.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/graph_state.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/int_part.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/mcmc_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/merge_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/parallel_rng.hh
/usr/lib/python2.7/site-packages/graph_tool/include/inference/util.hh
/usr/lib/python2.7/site-packages/graph_tool/include/layout/graph_arf.hh
/usr/lib/python2.7/site-packages/graph_tool/include/layout/graph_sfdp.hh
/usr/lib/python2.7/site-packages/graph_tool/include/mpl_nested_loop.hh
/usr/lib/python2.7/site-packages/graph_tool/include/numpy_bind.hh
/usr/lib/python2.7/site-packages/graph_tool/include/openmp_lock.hh
/usr/lib/python2.7/site-packages/graph_tool/include/random.hh
/usr/lib/python2.7/site-packages/graph_tool/include/shared_map.hh
/usr/lib/python2.7/site-packages/graph_tool/include/spectral/graph_adjacency.hh
/usr/lib/python2.7/site-packages/graph_tool/include/spectral/graph_incidence.hh
/usr/lib/python2.7/site-packages/graph_tool/include/spectral/graph_laplacian.hh
/usr/lib/python2.7/site-packages/graph_tool/include/spectral/graph_transition.hh
/usr/lib/python2.7/site-packages/graph_tool/include/stats/graph_average.hh
/usr/lib/python2.7/site-packages/graph_tool/include/stats/graph_distance.hh
/usr/lib/python2.7/site-packages/graph_tool/include/stats/graph_distance_sampled.hh
/usr/lib/python2.7/site-packages/graph_tool/include/stats/graph_histograms.hh
/usr/lib/python2.7/site-packages/graph_tool/include/stats/graph_parallel.hh
/usr/lib/python2.7/site-packages/graph_tool/include/str_repr.hh
/usr/lib/python2.7/site-packages/graph_tool/include/topology/graph_components.hh
/usr/lib/python2.7/site-packages/graph_tool/include/topology/graph_kcore.hh
/usr/lib/python2.7/site-packages/graph_tool/include/topology/graph_percolation.hh
/usr/lib/python2.7/site-packages/graph_tool/include/topology/graph_similarity.hh
/usr/lib/python2.7/site-packages/graph_tool/include/topology/graph_vertex_similarity.hh
/usr/lib/python2.7/site-packages/graph_tool/include/transform_iterator.hh
/usr/lib/python2.7/site-packages/graph_tool/include/util/graph_search.hh
/usr/lib/python2.7/site-packages/graph_tool/inference/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/inference/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/bisection.py
/usr/lib/python2.7/site-packages/graph_tool/inference/bisection.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/bisection.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel.py
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel_em.py
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel_em.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/blockmodel_em.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.py
/usr/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/libgraph_tool_inference.so
/usr/lib/python2.7/site-packages/graph_tool/inference/mcmc.py
/usr/lib/python2.7/site-packages/graph_tool/inference/mcmc.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/mcmc.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/minimize.py
/usr/lib/python2.7/site-packages/graph_tool/inference/minimize.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/minimize.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/modularity.py
/usr/lib/python2.7/site-packages/graph_tool/inference/modularity.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/modularity.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.py
/usr/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/overlap_blockmodel.py
/usr/lib/python2.7/site-packages/graph_tool/inference/overlap_blockmodel.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/overlap_blockmodel.pyo
/usr/lib/python2.7/site-packages/graph_tool/inference/util.py
/usr/lib/python2.7/site-packages/graph_tool/inference/util.pyc
/usr/lib/python2.7/site-packages/graph_tool/inference/util.pyo
/usr/lib/python2.7/site-packages/graph_tool/libgraph_tool_core.so
/usr/lib/python2.7/site-packages/graph_tool/search/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/search/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/search/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/search/libgraph_tool_search.so
/usr/lib/python2.7/site-packages/graph_tool/spectral/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/spectral/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/spectral/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/spectral/libgraph_tool_spectral.so
/usr/lib/python2.7/site-packages/graph_tool/stats/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/stats/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/stats/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/stats/libgraph_tool_stats.so
/usr/lib/python2.7/site-packages/graph_tool/topology/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/topology/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/topology/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/topology/libgraph_tool_topology.so
/usr/lib/python2.7/site-packages/graph_tool/util/__init__.py
/usr/lib/python2.7/site-packages/graph_tool/util/__init__.pyc
/usr/lib/python2.7/site-packages/graph_tool/util/__init__.pyo
/usr/lib/python2.7/site-packages/graph_tool/util/libgraph_tool_util.so
/usr/share/doc/graph-tool/AUTHORS
/usr/share/doc/graph-tool/INSTALL
/usr/share/doc/graph-tool/LICENSE
/usr/share/doc/graph-tool/README.md
/usr/share/doc/graph-tool/doc/.static/graph-icon.ico
/usr/share/doc/graph-tool/doc/.static/graph-icon.png
/usr/share/doc/graph-tool/doc/Makefile
/usr/share/doc/graph-tool/doc/centrality.rst
/usr/share/doc/graph-tool/doc/clustering.rst
/usr/share/doc/graph-tool/doc/conf.py
/usr/share/doc/graph-tool/doc/correlations.rst
/usr/share/doc/graph-tool/doc/demos/animation/animation.rst
/usr/share/doc/graph-tool/doc/demos/index.rst
/usr/share/doc/graph-tool/doc/demos/inference/inference.rst
/usr/share/doc/graph-tool/doc/draw.rst
/usr/share/doc/graph-tool/doc/flow.rst
/usr/share/doc/graph-tool/doc/generation.rst
/usr/share/doc/graph-tool/doc/graph_tool.rst
/usr/share/doc/graph-tool/doc/gt_theme/static/flasky.css
/usr/share/doc/graph-tool/doc/gt_theme/static/gt_style.css
/usr/share/doc/graph-tool/doc/gt_theme/theme.conf
/usr/share/doc/graph-tool/doc/index.rst
/usr/share/doc/graph-tool/doc/inference.rst
/usr/share/doc/graph-tool/doc/mathjax.py
/usr/share/doc/graph-tool/doc/modules.rst
/usr/share/doc/graph-tool/doc/price.py
/usr/share/doc/graph-tool/doc/pyenv.py
/usr/share/doc/graph-tool/doc/quickstart.rst
/usr/share/doc/graph-tool/doc/search_example.xml
/usr/share/doc/graph-tool/doc/search_module.rst
/usr/share/doc/graph-tool/doc/spectral.rst
/usr/share/doc/graph-tool/doc/sphinxext/LICENSE.txt
/usr/share/doc/graph-tool/doc/sphinxext/MANIFEST.in
/usr/share/doc/graph-tool/doc/sphinxext/README.txt
/usr/share/doc/graph-tool/doc/sphinxext/__init__.py
/usr/share/doc/graph-tool/doc/sphinxext/comment_eater.py
/usr/share/doc/graph-tool/doc/sphinxext/compiler_unparse.py
/usr/share/doc/graph-tool/doc/sphinxext/docscrape.py
/usr/share/doc/graph-tool/doc/sphinxext/docscrape_sphinx.py
/usr/share/doc/graph-tool/doc/sphinxext/numpydoc.py
/usr/share/doc/graph-tool/doc/sphinxext/phantom_import.py
/usr/share/doc/graph-tool/doc/sphinxext/setup.py
/usr/share/doc/graph-tool/doc/sphinxext/tests/test_docscrape.py
/usr/share/doc/graph-tool/doc/sphinxext/traitsdoc.py
/usr/share/doc/graph-tool/doc/stats.rst
/usr/share/doc/graph-tool/doc/topology.rst
/usr/share/doc/graph-tool/doc/util.rst
/usr/share/doc/graph-tool/src/boost-workaround/LICENSE_1_0.txt
lspisi graph-tool-devel-2.23-2-1-x86_64.eopkg 
/usr/lib64/pkgconfig/graph-tool-py2.7.pc

@Justin , the package.yml I sent you was only for Python2 as I was just trying to debug the fact that I couldnt build it at all. To build Python 3 as well will actually require running the build twice for the separate versions. I was wondering if this is a bit much for a single package build, and if we cannot stop the memory leaks whether Python 2 & 3 should be packaged separately.... thoughts?

@Justin , the package.yml I sent you was only for Python2 as I was just trying to debug the fact that I couldnt build it at all. To build Python 3 as well will actually require running the build twice for the separate versions. I was wondering if this is a bit much for a single package build, and if we cannot stop the memory leaks whether Python 2 & 3 should be packaged separately.... thoughts?

I'm happy to give the dual build a go, send me the updated package.yml or paste it here and I'll give it a whirl tomorrow.

padraig added a comment.EditedSep 27 2017, 9:47 PM

52GB is insane! I might write to Tiago (the developer) and say it. I couldn't build it for python 3 as libboost isn't detected with python 3 in Solus. Good effort guys!

Hey @padraig Ive been able to get it to link against libboost 1.62 for Python 3, but not the latest 1.65. I have not been able to link libboost_coroutine against 1.62 as it seems Boost.Coroutine has been moved to Boost.Coroutine2. I have uploaded my config.log to hastebin, I'm going to have a look through the graph-tool Docker image to see if there are any hints there.

@doc-E-brown This might not help but did you try passing:

--with-boost-<libname>=NAME

to the configure script and change it to Coroutine2 if that's possible? In the options for that the developer wrote:

The Boost libraries are installed with different names across OSs. The configure script tries to guess the names using common patterns, but this can fail. With this option, the user can specify the correct name (either the entire library name or just a suffix). For example, if the boost-python library is name libboost-python-mt-gcc6-py36-foobar, this can be passed to configure as --with-boost-python=-mt-gcc6-py36-foobar.

oft added a subscriber: oft.Sep 29 2017, 10:20 AM

So there is a new version out again already, 2.24, however again I cannot build it for Python3 because it can't find libboost:

checking whether boost_python3 is the correct library... no
configure: error: No usable boost::python found

Using locate it only finds:

/usr/lib64/libboost_python.a
/usr/lib64/libboost_python.so
/usr/lib64/libboost_python.so.1.62.0

So I'm not sure how to get it running on python3. @doc-E-brown could I see your package.yml for the dual build?
I haven't tried to build it for Python2 yet to see how much RAM it uses.

Hey @padraig

The current version of boost in the repo doesnt yet support python3. So you will need to do a local build of the pending update D7. I've uploaded the package.yml for you. Once you build it pop the eopkg files in /var/lib/solbuild/local/ and it should build against the 1.65 version, I am having a couple of issues with that though so let me know how you go.

My package.yml for graph-tool is here https://hastebin.com/zomuyowude

It currently should only build python3 as we know we have python2 working.

Keep me posted!
Good luck and if you have any questions give me a shout.

Thanks @doc-E-brown
Unfortunately I still couldn't get it working. I was able to build boost 1.65 but even when using make local with that I get the same error as the previous version

configure: error: No usable boost::python found

I had to edit your package.yml a bit as for me it put boost in /usr/lib64 instead of /usr/lib

Yeah so the issue I was having was that I dont think I configured the local build properly as per https://solus-project.com/articles/packaging/local-repository/en/ as if boost 1.65 was included then libboost_python3.so should be in either /usr/lib or /usr/lib64 (/usr/lib is typically a symlink to /usr/lib64, so that shouldnt matter). I was talking to @Justin about this issue, hopefully he is enjoying is holiday atm so if we are still stuck we can bug him later ;)

While in the same directory as the graph-tool package.yml you can run

sudo solbuild chroot

here you can check the contents of /usr/lib and you can inspect the config.log file in the build directory. This logfile will tell you exactly what the build process is looking for and whatever is missing. For me it was looking for libboost_python3 in the right place, but I wasnt able to get it there through the local build process.

I think maybe libboost 1.65 didn't build properly for me, I just tried to install it and test it and LibreOffice doesn't run anymore due to some libboost error. Though I can compile graph-tool for Python2 so I don't really know what's going on.

I can't find any config.log in the build folder, I don't think it gets that far for me though as it doesn't get past the ./configure part. So I guess I'll just have to wait!

Hey @padraig the LibreOffice failure is normal as it was built against the older version of boost. When boost 1.65 is included into the stable repo LibreOffice will get rebuilt against the newer version. I'll continue to look at it, have been a little under the gun at work at the moment. Once we get the local build down I think it'll fall into place.

If you need Python3 functionality urgently the graph-tool docker image contains a Python 3 build

docker pull tiagopeixoto/graph-tool
xhost +local:
docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix tiagopeixoto/graph-tool ipython
kyrios123 added a subscriber: kyrios123.EditedOct 13 2017, 9:44 AM

I had no problem building graph-tool python3 against D7 with the attached package.yml but I get the following error at runtime :

$ python3
Python 3.5.4 (default, Aug 13 2017, 21:43:04) 
[GCC 6.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from graph_tool.all import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/site-packages/graph_tool/__init__.py", line 111, in <module>
    dl_import("from . import libgraph_tool_core as libcore")
  File "/usr/lib/python3.5/site-packages/graph_tool/dl_import.py", line 61, in dl_import
    exec(import_expr, local_dict, global_dict)
  File "<string>", line 1, in <module>
ImportError: /usr/lib/python3.5/site-packages/graph_tool/libgraph_tool_core.so: undefined symbol: jump_fcontext
>>>

I see it however in the boost abi_symbols: abi_symbols:libboost_context.so.1.65.1:jump_fcontext

So there is still something wrong, but I have no clue how this could be resolved.

Okay so after rebuilding libboost I got to the same point as you @kyrios123, however when I try to locate libgraph_tool_core.so I only find it for Python 2.7:

$ locate libgraph_tool_core.so
/usr/lib64/python2.7/site-packages/graph_tool/libgraph_tool_core.so

So somehow it doesn't get installed for the Python 3 version.

I've seen the docker implimentation of it alright @doc-E-brown, I've just written lots of scripts in Python3 for work using graph-tool so it's annoying to have to change things a bit, most work with the Python2 version but it's also annoying having to change between versions. It feels like I'm getting closer here anyway though.

I have successfully got this to build and run with Python3! I rebuilt libboost 1.66.0 with both versions of Python as mentioned in T3994 (I can get it with libboost 1.65.1). I can upload the package.yml for this if necessary but I don't think it as it's just the build with libboost that was causing issues.