On Thursday 04 September 2003 22:39, Guillaume Cottenceau wrote:
> Paul Dorman <[EMAIL PROTECTED]> writes:
> > When I start rpmdrake from the console, I get this error on clicking the
> > tree:
> >
> > "Can't locate object method "iter_has_child" via package "Gtk2::TreeIter"
> > at /usr/lib/libDrakX/ugtk2.pm line 1309
>
> Don't see the same problem here :/. Looks like a broken perl-Gtk2
> but can't guess what would have broken it :/. Could you apply the
> following patch to ugtk2.pm and send me what's printed on the
> console, please? It might help us understand what's going on..
> thanks!
>
> --- ugtk2.pm    2003-09-01 13:32:53.000000000 +0200
> +++ /tmp/ugtk2.pm       2003-09-04 12:34:11.000000000 +0200
> @@ -1306,6 +1306,7 @@
>         $model && $iter or return;
>         Glib::Source->remove($idle) if $idle;
>
> +        print "model<$model> iter<$iter>\n";
>         if (!$model->iter_has_child($iter)) {
>             $curr = $model->get($iter, 0);
>             $idle = Glib::Timeout->add(100, $common->{display_info});
Thanks Guillaume!

Actually, that patch wouldn't take, so I added the print line manually. The 
contents of the reject file is at the bottom of this. The rpmdrake output 
with the additional line is:
..
..
..
would install instead of upgrade package kernel2.4-marcelo-2.4.22-1mdk.i586
model<Gtk2::TreeIter=SCALAR(0x92dc458)> iter<Gtk2::TreeStore=HASH(0x917890c)>
Can't locate object method "iter_has_child" via package "Gtk2::TreeIter" at 
/usr/lib/libDrakX/ugtk2.pm line 1310.
[EMAIL PROTECTED] libDrakX]#

my original ugtk2.pm file is 
-rw-r--r--    1 root     root        51054 Sep  1 09:44 ugtk2.pm

Reject file's contents:

***************
*** 1306,1311 ****
         $model && $iter or return;
         Glib::Source->remove($idle) if $idle;

         if (!$model->iter_has_child($iter)) {
             $curr = $model->get($iter, 0);
             $idle = Glib::Timeout->add(100, $common->{display_info});
--- 1306,1312 ----
         $model && $iter or return;
         Glib::Source->remove($idle) if $idle;

+         print "model<$model> iter<$iter>\n";
         if (!$model->iter_has_child($iter)) {
             $curr = $model->get($iter, 0);
             $idle = Glib::Timeout->add(100, $common->{display_info});
ugtk2.pm.rej lines 1-16/16 (END)


Reply via email to