Hi,

Could you test the patch attached on screenlets and see if the bug still
appear ?
Thanks.

Regards,
Julien Lavergne 

Le mardi 31 mars 2009 à 22:00 -0700, John Gruenenfelder a écrit :
> On Tue, Mar 31, 2009 at 09:12:38AM +0200, Julien Lavergne wrote:
> >Le lundi 30 mars 2009 à 19:56 -0700, John Gruenenfelder a écrit :
> >> None of these steps helped and all seem to have the same outcome:
> >> 
> >> $ python .screenlets/ClockRingMod/ClockRingModScreenlet.py
> >> Segmentation fault
> >> $ python /usr/share/screenlets/Clock/ClockScreenlet.py
> >> Segmentation fault
> >> $ python /usr/share/screenlets/AppMenu/AppMenuScreenlet.py
> >> Segmentation fault
> >> 
> >> And after moving my old screnlets config directories out of the way:
> >> 
> >> $ screenlets-manager
> >> Segmentation fault
> >> 
> >> How might I make these commands print more useful information, such as 
> >> where
> >> the segfault is occuring or possibly having python print out a stacktrace
> >> rather than simply aborting?
> >> 
> >
> >You can obtain a stacktrace by following the instructions of this
> >pages : http://wiki.python.org/moin/DebuggingWithGdb . Note that you'll
> >need to install some -dbg packages of different python packages (such as
> >python-cairo-dbg).
> 
> Okay, I've installed some of the debug packages and now have backtraces for 
> two
> of the screenlets.  I've attached the log files containing the gdb output.
> 
> 
diff -Nur screenlets-0.1.2/src/lib/backend.py screenlets-0.1.2-new/src/lib/backend.py
--- screenlets-0.1.2/src/lib/backend.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/backend.py	2009-04-10 17:22:33.000000000 +0200
@@ -33,7 +33,7 @@
 	print _("GConf python module not found. GConf settings backend is disabled.")
 
 
-class ScreenletsBackend:
+class ScreenletsBackend(object):
 	"""The backend performs the loading/saving of the 'key=value'-strings. 
 	Extend this superclass to implement different saving-backends."""
 	
diff -Nur screenlets-0.1.2/src/lib/drawing.py screenlets-0.1.2-new/src/lib/drawing.py
--- screenlets-0.1.2/src/lib/drawing.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/drawing.py	2009-04-10 17:05:49.000000000 +0200
@@ -10,7 +10,7 @@
 
 import gtk, cairo, pango, math
 
-class Drawing:
+class Drawing(object):
 	"""Contains static drawing functions."""
 	
 	# ----------------------------------------------------------------------
diff -Nur screenlets-0.1.2/src/lib/__init__.py screenlets-0.1.2-new/src/lib/__init__.py
--- screenlets-0.1.2/src/lib/__init__.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/__init__.py	2009-04-10 17:05:17.000000000 +0200
@@ -135,7 +135,7 @@
 # CLASSES
 #-------------------------------------------------------------------------------
 
-class DefaultMenuItem:
+class DefaultMenuItem(object):
 	"""A container with constants for the default menuitems"""
 	
 	# default menuitem constants (is it right to increase like this?)
@@ -2081,7 +2081,7 @@
 		del ctx
 		return False
 
-class Tooltip:
+class Tooltip(object):
 	"""A window that displays a text and serves as Tooltip (very basic yet)."""
 	
 	# internals
@@ -2194,7 +2194,7 @@
 		ctx.set_source_rgba(0, 0, 0, 0.7)
 		ctx.stroke()
 
-class Notify:
+class Notify(object):
 	"""A window that displays a text and serves as Notification (very basic yet)."""
 	
 	# internals
diff -Nur screenlets-0.1.2/src/lib/install.py screenlets-0.1.2-new/src/lib/install.py
--- screenlets-0.1.2/src/lib/install.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/install.py	2009-04-10 17:20:59.000000000 +0200
@@ -33,7 +33,7 @@
 	DIR_USER		= screenlets.DIR_USER
 	DIR_AUTOSTART = utils.get_autostart_dir()
 
-class ScreenletInstaller:
+class ScreenletInstaller(object):
 	"""A simple utility to install screenlets into the current user's directory 
 	(so either into $HOME/.screenlets/ for normal users or, if run as root, 
 	into screenlets.INSTALL_PREFIX/share/screenlets/)."""
diff -Nur screenlets-0.1.2/src/lib/menu.py screenlets-0.1.2-new/src/lib/menu.py
--- screenlets-0.1.2/src/lib/menu.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/menu.py	2009-04-10 17:20:33.000000000 +0200
@@ -216,7 +216,7 @@
 # Classes
 #-----------------------------------------------
 
