Bug 447133

Summary: Graphviz base package pulls way too many dependencies
Product: [Fedora] Fedora Reporter: Juliano F. Ravasi <bugs+fedora>
Component: graphvizAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 19CC: allan.eising, dan, dmach, dyfet, john.ellson, mattdm
Target Milestone: ---Keywords: Reopened, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-18 11:57:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 471381    

Description Juliano F. Ravasi 2008-05-18 04:59:23 UTC
Description of problem:
Graphviz depends on way too many dependencies. Installing graphviz on a server
pulls alsa, X libs, avahi, gtk, gnome, hal, hwdata, radeontool, and many, many
other unrelated packages that are not even nearly suitable for a server.

Version-Release number of selected component (if applicable):
graphviz.i386 2.14.1-3.fc8

Graphviz should be divided on packages that allow to use just the command-line
tools like dot and neato, and nothing else. It is not necessary all these
libraries for the sole purpose of creating graphs.

This is the current yum output when trying to install just "graphviz":

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 graphviz                i386       2.14.1-3.fc8     fedora            1.1 M
Installing for dependencies:
 GConf2                  i386       2.20.1-1.fc8     fedora            1.6 M
 ORBit2                  i386       2.14.10-2.fc8    fedora            187 k
 PolicyKit-gnome         i386       0.6-1.fc8        fedora             34 k
 alsa-lib                i386       1.0.15-1.fc8     fedora            408 k
 atk                     i386       1.20.0-1.fc8     fedora            212 k
 audiofile               i386       1:0.2.6-7.fc8    fedora            107 k
 avahi                   i386       0.6.21-8.fc8     updates           237 k
 avahi-glib              i386       0.6.21-8.fc8     updates            17 k
 bluecurve-icon-theme    noarch     8.0.0-1.fc8      fedora            5.1 M
 cairo                   i386       1.4.14-1.fc8     updates           562 k
 control-center-filesystem  i386       1:2.20.3-3.fc8   updates            34 k
 cups-libs               i386       1:1.3.7-2.fc8    updates           195 k
 dmidecode               i386       1:2.7-1.26.1.fc6  fedora             61 k
 esound-libs             i386       1:0.2.38-6.fc8   fedora             73 k
 fedora-gnome-theme      noarch     8.0.0-1.fc8      fedora             10 k
 fedora-icon-theme       noarch     1.0.0-1.fc8      fedora            115 k
 fontconfig              i386       2.4.2-5.fc8      fedora            177 k
 freetype                i386       2.3.5-3.fc8      fedora            330 k
 gail                    i386       1.20.2-1.fc8     updates           290 k
 gnome-keyring           i386       2.20.3-1.fc8     updates           210 k
 gnome-mime-data         noarch     2.18.0-2.fc7     fedora            724 k
 gnome-mount             i386       0.7-1.fc8        fedora            126 k
 gnome-themes            noarch     2.20.2-1.fc8     updates           2.5 M
 gnome-vfs2              i386       2.20.1-1.fc8     updates           1.1 M
 gtk-nodoka-engine       i386       0.6.2-1.fc8      updates            47 k
 gtk2                    i386       2.12.5-1.fc8     updates           6.7 M
 gtk2-engines            i386       2.12.2-1.fc8     fedora            393 k
 hal                     i386       0.5.10-1.fc8.2   updates           460 k
 hal-info                noarch     20071030-1.fc8   fedora             74 k
 hal-libs                i386       0.5.10-1.fc8.2   updates            61 k
 hicolor-icon-theme      noarch     0.10-2           fedora             32 k
 hwdata                  noarch     0.215-1.fc8      updates           805 k
 kbd                     i386       1.12-27.fc8      fedora            1.0 M
 libICE                  i386       1.0.4-2.fc8      fedora             53 k
 libIDL                  i386       0.8.9-1.fc8      fedora             87 k
 libSM                   i386       1.0.2-4.fc8      fedora             24 k
 libX11                  i386       1.1.3-4.fc8      fedora            803 k
 libXau                  i386       1.0.3-3.fc8      fedora             19 k
 libXaw                  i386       1.0.4-1.fc8      fedora            198 k
 libXcomposite           i386       0.4.0-3.fc8      fedora             14 k
 libXcursor              i386       1.1.9-1.fc8      fedora             29 k
 libXdmcp                i386       1.0.2-4.fc8      fedora             21 k
 libXext                 i386       1.0.1-4.fc8      fedora             32 k
 libXfixes               i386       4.0.3-2.fc8      fedora             14 k
 libXfont                i386       1.3.1-2.fc8      updates           223 k
 libXft                  i386       2.1.12-3.fc8     fedora             44 k
 libXi                   i386       1.1.3-1.fc8      fedora             28 k
 libXinerama             i386       1.0.2-3.fc8      fedora             12 k
 libXmu                  i386       1.0.3-3.fc8      fedora             60 k
 libXpm                  i386       3.5.7-1.fc8      fedora             42 k
 libXrandr               i386       1.2.2-1.fc8      fedora             21 k
 libXrender              i386       0.9.4-1.fc8      fedora             27 k
 libXres                 i386       1.0.3-3.fc8      fedora             13 k
 libXt                   i386       1.0.4-3.fc8      fedora            170 k
 libart_lgpl             i386       2.3.19-3.fc8     fedora             77 k
 libbonobo               i386       2.20.3-1.fc8     updates           469 k
 libbonoboui             i386       2.20.0-1.fc8     fedora            352 k
 libfontenc              i386       1.0.4-4.fc8      fedora             23 k
 libglade2               i386       2.6.2-3.fc8      fedora             64 k
 libgnome                i386       2.20.1-2.fc8     fedora            966 k
 libgnomecanvas          i386       2.20.1-1.fc8     fedora            228 k
 libgnomeui              i386       2.20.1.1-1.fc8   fedora            1.0 M
 libjpeg                 i386       6b-39.fc8        fedora            139 k
 libnotify               i386       0.4.4-8.fc8      fedora             33 k
 libpng                  i386       2:1.2.22-1.fc8   fedora            244 k
 libsmbios-bin           i386       0.13.13-1.fc8    updates            58 k
 libsmbios-libs          i386       0.13.13-1.fc8    updates           237 k
 libthai                 i386       0.1.9-2.fc8      updates           186 k
 libtiff                 i386       3.8.2-9.fc8      fedora            308 k
 libtool-ltdl            i386       1.5.24-3.fc8     fedora             39 k
 libutempter             i386       1.1.5-1.fc8      updates            22 k
 libwnck                 i386       2.20.3-1.fc8     updates           322 k
 libxcb                  i386       1.0-4.fc8        updates           117 k
 metacity                i386       2.20.2-1.fc8     updates           2.2 M
 nodoka-metacity-theme   noarch     0.3.2-2.fc8      fedora            7.8 k
 nodoka-theme-gnome      noarch     0.3.2-2.fc8      fedora             11 k
 notification-daemon     i386       0.3.7-6.fc8      fedora             48 k
 pango                   i386       1.18.4-1.fc8     updates           362 k
 pciutils                i386       2.2.9-1.fc8      updates            92 k
 pm-utils                i386       0.99.4-6.fc8     fedora             28 k
 radeontool              i386       1.5-2.fc8        fedora             20 k
 shared-mime-info        i386       0.23-2.fc8       updates           166 k
 startup-notification    i386       0.9-3.fc8        fedora             38 k
 urw-fonts               noarch     2.4-3.fc8        updates           3.2 M
 usermode                i386       1.93.1-1.fc8     fedora            186 k
 vbetool                 i386       0.7-2.fc8        fedora             64 k
 xorg-x11-filesystem     noarch     7.1-2.fc6        fedora            5.5 k
 xorg-x11-font-utils     i386       1:7.2-2.fc8      fedora             76 k

