404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.147.78.134: ~ $
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)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
DistUpgradeApport.py File 4.95 KB 0644
DistUpgradeAptCdrom.py File 12.39 KB 0644
DistUpgradeCache.py File 52.55 KB 0644
DistUpgradeConfigParser.py File 3.75 KB 0644
DistUpgradeController.py File 100.96 KB 0644
DistUpgradeFetcher.py File 5.83 KB 0644
DistUpgradeFetcherCore.py File 11.2 KB 0644
DistUpgradeFetcherKDE.py File 9.72 KB 0644
DistUpgradeFetcherSelf.py File 2.02 KB 0644
DistUpgradeGettext.py File 2.97 KB 0644
DistUpgradeMain.py File 9.1 KB 0644
DistUpgradePatcher.py File 3.92 KB 0644
DistUpgradeQuirks.py File 47.38 KB 0644
DistUpgradeVersion.py File 21 B 0644
DistUpgradeView.py File 16.2 KB 0644
DistUpgradeViewGtk3.py File 32.7 KB 0644
DistUpgradeViewKDE.py File 39.87 KB 0644
DistUpgradeViewNonInteractive.py File 13.45 KB 0644
DistUpgradeViewText.py File 12.33 KB 0644
GtkProgress.py File 3.93 KB 0644
MetaRelease.py File 16.65 KB 0644
QUrlOpener.py File 3.24 KB 0644
ReleaseNotesViewer.py File 7.48 KB 0644
ReleaseNotesViewerWebkit.py File 2.86 KB 0644
SimpleGtk3builderApp.py File 2.01 KB 0644
SimpleGtkbuilderApp.py File 1.99 KB 0644
__init__.py File 0 B 0644
apt_btrfs_snapshot.py File 9.64 KB 0644
apt_clone.py File 32.81 KB 0644
dist-upgrade.py File 126 B 0644
distinfo.py File 11.3 KB 0644
distro.py File 23.16 KB 0644
sourceslist.py File 18.36 KB 0644
telemetry.py File 3.4 KB 0644
utils.py File 17.95 KB 0644
xorg_fix_proprietary.py File 3.93 KB 0644