[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#546726: marked as done (graphviz: prune does not remove subgraph, but merely splits the graph)

Your message dated Sat, 19 Dec 2009 18:41:50 +0000
with message-id <4B2D1E6E.1020704@eclecticdave.com>
and subject line [Fwd: 'prune' behavior is by design]
has caused the Debian Bug report #546726,
regarding graphviz: prune does not remove subgraph, but merely splits the graph
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org

546726: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546726
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: graphviz
Version: 2.20.2-3
Severity: normal

The man page for 'prune' says:
   prune  reads  directed  graphs in the same format used by dot(1) and removes
   subgraphs rooted at nodes specified on the command line via  options.

With the attached dot file as starting point, I tried:
   prune -n libparse-debianchangelog-perl -N "shape=diamond" aptitude.dot

With the expectation that everything "below" libparse-debianchangelog-perl
would be removed from the graph and thus significantly reduce its size.
However, that's not what happened. Instead the graph gets split into
two separate parts.

I tried adding '-n libncurses5' as that was the only remaining connection,
but that only made the split complete. I still got two separate graphs
instead of just the reduced graph for aptitude.

-- System Information:
Debian Release: 5.0.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-rc9 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages graphviz depends on:
ii  libc6                  2.7-18            GNU C Library: Shared libraries
ii  libexpat1              2.0.1-4           XML parsing C library - runtime li
ii  libgd2-noxpm           2.0.36~rc1~dfsg-3 GD Graphics Library version 2 (wit
ii  libgraphviz4           2.20.2-3          rich set of graph drawing tools
ii  libx11-6               2:1.1.5-2         X11 client-side library
ii  libxaw7                2:1.0.4-2         X11 Athena Widget library
ii  libxmu6                2:1.0.4-1         X11 miscellaneous utility library
ii  libxt6                 1:1.0.5-3         X11 toolkit intrinsics library

Versions of packages graphviz recommends:
pn  ttf-liberation                <none>     (no description available)

Versions of packages graphviz suggests:
pn  graphviz-doc  <none>                     (no description available)
ii  gsfonts       1:8.11+urwcyr1.0.7~pre44-3 Fonts for the Ghostscript interpre

-- no debconf information
digraph "aptitude" {
	node [shape=box];
	"aptitude" -> "libapt-pkg-libc6.7-6-4.6" [color=blue];
	"libapt-pkg-libc6.7-6-4.6" -> "apt" [dir=back,arrowtail=inv,color=green];
	"libapt-pkg-libc6.7-6-4.6" [shape=octagon];
	"aptitude" -> "libcwidget3" [color=blue];
	"libcwidget3" -> "libncursesw5" [color=blue,label="(>= 5.6+20071006-3)"];
	"libncursesw5" -> "libgpm2";
	"libcwidget3" -> "libsigc++-2.0-0c2a" [color=blue,label="(>= 2.0.2)"];
	"libsigc++-2.0-0c2a" -> "libsigc++-1.9-0" [color=red];
	"libsigc++-2.0-0c2a" -> "libsigc++-2.0-0" [color=red];
	"libsigc++-2.0-0c2a" -> "libsigc++-2.0-0c2" [color=red];
	"aptitude" -> "libept0" [color=blue,label="(>= 0.5.22)"];
	"libept0" -> "libapt-pkg-libc6.7-6-4.6" [color=blue];
	"libept0" -> "libxapian15" [color=blue];
	"libxapian15" -> "libxapian2" [color=red];
	"aptitude" -> "libncursesw5" [color=blue,label="(>= 5.6+20071006-3)"];
	"aptitude" -> "libsigc++-2.0-0c2a" [color=blue,label="(>= 2.0.2)"];
	"aptitude" -> "libxapian15" [color=blue];
	"aptitude" -> "alt1";
	"alt1":"aptitude-doc" -> "Pr_aptitude-doc" [label="-5-",dir=back,arrowtail=inv,color=green];
	"Pr_aptitude-doc" [label="...",style=rounded];
	"aptitude" -> "libparse-debianchangelog-perl";
	"libparse-debianchangelog-perl" -> "libclass-accessor-perl" [color=blue];
	"libclass-accessor-perl" -> "perl" [color=blue,label="(>= 5.6.1-7)"];
	"libparse-debianchangelog-perl" -> "libio-string-perl" [color=blue];
	"libio-string-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libparse-debianchangelog-perl" -> "liblocale-gettext-perl" [color=blue];
	"liblocale-gettext-perl" -> "perl-base" [color=purple,style=bold,label="(>= 5.10.0-9)"];
	"perl-base" -> "dpkg" [color=purple,style=bold,label="(>= 1.14.20)"];
	"liblocale-gettext-perl" -> "perlapi-5.10.0" [color=purple,style=bold];
	"perlapi-5.10.0" -> "perl-base" [dir=back,arrowtail=inv,color=green];
	"perlapi-5.10.0" [shape=octagon];
	"libparse-debianchangelog-perl" -> "libtimedate-perl" [color=blue];
	"libtimedate-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libtimedate-perl" -> "timedate" [color=red];
	"libparse-debianchangelog-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libparse-debianchangelog-perl" -> "libhtml-parser-perl";
	"libhtml-parser-perl" -> "perl" [color=blue,label="(>= 5.10.0-9)"];
	"libhtml-parser-perl" -> "perlapi-5.10.0" [color=blue];
	"libhtml-parser-perl" -> "libhtml-tagset-perl" [color=blue];
	"libhtml-tagset-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libhtml-parser-perl" -> "liburi-perl" [color=blue];
	"liburi-perl" -> "perl" [color=blue];
	"liburi-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"liburi-perl" -> "libmime-base64-perl" [color=blue];
	"libmime-base64-perl" -> "perl" [dir=back,arrowtail=inv,color=green];
	"libmime-base64-perl" [shape=octagon];
	"liburi-perl" -> "libnet-perl" [color=blue];
	"libnet-perl" -> "perl-modules" [dir=back,arrowtail=inv,color=green];
	"perl-modules" -> "perl" [color=blue,label="(>= 5.10.0-1)"];
	"libnet-perl" [shape=octagon];
	"liburi-perl" -> "data-dumper" [color=blue];
	"data-dumper" -> "perl" [dir=back,arrowtail=inv,color=green];
	"data-dumper" [shape=octagon];
	"libparse-debianchangelog-perl" -> "libhtml-template-perl";
	"libhtml-template-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libparse-debianchangelog-perl" -> "libxml-simple-perl";
	"libxml-simple-perl" -> "perl" [color=blue,label="(>= 5.8)"];
	"libxml-simple-perl" -> "libxml-namespacesupport-perl" [color=blue,label="(>= 1.04)"];
	"libxml-namespacesupport-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libxml-simple-perl" -> "libxml-sax-perl" [color=blue];
	"libxml-sax-perl" -> "libxml-namespacesupport-perl" [color=blue];
	"libxml-sax-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libxml-sax-perl" -> "ucf" [color=blue,label="(>= 0.28)"];
	"libxml-sax-perl" -> "libxml-sax-expat-perl";
	"libxml-sax-expat-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libxml-sax-expat-perl" -> "libxml-namespacesupport-perl" [color=blue,label="(>= 0.03)"];
	"libxml-sax-expat-perl" -> "libxml-parser-perl" [color=blue,label="(>= 2.27)"];
	"libxml-parser-perl" -> "perl" [color=blue,label="(>= 5.10.0-9)"];
	"libxml-parser-perl" -> "perlapi-5.10.0" [color=blue];
	"libxml-parser-perl" -> "liburi-perl" [color=blue];
	"libxml-parser-perl" -> "libwww-perl" [color=blue];
	"libwww-perl" -> "perl" [color=blue,label="(>= 5.8.1)"];
	"libwww-perl" -> "libdigest-md5-perl" [color=blue];
	"libdigest-md5-perl" -> "perl" [dir=back,arrowtail=inv,color=green];
	"libdigest-md5-perl" [shape=octagon];
	"libwww-perl" -> "liburi-perl" [color=blue,label="(>= 1.10)"];
	"libwww-perl" -> "libhtml-parser-perl" [color=blue,label="(>= 3.33)"];
	"libwww-perl" -> "libhtml-tree-perl" [color=blue,label="(>= 3.11)"];
	"libhtml-tree-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libhtml-tree-perl" -> "libhtml-parser-perl" [color=blue];
	"libhtml-tree-perl" -> "libhtml-tagset-perl" [color=blue,label="(>= 3.02)"];
	"libwww-perl" -> "libhtml-tagset-perl" [color=blue];
	"libwww-perl" -> "netbase" [color=blue];
	"netbase" -> "lsb-base" [color=blue,label="(>= 3.0-6)"];
	"lsb-base" -> "sed" [color=blue];
	"lsb-base" -> "ncurses-bin" [color=blue];
	"ncurses-bin" -> "libncurses5" [color=purple,style=bold,label="(>= 5.6+20071006-3)"];
	"libncurses5" -> "libgpm2";
	"ncurses-bin" -> "ncurses" [color=red];
	"ncurses-bin" -> "tput" [color=red];
	"netbase" -> "ifupdown";
	"ifupdown" -> "net-tools" [color=blue];
	"ifupdown" -> "lsb-base" [color=blue];
	"libwww-perl" -> "libmailtools-perl";
	"libmailtools-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libmailtools-perl" -> "libnet-perl" [color=blue];
	"libmailtools-perl" -> "libtimedate-perl" [color=blue];
	"libwww-perl" -> "libhtml-format-perl";
	"libhtml-format-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libhtml-format-perl" -> "libhtml-tree-perl" [color=blue,label="(>= 3.15)"];
	"libhtml-format-perl" -> "libfont-afm-perl" [color=blue,label="(>= 1.17)"];
	"libfont-afm-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libwww-perl" -> "libcompress-zlib-perl";
	"libcompress-zlib-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libcompress-zlib-perl" -> "libio-compress-zlib-perl" [color=blue,label="(>= 2.012)"];
	"libio-compress-zlib-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libio-compress-zlib-perl" -> "libcompress-raw-zlib-perl" [color=blue,label="(>= 2.012)"];
	"libcompress-raw-zlib-perl" -> "perl" [color=blue,label="(>= 5.10.0-19)"];
	"libcompress-raw-zlib-perl" -> "perlapi-5.10.0" [color=blue];
	"libio-compress-zlib-perl" -> "libcompress-raw-zlib-perl" [color=blue,label="(<< 2.012.~)"];
	"libio-compress-zlib-perl" -> "libio-compress-base-perl" [color=blue,label="(>= 2.012)"];
	"libio-compress-base-perl" -> "perl" [color=blue,label="(>= 5.6.0-16)"];
	"libio-compress-zlib-perl" -> "libio-compress-base-perl" [color=blue,label="(<< 2.012.~)"];
	"libcompress-zlib-perl" -> "libio-compress-zlib-perl" [color=blue,label="(<< 2.012.~)"];
	"libcompress-zlib-perl" -> "libio-compress-base-perl" [color=blue,label="(>= 2.012)"];
	"libcompress-zlib-perl" -> "libio-compress-base-perl" [color=blue,label="(<< 2.012.~)"];
	"libxml-parser-perl" -> "libexpat1" [color=blue,label="(>= 1.95.8)"];
	"libxml-sax-expat-perl" -> "libxml-sax-perl" [color=blue,label="(>= 0.03)"];
	"libxml-simple-perl" -> "alt2" [color=blue];
	"alt2":"libxml-libxml-perl" -> "perl" [color=blue,label="(>= 5.10.0-9)"];
	"alt2":"libxml-libxml-perl" -> "perlapi-5.10.0" [color=blue];
	"alt2":"libxml-libxml-perl" -> "libxml-libxml-common-perl" [color=blue];
	"libxml-libxml-common-perl" -> "perl" [color=blue,label="(>= 5.10.0-9)"];
	"libxml-libxml-common-perl" -> "perlapi-5.10.0" [color=blue];
	"libxml-libxml-common-perl" -> "libxml2" [color=blue,label="(>= 2.6.27)"];
	"libxml2" -> "xml-core";
	"alt2":"libxml-libxml-perl" -> "libxml-namespacesupport-perl" [color=blue,label="(>= 1.07)"];
	"alt2":"libxml-libxml-perl" -> "libxml-sax-perl" [color=blue,label="(>= 0.11)"];
	"alt2":"libxml-libxml-perl" -> "libxml2" [color=blue,label="(>= 2.6.27)"];
	"aptitude" [style="setlinewidth(2)"]
	"libsigc++-1.9-0" [style=filled,fillcolor=oldlace];
	"libsigc++-2.0-0" [style=filled,fillcolor=oldlace];
	"libsigc++-2.0-0c2" [style=filled,fillcolor=oldlace];
	"libxapian2" [style=filled,fillcolor=oldlace];
	"ncurses" [style=filled,fillcolor=oldlace];
	"timedate" -> "libtimedate-perl" [dir=back,arrowtail=inv,color=green];
	"timedate" [shape=octagon];
	"tput" -> "ncurses-bin" [dir=back,arrowtail=inv,color=green];
	"tput" [shape=octagon];
	alt1 [
		shape = "record"
		label = "<aptitude-doc-en> aptitude-doc-en | <aptitude-doc> aptitude-doc"
	alt2 [
		shape = "record"
		label = "<libxml-libxml-perl> libxml-libxml-perl | <libxml-sax-expat-perl> [libxml-sax-expat-perl]"
	"apt" [shape=diamond];
	"dpkg" [shape=diamond];
	"perl" [shape=diamond];
	"ucf" [shape=diamond];
	"xml-core" [shape=diamond];
// Excluded dependencies:
// libc6 libgcc1 libstdc++6 zlib1g

--- End Message ---
--- Begin Message ---
Hmm, seems Icedove doesn't like semi-colons much ... sorry, let's try
that again ;-)

-------- Original Message --------
Subject: 'prune' behavior is by design
Date: Sat, 19 Dec 2009 18:22:34 +0000
From: David Claughton <dave@eclecticdave.com>
To: Frans Pop ; 546726-done@bugs.debian.org <elendil@planet.nl>


It looks to me like this behaviour is by design.

What is happening here, is 'prune' removes child nodes *until* it
encounters one with multiple parent nodes, whereupon it only removes the
linking edge.  It deliberately avoids deleting the node in this
instance, and even if it did it has no capability to walk "backwards"
along the graph to delete the other parents.

It might be possible to achieve what you want using 'gvpr' or perhaps a
combination of 'prune' and 'gvpr'.  I haven't examined this possibility
in any great detail however ;-)

Closing this bug as I don't think there is anything to do here.  Feel
free to reopen it if you disagree!



--- End Message ---

Reply to: