%PDF- %PDF-
Direktori : /usr/share/apport/package-hooks/ |
Current File : //usr/share/apport/package-hooks/source_update-manager.py |
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*- """apport package hook for update-manager (c) 2011 Canonical Ltd. Author: Brian Murray <brian@ubuntu.com> """ import os import re import subprocess from apport.hookutils import ( attach_gsettings_package, attach_root_command_outputs, attach_file_if_exists, command_available, recent_syslog, ) def run_hwe_command(option): command = ["hwe-support-status", option] sp = subprocess.Popen( command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=None ) out = sp.communicate()[0] if sp.returncode == 0: res = out.strip() # exit code is 10 on unsupported HWE elif sp.returncode == 10: res = out.strip() else: res = ( b"Error: command " + str(command).encode() + b" failed with exit code " + str(sp.returncode).encode() + b": " + out ) return res def add_info(report, ui): problem_type = report.get("ProblemType", None) if problem_type == "Bug": response = ui.yesno( "Is the issue you are reporting one you encountered " "when upgrading Ubuntu from one release to another?" ) else: response = None if response: os.execlp("apport-bug", "apport-bug", "ubuntu-release-upgrader") else: package = report.get("Package", None) if package: package = package.split(" ")[0] if package == "update-manager": attach_gsettings_package(report, "update-manager") attach_file_if_exists( report, "/var/log/apt/history.log", "DpkgHistoryLog.txt" ) attach_file_if_exists( report, "/var/log/apt/term.log", "DpkgTerminalLog.txt" ) attach_root_command_outputs( report, { "CurrentDmesg.txt": "dmesg | " "comm -13 --nocheck-order /var/log/dmesg -" }, ) if command_available("hwe-support-status"): # not using apport's command_output because it doesn't expect a # return code of 10 unsupported = run_hwe_command("--show-all-unsupported") if unsupported: report["HWEunsupported"] = unsupported report["HWEreplacements"] = run_hwe_command( "--show-replacements" ) report["Aptdaemon"] = recent_syslog(re.compile("AptDaemon"))