-class ApplicationMenu:
+class ApplicationMenu(object):
 	"""A utility-class to simplify the creation of gtk.Menus from directories with 
 	desktop-files. Reads all files in one or multiple directories into its internal list 
 	and offers an easy way to create entire categories as complete gtk.Menu 
@@ -287,7 +287,7 @@
 		# return menu
 		return menu
 
-class DefaultMenuItem:
+class DefaultMenuItem(object):
 	"""A container with constants for the default menuitems"""
 	
 	# default menuitem constants (is it right to increase like this?)
diff -Nur screenlets-0.1.2/src/lib/options.py screenlets-0.1.2-new/src/lib/options.py
--- screenlets-0.1.2/src/lib/options.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/options.py	2009-04-10 17:23:59.000000000 +0200
@@ -371,7 +371,7 @@
 	return None
 	
 
-class EditableOptions:
+class EditableOptions(object):
 	"""The EditableOptions can be inherited from to allow objects to export 
 	editable options for editing them with the OptionsEditor-class.
 	NOTE: This could use some improvement and is very poorly coded :) ..."""
diff -Nur screenlets-0.1.2/src/lib/plugins/AmazonCoverArtSearch.py screenlets-0.1.2-new/src/lib/plugins/AmazonCoverArtSearch.py
--- screenlets-0.1.2/src/lib/plugins/AmazonCoverArtSearch.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/AmazonCoverArtSearch.py	2009-04-10 17:18:50.000000000 +0200
@@ -26,7 +26,7 @@
 ASSOCIATE = "webservices-20"
 
 
-class Bag: pass
+class Bag(object): pass
 
 class AmazonCoverArtSearch (object):
 	def __init__ (self, loader):
diff -Nur screenlets-0.1.2/src/lib/plugins/Convert.py screenlets-0.1.2-new/src/lib/plugins/Convert.py
--- screenlets-0.1.2/src/lib/plugins/Convert.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Convert.py	2009-04-10 17:16:21.000000000 +0200
@@ -3,7 +3,7 @@
 # file BaseConverter.py. But first, please, read below if a RatioConverter isn't 
 # well suitable for your desired task.
 
-class Converter:
+class Converter(object):
 	"""The base class for the converters. The converters look after maintaining 
 	the list of currently shown values - initialising, accepting keyboard input, 
 	etc.."""
diff -Nur screenlets-0.1.2/src/lib/plugins/Flickr.py screenlets-0.1.2-new/src/lib/plugins/Flickr.py
--- screenlets-0.1.2/src/lib/plugins/Flickr.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Flickr.py	2009-04-10 17:15:47.000000000 +0200
@@ -11,7 +11,7 @@
 from urllib import urlopen
 import Proxy
 
-class Flickr:
+class Flickr(object):
 
 	url_list = {}
 
diff -Nur screenlets-0.1.2/src/lib/plugins/GenericPlayer.py screenlets-0.1.2-new/src/lib/plugins/GenericPlayer.py
--- screenlets-0.1.2/src/lib/plugins/GenericPlayer.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/GenericPlayer.py	2009-04-10 17:17:47.000000000 +0200
@@ -9,7 +9,7 @@
 # A Generic API to a Music Player by vrunner
 # All Players must extend this class
 
-class GenericAPI:
+class GenericAPI(object):
 	__name__ = 'GenericAPI'
 	__version__ = '0.0'
 	__author__ = 'vrunner'
diff -Nur screenlets-0.1.2/src/lib/plugins/Gstreamer.py screenlets-0.1.2-new/src/lib/plugins/Gstreamer.py
--- screenlets-0.1.2/src/lib/plugins/Gstreamer.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Gstreamer.py	2009-04-10 17:19:13.000000000 +0200
@@ -3,7 +3,7 @@
 pygst.require("0.10")
 import gst
 
-class gstreamer:
+class gstreamer(object):
 
 	def __init__(self):
 		self.player = gst.element_factory_make("playbin", "player")
diff -Nur screenlets-0.1.2/src/lib/plugins/iCal.py screenlets-0.1.2-new/src/lib/plugins/iCal.py
--- screenlets-0.1.2/src/lib/plugins/iCal.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/iCal.py	2009-04-10 17:14:58.000000000 +0200
@@ -45,7 +45,7 @@
 import datetime
 import time
 
-class ICalReader:
+class ICalReader(object):
 	def __init__(self, dataLines = None):
 		'''
 		iCal.ICalReader([dataList])
@@ -215,7 +215,7 @@
 			hour = 0
 			minute = 0
 
-class ICalEvent:
+class ICalEvent(object):
 	def __init__(self):
 		self.exceptionDates = []
 		self.dateSet = None
@@ -260,10 +260,10 @@
 	def startTime(self):
 		return self.startDate
 
-#class ICalTodo:
+#class ICalTodo(object):
 
 #strange...
-#class DateParser:
+#class DateParser(object):
 def parse(dateStr):
 	year = int(dateStr[0:4])
 	if year < 1970:
@@ -280,7 +280,7 @@
 	return datetime.datetime(year, month, day, hour, minute)
 
 
-class DateSet:
+class DateSet(object):
 	def __init__(self, startDate, endDate, rule):
 		self.startDate = startDate
 		self.endDate = endDate
diff -Nur screenlets-0.1.2/src/lib/plugins/keyring.py screenlets-0.1.2-new/src/lib/plugins/keyring.py
--- screenlets-0.1.2/src/lib/plugins/keyring.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/keyring.py	2009-04-10 17:06:19.000000000 +0200
@@ -7,7 +7,7 @@
 
 # pavpanchekha
 
-class KeyRing:
+class KeyRing(object):
     def __init__(self):
         import keyring
         self.keyring = keyring
diff -Nur screenlets-0.1.2/src/lib/plugins/Mail.py screenlets-0.1.2-new/src/lib/plugins/Mail.py
--- screenlets-0.1.2/src/lib/plugins/Mail.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Mail.py	2009-04-10 17:17:18.000000000 +0200
@@ -84,14 +84,14 @@
 may block connections for a certain interval before allowing reconnects."""
 
 # the current operational status of the mailcheck