Transaction Summary
=============================================================================
Install     89 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 38 M

Comment 1 Allan Eising 2008-09-22 03:34:29 UTC
This bug is also a big problem for me. I use several apps that only require the non-x graphviz apps, such as dot, and as OP, I really wouldn't install all those gnome dependencies on my production servers.

Perhaps the now closed bug 206713 could shed some light into a possible solution?

Comment 2 Matthew Miller 2008-10-22 18:40:01 UTC
Here's the non-recursive list against rawhide using repoquery:

$ repoquery --requires --resolve --alldeps --qf '%{name}\n graphviz |sort
atk
bash
cairo
expat
fontconfig
freetype
freetype-freeworld
GConf2
gd
glib2
glibc
gnome-vfs2
graphviz
gtk2
libart_lgpl
libbonobo
libbonoboui
libgcc
libgnome
libgnomecanvas
libgnomeui
libICE
libjpeg
libpng
libSM
libstdc++
libtool-ltdl
libX11
libXaw
libXext
libXmu
libXpm
libXt
ORBit2
pango
popt
urw-fonts
zlib


And this is ironic, because graphviz suffers from subpackageitis -- there's 15 subpackages to the main package already. The language-dependent ones make sense because otherwise we'd have to bring in all of java and ocaml and whatever else, but the others:

-devIL:
  DevIL (195k; would also pull in lcms-libs, libmng, and libtiff)

-gd:
 *nothing* not already required by base package (including gd)

-graphs:
 *nothing* -- this doesn't add functionality, and should either
 be added to the docs subpackage if it's useful and dropped if it
 isn't.

Comment 3 Matthew Miller 2008-10-22 18:55:41 UTC
I've added the gd comment as bug #468093.

Also, updating this to rawhide -- although I'm not sure if the current list of things still brings in the more ridiculous deps above. (Although "yum remove gnome-themes" does still try to remove graphviz, so it's worth visiting -- remember my list there isn't recursive.)

