Re: [PATCH 0/5] Add a script to check for Sphinx install requirements

From: Mauro Carvalho Chehab
Date: Mon Jul 17 2017 - 06:58:07 EST


Em Mon, 17 Jul 2017 07:09:46 -0300
Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> escreveu:

> Em Mon, 17 Jul 2017 06:33:03 -0300
> Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> escreveu:
>
> > Em Mon, 17 Jul 2017 10:15:26 +0200
> > Markus Heiser <markus.heiser@xxxxxxxxxxx> escreveu:
> >
> > > > Am 17.07.2017 um 00:08 schrieb Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>:
> > > >
> > > > [1] There's an unrelated bug with the Kernel's sphinx extension
> > > > kimage: when parsing GraphViz graphs, it uses "-Tpdf" argument,
> > > > in order to generate a PDF image. That doesn't work on some
> > > > distros, as GraphViz doesn't support PDF images.
> > > >
> > >
> > > Hmm .. http://www.graphviz.org/content/output-formats#dpdf
> > >
> > > Is it a problem of the GraphViz version?
> > >
> > > See http://www.graphviz.org/News.php ..
> > >
> > > """New Release 2.32 (1 August 2013)
> > >
> > > ... In addition, if the poppler library is available, Graphviz
> > > can now use PDF files as images."""
> > >
> > > I suppose that 2.32 is in your distro .. it's from 2013
> >
> > Fedora 26 is shipped with version 2.40:
> >
> > $ rpm -q graphviz
> > graphviz-2.40.1-4.fc26.x86_64
> >
> > Yet:
> >
> > $ dot -Thelp|grep pdf
> > Format: "help" not recognized. Use one of: canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pic plain plain-ext pov ps ps2 svg svgz tk vdx vml vmlz xdot xdot1.2 xdot1.4 xdot_json
> >
> > I actually noticed this issue first on OpenSuse, where GraphViz is
> > packaged on several packages, but I was unable to find one package
> > there with pdf suport. I'm pretty sure pdf used to work on F25.
> >
> > >
> > > It seems, that the graphiz homepage is not up to date. I found
> > > the repo at github. There is a issue about PDF
> > >
> > > https://github.com/ellson/graphviz/issues/1180
> > >
> > > So I guess graphviz is compiled without HAVE_PANGOCAIRO in your
> > > distros?
> >
> >
> > From Fedora source package, it is requiring both cairo and pango:
> >
> > BuildRequires: cairo-devel >= 1.1.10, pango-devel, gmp-devel, lua-devel, gtk2-devel, libgnomeui-devel
> >
> > Building it gets:
> >
> > checking for PANGOCAIRO... yes
> >
> > Still, no PDF support. I'll try to investigate it further, as I
> > found myself useful to produce PDF directly from GraphViz.
> >
> > Anyway, I guess we should modify kfigure.py to check if PDF is
> > available, falling back to SVG, using ImageMagick to convert
> > from SVG to PDF.
>
> Ok, I discovered that, on Fedora, support for pdf, png and some other
> formats are packaged on a separate package: graphviz-gd.x86_
>
> With it installed, it now shows "pdf":
>
> $ dot -Thelp
> Format: "help" not recognized. Use one of: bmp canon cmap cmapx cmapx_np dot dot_json eps fig gd gd2 gif gtk gv ico imap imap_np ismap jpe jpeg jpg json json0 mp pdf pic plain plain-ext png pov ps ps2 svg svgz tif tiff tk vdx vml vmlz vrml wbmp x11 xdot xdot1.2 xdot1.4 xdot_json xlib

Double-checked on all VMs I used to test this pachset:

- on Fedora 25, Debian 17.04, Gentoo and ArchLinux, just graphviz
is enough for PDF support.

- on Fedora 26, graphviz-gd is needed for PDF support;

- on OpenSuse Tumbleweed, I was unable to discover a package that
would make GraphViz to support pdf. There, it uses graphviz
version 2.38, with is the same version as used on Fedora 25.

That is with just graphviz:

mchehab@OpenSuse:~/docs> dot -Thelp
Format: "help" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gv imap imap_np ismap pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot xdot1.2 xdot1.4

And that is with graphviz-gd:

mchehab@OpenSuse:~/docs> dot -Thelp
Format: "help" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pic plain plain-ext png pov ps ps2 svg svgz tk vml vmlz vrml wbmp xdot xdot1.2 xdot1.4

So, we need a way for kfigure to fallback when distros don't
have such feature.

Regards,
Mauro