-class MailboxStatus:
+class MailboxStatus(object):
 	UNKNOWN			= 0
 	ALL_READ		= 1
 	UNREAD_MAIL	= 2
 	NEW_MAIL		=	3
 
 # the mailcheck status
-class MailCheckStatus:
+class MailCheckStatus(object):
 	REFRESH		= 1
 	IDLE		= 2
 	ERROR		= 3
@@ -210,7 +210,7 @@
 			self.thread.join()
 			self.thread = None
 
-class Mailer:
+class Mailer(object):
     """
     Class that retrieve the information from an Imap, Pop or mbox account
 
diff -Nur screenlets-0.1.2/src/lib/plugins/Mplayer.py screenlets-0.1.2-new/src/lib/plugins/Mplayer.py
--- screenlets-0.1.2/src/lib/plugins/Mplayer.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Mplayer.py	2009-04-10 17:19:51.000000000 +0200
@@ -15,7 +15,7 @@
 #
 #  Provides simple piped I/O to an mplayer process.
 #
-class Mplayer:
+class Mplayer(object):
 	
 	pymp, mplayerIn, mplayerOut = None, None, None
 	inputHandler, eofHandler, statusQuery = 0, 0, 0
diff -Nur screenlets-0.1.2/src/lib/plugins/Proxy.py screenlets-0.1.2-new/src/lib/plugins/Proxy.py
--- screenlets-0.1.2/src/lib/plugins/Proxy.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/plugins/Proxy.py	2009-04-10 17:13:57.000000000 +0200
@@ -10,7 +10,7 @@
 import gconf
 
 
-class Proxy:
+class Proxy(object):
 
 	def __init__(self):
 		try:
diff -Nur screenlets-0.1.2/src/lib/utils.py screenlets-0.1.2-new/src/lib/utils.py
--- screenlets-0.1.2/src/lib/utils.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/lib/utils.py	2009-04-10 17:22:03.000000000 +0200
@@ -544,7 +544,7 @@
 # CLASSES
 # ------------------------------------------------------------------------------
 
-class ScreenletInfo:
+class ScreenletInfo(object):
 	"""A container with info about a screenlet."""
 
 	def __init__ (self, name, lname, info, author, version, icon):
@@ -632,7 +632,7 @@
 		return False
 
 
-class IniReader:
+class IniReader(object):
 	"""A simple config/ini-reader class. This is only used for reading the 
 	theme.conf files yet, thus it only uses string-values.
 	TODO: add writing-functions and let backend use this, too"""
@@ -709,7 +709,7 @@
 
 
 
-class Notifier:
+class Notifier(object):
 	"""A simple and conveniet wrapper for the notification-service. Allows
 	screenlets to easily pop up notes with their own icon (if any)."""
 	
diff -Nur screenlets-0.1.2/src/share/examples/empty-test-window.py screenlets-0.1.2-new/src/share/examples/empty-test-window.py
--- screenlets-0.1.2/src/share/examples/empty-test-window.py	2008-06-04 14:31:25.000000000 +0200
+++ screenlets-0.1.2-new/src/share/examples/empty-test-window.py	2009-04-10 16:51:57.000000000 +0200
@@ -19,7 +19,7 @@
 
 
 # testing app class
-class TestApp:
+class TestApp(object):
 
 	def __init__ (self):
 		self.win = gtk.Window()
diff -Nur screenlets-0.1.2/src/share/screenlets/ClearRss/feedparser.py screenlets-0.1.2-new/src/share/screenlets/ClearRss/feedparser.py
--- screenlets-0.1.2/src/share/screenlets/ClearRss/feedparser.py	2008-06-04 14:31:26.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets/ClearRss/feedparser.py	2009-04-10 16:56:33.000000000 +0200
@@ -284,7 +284,7 @@
     uri = _urifixer.sub(r'\1\3', uri)
     return urlparse.urljoin(base, uri)
 
-class _FeedParserMixin:
+class _FeedParserMixin(object):
     namespaces = {'': '',
                   'http://backend.userland.com/rss': '',
                   'http://blogs.law.harvard.edu/tech/rss': '',
diff -Nur screenlets-0.1.2/src/share/screenlets/CopyStack/CopyStackScreenlet.py screenlets-0.1.2-new/src/share/screenlets/CopyStack/CopyStackScreenlet.py
--- screenlets-0.1.2/src/share/screenlets/CopyStack/CopyStackScreenlet.py	2008-06-04 14:31:26.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets/CopyStack/CopyStackScreenlet.py	2009-04-10 16:55:11.000000000 +0200
@@ -383,7 +383,7 @@
 
 
 # TODO: put in screenlets.ui
-class Tooltip:
+class Tooltip(object):
 	"""A window that displays a text and serves as Tooltip (very basic yet)."""
 	
 	# internals
@@ -490,7 +490,7 @@
 		ctx.stroke()
 
 
-class Element:
+class Element(object):
 	"""Abstract superclass for an element on the stack."""
 	
 	def __init__ (self, desc, data):
diff -Nur screenlets-0.1.2/src/share/screenlets/FeedReader/feedparser.py screenlets-0.1.2-new/src/share/screenlets/FeedReader/feedparser.py
--- screenlets-0.1.2/src/share/screenlets/FeedReader/feedparser.py	2008-06-04 14:31:26.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets/FeedReader/feedparser.py	2009-04-10 17:03:20.000000000 +0200
@@ -284,7 +284,7 @@
     uri = _urifixer.sub(r'\1\3', uri)
     return urlparse.urljoin(base, uri)
 
-class _FeedParserMixin:
+class _FeedParserMixin(object):
     namespaces = {'': '',
                   'http://backend.userland.com/rss': '',
                   'http://blogs.law.harvard.edu/tech/rss': '',
diff -Nur screenlets-0.1.2/src/share/screenlets/MainMenu/menus.py screenlets-0.1.2-new/src/share/screenlets/MainMenu/menus.py
--- screenlets-0.1.2/src/share/screenlets/MainMenu/menus.py	2008-06-04 14:31:27.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets/MainMenu/menus.py	2009-04-10 17:01:37.000000000 +0200
@@ -7,7 +7,7 @@
 from gtk import gdk
 import string
 import gmenu
-class MenuDateStore:
+class MenuDateStore(object):
     MENUCORE = gmenu.lookup_tree('applications.menu')
     MENUROOT = MENUCORE.get_root_directory()
     SYSTEMMENUCORE = gmenu.lookup_tree('settings.menu')
diff -Nur screenlets-0.1.2/src/share/screenlets/NowPlaying/UI/Theme.py screenlets-0.1.2-new/src/share/screenlets/NowPlaying/UI/Theme.py
--- screenlets-0.1.2/src/share/screenlets/NowPlaying/UI/Theme.py	2008-06-04 14:31:27.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets/NowPlaying/UI/Theme.py	2009-04-10 17:00:34.000000000 +0200
@@ -9,7 +9,7 @@
 # The Main Skin Class
 # It parses the xml and creates various UI items
 
-class Skin:
+class Skin(object):
 	items = []
 	width = 500
 	height = 200
@@ -110,7 +110,7 @@
 
 
 # A Generic UI Item
-class GenericItem:
+class GenericItem(object):
 	type = ""
 	x = 0
 	y = 0
@@ -407,7 +407,7 @@
 			ctx.paint()
 
 
-class PlayerControls:
+class PlayerControls(object):
 	type = "playercontrols"
 
 	box = False
diff -Nur screenlets-0.1.2/src/share/screenlets-manager/screenlets-manager.py screenlets-0.1.2-new/src/share/screenlets-manager/screenlets-manager.py
--- screenlets-0.1.2/src/share/screenlets-manager/screenlets-manager.py	2008-06-04 14:31:27.000000000 +0200
+++ screenlets-0.1.2-new/src/share/screenlets-manager/screenlets-manager.py	2009-04-10 16:53:40.000000000 +0200
@@ -78,7 +78,7 @@
 # /TEST
 
 
-class ScreenletsManager:
+class ScreenletsManager(object):
 	"""The main application class."""
 	
 	daemon_iface = None

Reply via email to