#31177 closed enhancement (fixed)

Add graphviz, pygraphviz packages

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.3
Component: packages: optional Keywords:
Cc: dimpase, dcoudert, slabbe, dunfield, culler, slelievre, vdelecroix Merged in:
Authors: Matthias Koeppe Reviewers: David Coudert
Report Upstream: N/A Work issues:
Branch: ea35795 (Commits, GitHub, GitLab) Commit: ea35795717c38208b92a944dba74d10a1bd9f878
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

Several places in Sage refer to graphviz.

When building from source, graphviz can make use of various optional dependencies: https://graphviz.org/download/source/ It seems too tricky to make it a normal package.

Current versions of graphviz seem to be licensed under the Eclipse Public License 1.0, which is a free software license but GPL-incompatible. https://gitlab.com/graphviz/graphviz/-/blob/master/LICENSE So probably we should not make it a standard package.

Thus, we add it as a dummy script package only, so that we can provide system package information (https://repology.org/project/graphviz/versions).

We also add pygraphviz as a pip package - as part of Meta-ticket #31176 (Add packages from 3-manifolds / computop)

Change History (15)

comment:1 Changed 13 months ago by mkoeppe

  • Description modified (diff)

comment:2 Changed 13 months ago by mkoeppe

  • Branch set to u/mkoeppe/add_graphviz__pygraphviz_packages

comment:3 Changed 13 months ago by mkoeppe

  • Commit set to 48eb04a69ed250e5aa716e74f19b7cc66bb37104

https://github.com/3-manifolds/sagedocker/blob/master/sage/scripts/08_graphviz.sh uses a more specific configuration using libgts-dev libpango1.0-dev on ubuntu.


New commits:

b51fe1fbuild/pkgs/graphviz: New optional package
682b6d8build/pkgs/pygraphviz: New, optional pip package
48eb04asrc/sage/features/graphviz.py: Add spkg information

comment:4 Changed 13 months ago by git

  • Commit changed from 48eb04a69ed250e5aa716e74f19b7cc66bb37104 to 91913acee31c4b81b2f1b0f8a03a804d2429f74e

Branch pushed to git repo; I updated commit sha1. New commits:

91913acbuild/pkgs/[py]graphviz: Add distros/conda.txt

comment:5 Changed 13 months ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Description modified (diff)

comment:6 Changed 13 months ago by git

  • Commit changed from 91913acee31c4b81b2f1b0f8a03a804d2429f74e to a813870765d0835ccc7779a6a474e13155e4fe5e

Branch pushed to git repo; I updated commit sha1. New commits:

a813870build/pkgs/graphviz/dependencies: New

comment:7 Changed 13 months ago by mkoeppe

  • Description modified (diff)

comment:8 Changed 13 months ago by mkoeppe

  • Description modified (diff)

graphviz build seems brittle: Failing here on macOS because ps2pdf is not available and PDF manual build cannot seem to be disabled.

Perhaps it's best to just make it a script package that provides system package info after all.

comment:9 Changed 13 months ago by git

  • Commit changed from a813870765d0835ccc7779a6a474e13155e4fe5e to ea35795717c38208b92a944dba74d10a1bd9f878

Branch pushed to git repo; I updated commit sha1. New commits:

ea35795build/pkgs/graphviz: Reduce it to a dummy script package

comment:10 Changed 13 months ago by mkoeppe

  • Status changed from new to needs_review

comment:11 Changed 12 months ago by mkoeppe

  • Cc vdelecroix added
  • Description modified (diff)

comment:12 Changed 12 months ago by mkoeppe

Needs review

comment:13 Changed 11 months ago by dcoudert

  • Reviewers set to David Coudert
  • Status changed from needs_review to positive_review

I tried on macOS 10.15.7 after installing graphviz with homebrew. It is well detected and compilation went well. I don't know if I have tested it enough (did a few tests on graphs), but it seems ok to me.

comment:14 Changed 11 months ago by mkoeppe

Thank you!

comment:15 Changed 11 months ago by vbraun

  • Branch changed from u/mkoeppe/add_graphviz__pygraphviz_packages to ea35795717c38208b92a944dba74d10a1bd9f878
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.