Sindbad~EG File Manager
# Display (X.org) related problems
# Author: Bryce Harrington <bryce@canonical.com>
# (C) 2009 Canonical Ltd.
# License: GPL v2 or later.
from glob import glob
import subprocess
import apport.hookutils
import time
import os
description = 'Display (X.org)'
def problem_boot_fail(report, ui):
prompt = "What type of boot failure do you experience?"
problems = [
{'desc':"Go back", 'package':None},
{'desc':"Black or blank screen",
'tags':'blank',
'info':"See http://wiki.ubuntu.com/X/Troubleshooting/BlankScreen for help working around and debugging blank screen on boot issues.",
'package':report['VideoDriver']},
{'desc':"White screen after logging in",
'info':"White screens generally indicate a failure initializing Compiz or kwin; thus, as a workaround try disabiling Desktop Effects",
'package':'mesa'},
{'desc':"Solid brown or other color",
'tags':'freeze',
'package':report['VideoDriver']},
{'desc':"Garbage or corruption on screen",
'tags':'freeze corruption',
'info':"If possible, please also take a photo of the screen and attach to the bug report. Sometimes the style of corruption can give clues as to where in memory the error has occurred.",
'package':report['VideoDriver']},
]
choice = []
for item in problems:
choices.append(item['desc'])
choice = ui.choice(prompt, choices)[0]
if choice is None:
raise StopIteration
return problem[choice]['package']
def run(report, ui):
prompt = 'What display problem do you observe?'
choice = ui.choice(prompt,
['I don\'t know',
'Freezes or hangs during boot or usage',
'Crashes or restarts back to login screen',
'Resolution is incorrect',
'Shows screen corruption',
'Performance is worse than expected',
'Fonts are the wrong size',
'Other display-related problem',
])
if choice is None or choice == [0]:
raise StopIteration
choice = choice[0]
report.setdefault('Tags', '')
# Tag kubuntu bugs
if subprocess.call(['pgrep', '-u', str(os.getuid()), '-x', 'ksmserver']) == 0:
report['Tags'] += ' kubuntu'
# Process problems
if choice == 1:
ui.information('To debug X freezes, please see https://wiki.ubuntu.com/X/Troubleshooting/Freeze')
report['Tags'] += ' freeze'
report['Title'] = 'Xorg freeze'
return 'xorg'
if choice == 2:
ui.information('Please reproduce the crash and collect a backtrace. See https://wiki.ubuntu.com/X/Backtracing for directions.')
report['Tags'] += ' crash'
report['Title'] = 'Xorg crash'
# TODO: Look in /var/crash and let user select a crash file, and then parse it
return 'xorg'
if choice == 3:
report['Tags'] += ' resolution'
return 'xorg'
if choice == 4:
ui.information('Please take a photo of the screen showing the corruption and attach to the bug report')
report['Tags'] += ' corruption'
# TODO: Let user upload the file
return 'xorg'
if choice == 5:
report['Tags'] += ' performance'
return 'xorg'
if choice == 6:
report['Tags'] += ' fonts'
return 'xorg'
if choice == 7:
return 'xorg'
ui.information('Please run "ubuntu-bug <packagename>" to report this bug')
return None
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists