home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import os
- import os.path as os
- import logging
- import subprocess
- import sys
- import gettext
- import errno
-
- def apport_crash(type, value, tb):
- logging.debug('running apport_crash()')
-
- try:
- apport_excepthook = apport_excepthook
- import apport_python_hook
- Report = Report
- import apport.report
- except ImportError:
- e = None
- logging.error("failed to import apport python module, can't report bug: %s" % e)
- return False
-
- sys.argv[0] = '/usr/bin/update-manager'
- apport_excepthook(type, value, tb)
- if os.path.exists('/var/crash/_usr_bin_update-manager.0.crash'):
- report = Report()
- for f in os.listdir('/var/log/dist-upgrade/'):
- report[f.replace('.', '').replace('-', '')] = (open(os.path.join('/var/log/dist-upgrade', f)),)
-
- report.add_to_existing('/var/crash/_usr_bin_update-manager.0.crash')
-
- return True
-
-
- def apport_pkgfailure(pkg, errormsg):
- logging.debug('running apport_pkgfailure() %s: %s', pkg, errormsg)
- LOGDIR = '/var/log/dist-upgrade/'
- s = '/usr/share/apport/package_hook'
- if gettext.dgettext('dpkg', 'dependency problems - leaving unconfigured') in errormsg:
- return False
- if os.strerror(errno.ENOSPC) in errormsg:
- logging.debug('dpkg error because of full disk, not reporting against %s ' % pkg)
- return False
- if os.path.exists(s):
-
- try:
- p = subprocess.Popen([
- s,
- '-p',
- pkg,
- '-l',
- LOGDIR], stdin = subprocess.PIPE)
- p.stdin.write('ErrorMessage: %s\n' % errormsg)
- p.stdin.close()
- except Exception:
- os.strerror(errno.ENOSPC) in errormsg
- e = os.strerror(errno.ENOSPC) in errormsg
- gettext.dgettext('dpkg', 'dependency problems - leaving unconfigured') in errormsg
- logging.warning('Failed to run apport (%s)' % e)
- return False
-
- return True
- return False
-
-
- def run_apport():
- ''' run apport, check if we have a display '''
- if 'RELEASE_UPRADER_NO_APPORT' in os.environ:
- logging.debug('RELEASE_UPRADER_NO_APPORT env set')
- return False
- if 'DISPLAY' in os.environ:
- for p in [
- '/usr/share/apport/apport-gtk',
- '/usr/share/apport/apport-qt']:
- if os.path.exists(p):
- ret = subprocess.call(p)
- return ret == 0
-
- elif os.path.exists('/usr/bin/apport-cli'):
- return subprocess.call('/usr/bin/apport-cli') == 0
- 'RELEASE_UPRADER_NO_APPORT' in os.environ
- logging.debug("can't find apport")
- return False
-
- if __name__ == '__main__':
- apport_crash(None, None, None)
-
-