Red Hat Bugzilla – Bug 802107
[abrt] firewall-applet-0.2.2-1.fc17: Gtk.py:1381:popup:AttributeError: 'Menu' object has no attribute 'popup_for_device'
Last modified: 2013-07-31 21:15:31 EDT
libreport version: 2.0.8
cmdline: /usr/bin/python /usr/bin/firewall-applet
comment: started firewall-applet in cmd-line, clicked on icon,
reason: Gtk.py:1381:popup:AttributeError: 'Menu' object has no attribute 'popup_for_device'
time: Sun 11 Mar 2012 11:13:52 AM CET
:Gtk.py:1381:popup:AttributeError: 'Menu' object has no attribute 'popup_for_device'
:Traceback (most recent call last):
: File "/usr/bin/firewall-applet", line 267, in right_menu_cb
: self.statusicon, button, time)
: File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1381, in popup
: self.popup_for_device(None, parent_menu_shell, parent_menu_item, func, data, button, activate_time)
:AttributeError: 'Menu' object has no attribute 'popup_for_device'
:Local variables in innermost frame:
:func: <function position_function at 0x27a4938>
:data: <StatusIcon object at 0x279ef50 (GtkStatusIcon at 0x2813d90)>
:self: <Menu object at 0x27af370 (GtkMenu at 0x254e360)>
:OS: Fedora release 17 (Beefy Miracle)
:Default run level: 5
:CPU Vendor: AuthenticAMD
:CPU Model: AMD Athlon(tm) Dual Core Processor 4050e
:CPU Stepping: 2
:CPU Family: 15
:CPU Model Num: 107
:Number of CPUs: 2
:CPU Speed: 2100
:System Memory: 7987
:System Swap: 8095
:Vendor: System manufacturer
:System: System Product Name System Version
:Form factor: Desktop
:SELinux Enabled: 1
:SELinux Policy: targeted
:SELinux Enforce: Enforcing
:MythTV Remote: Unknown
:MythTV Role: Unknown
:MythTV Theme: Unknown
:MythTV Tuner: -1
:(4098:22908:4098:22871) pci, pcieport, PCI/PCI, RD790 PCI to PCI bridge (PCI express gpp port C)
:(6505:4168:4163:33318) pci, atl1, ETHERNET, P5KPL-VM Motherboard
:(4098:22904:4098:22871) pci, pcieport, PCI/PCI, RD790 PCI to PCI bridge (external gfx0 port A)
:(4098:17285:4163:33263) pci, piix4_smbus, SERIAL, SBx00 SMBus Controller
:(4098:17293:4163:33263) pci, None, PCI/ISA, SB600 PCI to LPC Bridge
:(4098:17283:4163:33467) pci, snd_hda_intel, MULTIMEDIA, SBx00 Azalia (Intel HDA)
:(4318:357:4318:820) pci, nouveau, VIDEO, NV44 [Quadro NVS 285]
:(4098:17284:0:0) pci, None, PCI/PCI, SBx00 PCI to PCI Bridge
:(4098:17286:4163:33263) pci, ehci_hcd, USB, SB600 USB Controller (EHCI)
:(4098:17292:4163:33263) pci, pata_atiixp, STORAGE, SB600 IDE
:(4130:4353:0:0) pci, None, HOST/PCI, K8 [Athlon64/Opteron] Address Map
:(4130:4352:0:0) pci, None, HOST/PCI, K8 [Athlon64/Opteron] HyperTransport Technology Configuration
:(4130:4355:0:0) pci, k8temp, HOST/PCI, K8 [Athlon64/Opteron] Miscellaneous Control
:(4130:4354:0:0) pci, None, HOST/PCI, K8 [Athlon64/Opteron] DRAM Controller
:(4098:17289:4163:33263) pci, ohci_hcd, USB, SB600 USB (OHCI2)
:(4098:17290:4163:33263) pci, ohci_hcd, USB, SB600 USB (OHCI3)
:(4098:22871:4098:22871) pci, None, HOST/PCI, RX780/RX790 Chipset Host Bridge
:(4098:17288:4163:33263) pci, ohci_hcd, USB, SB600 USB (OHCI1)
:(4098:17287:4163:33263) pci, ohci_hcd, USB, SB600 USB (OHCI0)
:(4098:17291:4163:33263) pci, ohci_hcd, USB, SB600 USB (OHCI4)
:(4098:17280:4163:33329) pci, ahci, STORAGE, SB600 Non-Raid-5 SATA
:device mtpt type bsize frsize blocks bfree bavail file ffree favail
:/dev/mapper/vg_muesli-root / btrfs 4096 4096 8192000 4405970 551324 0 0 0
:/dev/mapper/vg_muesli-home /home btrfs 4096 4096 347773952 51160018 31647996 0 0 0
:/dev/sdb1 /boot ext4 1024 1024 202770 112598 102358 51200 50954 50954
This is the location of the problem:
if Gtk._version != '2.0':
def popup(self, parent_menu_shell, parent_menu_item, func, data, button, activate_time):
self.popup_for_device(None, parent_menu_shell, parent_menu_item, func, data, button, activate_time)
Menu = override(Menu)
Reassigning to pygobject3.
This issue is filed against gtk3 upstream here: https://bugzilla.gnome.org/show_bug.cgi?id=657385
The cause seems to be that newer Gtk replaces the Menu.popup() method with the Menu.popup_for_device() implementation, so you have the former method name with the latter API, which is kind of screwed.
The Python introspection binding creates the former method manually by calling the latter method with None as the device which would offer the right API for both Menu.popup() and Menu.popup_for_device(), only the latter isn't exposed anymore (and therefore calls to .popup() also fail).
*** Bug 805700 has been marked as a duplicate of this bug. ***
Right click the firewall-applet icon
OS Release: Fedora release 17 (Beefy Miracle)
Seems to be fixed, I believe this can be closed
This message is a reminder that Fedora 17 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 17. 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 '17'.
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 17'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 17 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 to Fedora 17's end of life.
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.
Fedora 17 changed to end-of-life (EOL) status on 2013-07-30. Fedora 17 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.