[gobolinux-users] freshen 2.2.7 crash

Hisham Muhammad hisham.hm at gmail.com
Tue Sep 18 12:22:31 NZST 2007


On 9/17/07, Michael Homer <gobo-users-dufus at wotfun.com> wrote:
> On 9/18/07, Jonas Karlsson <jonka750 at student.liu.se> wrote:
> > 2007/9/17, kenneth marken <k-marken at online.no>:
> > > Freshen: Error: topological sort failed: ["Cairo", "Xorg", "DBus", "GTK+", "Pango", "HAL", "DBus-GLib"] [TSort::Cyclic]
> > > Backtrace:
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:153:in `tsort_each'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:184:in `each_strongly_connected_component'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:211:in `each_strongly_connected_component_from'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:220:in `each_strongly_connected_component_from'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:210:in `each_strongly_connected_component_from'
> > >  /Programs/Freshen/2.2.7/lib/depsort.rb:22:in `each'
> > >  /Programs/Freshen/2.2.7/lib/depsort.rb:22:in `tsort_each_child'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:204:in `each_strongly_connected_component_from'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:183:in `each_strongly_connected_component'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:181:in `tsort_each_node'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:181:in `each_strongly_connected_component'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:149:in `tsort_each'
> > >  /Programs/Ruby/1.8.6-r1/lib/ruby/1.8/tsort.rb:136:in `tsort'
> > >  /Programs/Freshen/2.2.7/lib/freshen-functions.rb:379:in `produceUpdatesList'
> > >  /System/Links/Executables/Freshen:560:in `sysStatus'
> > >  /System/Links/Executables/Freshen:188:in `run'
> > >  /System/Links/Libraries/ruby/site_ruby/1.8/gobo.rb:187:in `start'
> > >  /System/Links/Executables/Freshen:694
> > >
> > > it seems to have issues with this package:
> > > Intltool 0.35.5-r1
> > >
> > Seems like an issue with a cyclic graph to me. Xorg and DBus each
> > depend on eachother (since Xorg 7.3) and with Xorg depending on DBus
> > and HAL one can make a bunch of cycles of the above listing.
> Yes, that's it. There's no possible way to order them such that each
> one comes after its dependencies, so it chokes. I have special-cased a
> few programs when I've noticed that they caused the problem for me,
> but I don't think that's really the right way to go about it. I'm not
> sure what -is- the right way to do it either.
>
> The hacky way to fix it is either a) add entries like those on lines
> 79-80 of depsort.rb for packages, or b) use the
> exclude-asserting-compatibility option/exceptButCompatible config
> entry to strip them out of the graph (which I don't think will work in
> all cases).
>
> I am open to suggestions for how to avoid this problem. Those entries
> are in the Dependencies for good reason (ChrootCompile), so they can't
> be removed from there, but ignoring dependencies in general isn't an
> option either.

Two ways of breaking the cycles:

* When installing binary packages, cycles can be broken without too
much trouble because the installation order doesn't matter that much
as long as all dependencies are satisfied in the end.

* When compiling packages, cycles can be broken if the older,
currently installed version of the package satisfies the dependency.
Xorg depends on DBus depends on Xorg, but one can Compile DBus 1.0.2
with Xorg 7.1 and then Compile Xorg 7.3 with DBus 1.0.2.

-- Hisham


More information about the gobolinux-users mailing list