__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import os
import logging
import subprocess
import sys
import gettext
import errno
APPORT_ALLOWLIST = {
"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_ALLOWLIST:
f = os.path.join(logdir, fname)
if not os.path.isfile(f) or os.path.getsize(f) == 0:
continue
ident = dirname + APPORT_ALLOWLIST[fname]
if os.access(f, os.R_OK):
report[ident] = (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_ALLOWLIST:
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)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| DistUpgradeApport.py | File | 4.94 KB | 0644 |
|
| DistUpgradeCache.py | File | 53.81 KB | 0644 |
|
| DistUpgradeConfigParser.py | File | 3.76 KB | 0644 |
|
| DistUpgradeController.py | File | 125.34 KB | 0644 |
|
| DistUpgradeFetcher.py | File | 5.87 KB | 0644 |
|
| DistUpgradeFetcherCore.py | File | 12.45 KB | 0644 |
|
| DistUpgradeFetcherKDE.py | File | 9.74 KB | 0644 |
|
| DistUpgradeFetcherSelf.py | File | 1.91 KB | 0644 |
|
| DistUpgradeGettext.py | File | 2.98 KB | 0644 |
|
| DistUpgradeMain.py | File | 9.14 KB | 0644 |
|
| DistUpgradePatcher.py | File | 3.92 KB | 0644 |
|
| DistUpgradeQuirks.py | File | 87.91 KB | 0644 |
|
| DistUpgradeVersion.py | File | 21 B | 0644 |
|
| DistUpgradeView.py | File | 16.94 KB | 0644 |
|
| DistUpgradeViewGtk3.py | File | 34.16 KB | 0644 |
|
| DistUpgradeViewKDE.py | File | 41.19 KB | 0644 |
|
| DistUpgradeViewNonInteractive.py | File | 13.54 KB | 0644 |
|
| DistUpgradeViewText.py | File | 12.53 KB | 0644 |
|
| GtkProgress.py | File | 3.93 KB | 0644 |
|
| MetaRelease.py | File | 16.99 KB | 0644 |
|
| QUrlOpener.py | File | 3.24 KB | 0644 |
|
| ReleaseNotesViewer.py | File | 7.48 KB | 0644 |
|
| ReleaseNotesViewerWebkit.py | File | 2.91 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.68 KB | 0644 |
|
| apt_clone.py | File | 33.75 KB | 0644 |
|
| dist-upgrade.py | File | 129 B | 0644 |
|
| distro.py | File | 23.8 KB | 0644 |
|
| telemetry.py | File | 3.4 KB | 0644 |
|
| utils.py | File | 17.37 KB | 0644 |
|
| xorg_fix_proprietary.py | File | 3.99 KB | 0644 |
|