Comment 11 for bug 12170

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <20050123012135.GA27378@localhost>
Date: Sat, 22 Jan 2005 22:21:35 -0300
From: Margarita Manterola <email address hidden>
To: <email address hidden>, <email address hidden>
Subject: I can't reproduce it either

I've been trying to reproduce this bug as well, with no luck. I have the
same versions of meld and its dependencies as the ones listed in the bug
report.

However, I also have the complete GNOME environment, and because of what's
stated in the rest of this mail I'm inclined to think that Bas doesn't and
that the core of the problem is there: meld is failing to declare some
extra dependencies on some GNOME packages, that any GNOME user will have
installed by default (or something of the sort).

> [bas@matilda]/scratch/kevin> meld test/mn_fit_v5_03 mn-fit-5.03
> /usr/lib/meld/gnomeglade.py:145: GtkWarning: Unable to locate theme engine in module_path: "raleigh",
> image = gtk.Image()

This seems to be a problem related to the lack of the package
"gtk-engines-pixmap" that contains the file
"/usr/lib/gtk/themes/engines/libraleigh.la"

Maybe meld should declare a "Suggests" or "Recommends" on this package, but
I think this part is can be safely declared unrelated to the crashing bug.

> /usr/lib/meld/gnomeglade.py:46: GtkWarning: file gtklabel.c: line 2792 (gtk_label_set_use_underline): assertion `GTK_IS_LABEL (label)' failed
> self.xml = gtk.glade.XML(file, root, gettext.textdomain() )
> /usr/lib/meld/gnomeglade.py:46: GtkWarning: gtkwidget.c:3076: widget `GtkToolButton' has no activatable signal "clicked" without arguments
> self.xml = gtk.glade.XML(file, root, gettext.textdomain() )

> (meld:1619): GLib-GObject-WARNING **: gsignal.c:1657: signal `pressed' is invalid for instance `0x8393338'

I don't get any of these. All of these warnings seem to be related to GTK
issues. Maybe I don't get them because I have a different libgtk2.0-0
version (2.4.14-2).

> /usr/lib/meld/dirdiff.py:278: DeprecationWarning:
> _("Hide %s") % f.label, "", icon, self._update_name_filter, i )

I do get this one, but it's just a warning.

> /usr/lib/meld/dirdiff.py:278: GtkWarning: mixing deprecated and non-deprecated GtkToolbar API is not allowed
> _("Hide %s") % f.label, "", icon, self._update_name_filter, i )

I don't get this, and I think it might be symptomatic of what's going on.

> Traceback (most recent call last):
> File "/usr/bin/meld", line 88, in ?
> meldapp.main()
> File "/usr/lib/meld/meldapp.py", line 911, in main
> app.append_diff(args)
> File "/usr/lib/meld/meldapp.py", line 798, in append_diff
> self.append_dirdiff(paths)
> File "/usr/lib/meld/meldapp.py", line 770, in append_dirdiff
> doc = dirdiff.DirDiff(self.prefs, len(dirs))
> File "/usr/lib/meld/dirdiff.py", line 242, in __init__
> self.create_name_filters()
> File "/usr/lib/meld/dirdiff.py", line 279, in create_name_filters
> toggle.set_active(f.active)
> AttributeError: 'NoneType' object has no attribute 'set_active'

Even if I can't reproduce the bug, from the traceback, we can have a look
at the code and guess where the bug is:

        for i,f in misc.enumerate(self.name_filters_available):
            icon = gtk.Image()
            icon.set_from_stock(gtk.STOCK_FIND, gtk.ICON_SIZE_LARGE_TOOLBAR)
            icon.show()
            toggle = self.toolbar.append_element(gtk.TOOLBAR_CHILD_TOGGLEBUTTON, None, f.label,
                _("Hide %s") % f.label, "", icon, self._update_name_filter, i )
            toggle.set_active(f.active)

So, what the python error is saying is that "toggle" is of the type
"NoneType". I don't pretend to by a python expert, but to me this is
saying that the call to
"self.toolbar.append_element(gtk.TOOLBAR_CHILD_TOGGLEBUTTON, None, f.label,
_("Hide %s") % f.label, "", icon, self._update_name_filter, i )"
is not returning the expected toggle object.

Reading the helpfile in devhelp, it says "gtk_toolbar_append_element is
deprecated and should not be used in newly-written code.", so, the
deprecated part of the code is the call to the function itself.

I really fail to see which is the non-deprecated part of the function
called (I've been reading the gtktoolbar.c source code, with no luck). But
yet, since gtktoolbar is part of libgtk, I think it might be a versioning
problem.

The dependency tree is:
meld depends on python-gtk2, which depends on python2.3-gtk2 which depends
on " libgtk2.0-0 (>= 2.4.4) ". libgtk2.0-0 is presently at 2.4.14, I'm
guessing that Bas might have a version that is in the middle of the two,
and that for some reason has this "non-deprecated vs deprecated" issue.

So, Bas, please tell us your libgtk2.0-0 version, and then see if upgrading
it to a new version fixes this problem.

(Sorry for being this verbose).

--
 Bezos, (o.
     Marga. (/)_