Comment 4 Juliano F. Ravasi 2008-10-30 20:30:14 UTC
(In reply to comment #2)
> And this is ironic, because graphviz suffers from subpackageitis

If -gd gets merged with base package, and -graphs with -doc, and the X11-dependent stuff split into a -X11 package, we have two less and one more subpackage, reducing the number of subpackages by one. So, it is a win. :-)

Comment 5 Bug Zapper 2008-11-26 02:17:14 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 6 David Sugar 2009-05-13 12:48:36 UTC
I was bitten by this in rawhide (F12):

DEBUG util.py:280:  Executing command: /usr/bin/yum --installroot /var/lib/mock#
DEBUG util.py:256:  xfce4-notifyd-0.1.0-1.fc12.x86_64 from build has depsolving#
DEBUG util.py:256:    --> xfce4-notifyd conflicts with notification-daemon
DEBUG util.py:256:  Error: xfce4-notifyd conflicts with notification-daemon
DEBUG util.py:256:   You could try using --skip-broken to work around the probl#
DEBUG util.py:256:   You could try running: package-cleanup --problems
DEBUG util.py:256:                          package-cleanup --dupes
DEBUG util.py:256:                          rpm -Va --nofiles --nodigest

I use what is presently "graphviz-gd" as a dependency to generate documentation together with doxygen.  The current dependency tree is broken for using graphviz around this conflict in other packages I do not need in rawhide since it pulls gnome and other things.  I vote for a separate subpackage for the gtk/gnome subpackage.  The problem is purely from plugins which use/introduce gtk, cairo and other gnome dependencies, not from graphviz itself, and these plugins could easily be placed in a new subpackage.

Comment 7 Bug Zapper 2009-11-18 12:30:24 UTC
This message is a reminder that Fedora 10 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 10.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '10'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 10's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 10 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 8 Bug Zapper 2009-12-18 06:09:09 UTC
Fedora 10 changed to end-of-life (EOL) status on 2009-12-17. Fedora 10 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 9 Dominik 'Rathann' Mierzejewski 2010-08-31 16:11:31 UTC
There was never any reply from the maintainer. There's no indication this has been fixed (based on package logs), so moving to rawhide again. Patrick?

Comment 10 John Ellson 2012-01-21 22:39:16 UTC
From upstream - I understand and am sympathetic to the needs of web servers without X11, however, these days we consider libpangocairo to be basic to good layouts in all formats, not just X11 formats.

Since libpangocairo itself has dependencies on X11, we cannot escape the X11 dependencies in the base package.


I'd even split off all pangocairo (and X11) dependences into their own package - if Fedora's rpm had something like Suse's mechanism for suggesting other packages.
(Something a bit less than "depends on" but stronger than "optional" for most users)


I guess I don't really understand what the big deal is about binary dependencies?  yum or rpm take care of them, no?

Comment 11 Matthew Miller 2012-01-21 23:08:51 UTC
(In reply to comment #10)
> I'd even split off all pangocairo (and X11) dependences into their own package
> - if Fedora's rpm had something like Suse's mechanism for suggesting other
> packages.
> (Something a bit less than "depends on" but stronger than "optional" for most
> users)

We do have this; we can make the package be installed by default in the comps file.

> I guess I don't really understand what the big deal is about binary
> dependencies?  yum or rpm take care of them, no?

They take care of pulling them in, which is the problem. In the desktop or laptop case, it's no big deal, as disk space is cheap. But for servers, keeping these unrelated packages off is important for reducing the attack surface. And, for cloud-based deployments or other VM uses, suddenly size is important again. Keeping images small is a big deal, and hard dependency chains like this make that impossible.

Comment 12 John Ellson 2012-01-22 04:27:06 UTC
ok, I'll see about splitting out x11 dependencies for 2.30

Comment 13 John Ellson 2012-01-22 20:53:50 UTC
There is a new "graphviz-x" rpm in the development snapshots at www.graphviz.org.

"dot" in the base package is capable of rendering SVG, PS, (and other text formats), but any bitmap format will require graphviz-x, or graphviz-gd, both of which will pull in x11 dependencies.

Feedback welcome - I'm trying to ship 2.30 stable release in the next few weeks.

Comment 14 Fedora End Of Life 2013-04-03 20:05:41 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

Comment 15 Fedora Admin XMLRPC Client 2013-08-16 04:43:55 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 16 Fedora Admin XMLRPC Client 2013-09-02 13:38:13 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 17 Fedora End Of Life 2015-01-09 21:36:42 UTC
This message is a notice that Fedora 19 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 19. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained. Approximately 4 (four) weeks from now this bug will
be closed as EOL if it remains open with a Fedora 'version' of '19'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 19 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 18 Fedora End Of Life 2015-02-18 11:57:11 UTC
Fedora 19 changed to end-of-life (EOL) status on 2015-01-06. Fedora 19 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.