/
usr
/
lib
/
python3
/
dist-packages
/
DistUpgrade
/
/usr/lib/python3/dist-packages/DistUpgrade
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
apt_btrfs_snapshot.py
9873
0644
edit
dl
rm
apt_clone.py
33593
0644
edit
dl
rm
dist-upgrade.py
129
0644
edit
dl
rm
distro.py
23705
0644
edit
dl
rm
DistUpgradeApport.py
5064
0644
edit
dl
rm
DistUpgradeAptCdrom.py
12690
0644
edit
dl
rm
DistUpgradeCache.py
54413
0644
edit
dl
rm
DistUpgradeConfigParser.py
3837
0644
edit
dl
rm
DistUpgradeController.py
103835
0644
edit
dl
rm
DistUpgradeFetcher.py
6009
0644
edit
dl
rm
DistUpgradeFetcherCore.py
11472
0644
edit
dl
rm
DistUpgradeFetcherKDE.py
9950
0644
edit
dl
rm
DistUpgradeFetcherSelf.py
2064
0644
edit
dl
rm
DistUpgradeGettext.py
3043
0644
edit
dl
rm
DistUpgradeMain.py
9317
0644
edit
dl
rm
DistUpgradePatcher.py
4018
0644
edit
dl
rm
DistUpgradeQuirks.py
46761
0644
edit
dl
rm
DistUpgradeVersion.py
21
0644
edit
dl
rm
DistUpgradeView.py
16823
0644
edit
dl
rm
DistUpgradeViewGtk3.py
34667
0644
edit
dl
rm
DistUpgradeViewKDE.py
43122
0644
edit
dl
rm
DistUpgradeViewNonInteractive.py
13862
0644
edit
dl
rm
DistUpgradeViewText.py
12829
0644
edit
dl
rm
GtkProgress.py
4020
0644
edit
dl
rm
MetaRelease.py
17468
0644
edit
dl
rm
QUrlOpener.py
3321
0644
edit
dl
rm
ReleaseNotesViewer.py
7658
0644
edit
dl
rm
ReleaseNotesViewerWebkit.py
2983
0644
edit
dl
rm
SimpleGtk3builderApp.py
2056
0644
edit
dl
rm
SimpleGtkbuilderApp.py
2037
0644
edit
dl
rm
telemetry.py
3478
0644
edit
dl
rm
utils.py
18349
0644
edit
dl
rm
xorg_fix_proprietary.py
4083
0644
edit
dl
rm
__init__.py
0
0644
edit
dl
rm
Edit:
/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeApport.py
(5064B)
import os import logging import subprocess import sys import gettext import errno APPORT_WHITELIST = { "apt.log": "Aptlog", "apt-term.log": "Apttermlog", "apt-clone_system_state.tar.gz": "Aptclonesystemstate.tar.gz", "history.log": "Historylog", "lspci.txt": "Lspcitxt", "main.log": "Mainlog", "term.log": "Termlog", "screenlog.0": "Screenlog", "xorg_fixup.log": "Xorgfixup", } def _apport_append_logfiles(report, logdir="/var/log/dist-upgrade/"): dirname = 'VarLogDistupgrade' for fname in APPORT_WHITELIST: f = os.path.join(logdir, fname) if not os.path.isfile(f) or os.path.getsize(f) == 0: continue ident = dirname + APPORT_WHITELIST[fname] if os.access(f, os.R_OK): report[ident] = (open(f), ) elif os.path.exists(f): try: from apport.hookutils import root_command_output report[ident] = root_command_output( ["cat", '%s' % f], decode_utf8=False) except ImportError: logging.error("failed to import apport python module, " "can't include: %s" % ident) def apport_crash(type, value, tb): logging.debug("running apport_crash()") if "RELEASE_UPRADER_NO_APPORT" in os.environ: logging.debug("RELEASE_UPRADER_NO_APPORT env set") return False try: # we don't depend on python3-apport because of servers from apport_python_hook import apport_excepthook from apport.report import Report except ImportError as e: logging.error("failed to import apport python module, can't " "generate crash: %s" % e) return False from .DistUpgradeVersion import VERSION # we pretend we are do-release-upgrade sys.argv[0] = "/usr/bin/do-release-upgrade" apport_excepthook(type, value, tb) # now add the files in /var/log/dist-upgrade/* if os.path.exists('/var/crash/_usr_bin_do-release-upgrade.0.crash'): report = Report() report.setdefault('Tags', 'dist-upgrade') release = 'Ubuntu %s' % VERSION[0:5] report.setdefault('DistroRelease', release) # use the version of the release-upgrader tarball, not the installed # package report.setdefault('Package', 'ubuntu-release-upgrader-core 1:%s' % VERSION) _apport_append_logfiles(report) report.add_to_existing( '/var/crash/_usr_bin_do-release-upgrade.0.crash') return True def apport_pkgfailure(pkg, errormsg): logging.debug("running apport_pkgfailure() %s: %s", pkg, errormsg) if "RELEASE_UPRADER_NO_APPORT" in os.environ: logging.debug("RELEASE_UPRADER_NO_APPORT env set") return False LOGDIR = "/var/log/dist-upgrade/" s = "/usr/share/apport/package_hook" # we do not report followup errors from earlier failures # dpkg messages will not be translated if DPKG_UNTRANSLATED_MESSAGES is # set which it is by default so check for the English message first if "dependency problems - leaving unconfigured" in errormsg: logging.debug("dpkg error because of dependency problems, not " "reporting against %s " % pkg) return False needle = gettext.dgettext( 'dpkg', "dependency problems - leaving unconfigured") if needle in errormsg: logging.debug("dpkg error because of dependency problems, not " "reporting against %s " % pkg) return False # we do not run apport_pkgfailure for full disk errors 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): args = [s, "-p", pkg] args.extend(["--tags", "dist-upgrade"]) for fname in APPORT_WHITELIST: args.extend(["-l", os.path.join(LOGDIR, fname)]) try: p = subprocess.Popen(args, stdin=subprocess.PIPE, universal_newlines=True) p.stdin.write(errormsg) p.stdin.close() #p.wait() except Exception as e: 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: # update-notifier will notify about the crash return True elif os.path.exists("/usr/bin/apport-cli"): try: return (subprocess.call("/usr/bin/apport-cli") == 0) except Exception: logging.exception("Unable to launch '/usr/bin/apport-cli'") return False logging.debug("can't find apport") return False if __name__ == "__main__": apport_crash(None, None, None)
Save
cmd:
run