/
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
9915
0644
edit
dl
rm
apt_clone.py
33530
0644
edit
dl
rm
dist-upgrade.py
129
0644
edit
dl
rm
distro.py
23763
0644
edit
dl
rm
DistUpgradeApport.py
5058
0644
edit
dl
rm
DistUpgradeCache.py
54225
0644
edit
dl
rm
DistUpgradeConfigParser.py
3837
0644
edit
dl
rm
DistUpgradeController.py
101282
0644
edit
dl
rm
DistUpgradeFetcher.py
6009
0644
edit
dl
rm
DistUpgradeFetcherCore.py
12745
0644
edit
dl
rm
DistUpgradeFetcherKDE.py
9950
0644
edit
dl
rm
DistUpgradeFetcherSelf.py
1955
0644
edit
dl
rm
DistUpgradeGettext.py
3043
0644
edit
dl
rm
DistUpgradeMain.py
9359
0644
edit
dl
rm
DistUpgradePatcher.py
4018
0644
edit
dl
rm
DistUpgradeQuirks.py
70360
0644
edit
dl
rm
DistUpgradeVersion.py
21
0644
edit
dl
rm
DistUpgradeView.py
17344
0644
edit
dl
rm
DistUpgradeViewGtk3.py
34670
0644
edit
dl
rm
DistUpgradeViewKDE.py
41846
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
17543
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
18541
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/xorg_fix_proprietary.py
(4083B)
#!/usr/bin/python3 # # this script will examine /etc/xorg/xorg.conf and # transition from broken proprietary drivers to the free ones import sys import os import logging import time import shutil # main xorg.conf XORG_CONF = "/etc/X11/xorg.conf" def replace_driver_from_xorg(old_driver, new_driver, xorg=XORG_CONF): """ this removes old_driver driver from the xorg.conf and substitutes it with the new_driver """ if not os.path.exists(xorg): logging.warning("file %s not found" % xorg) return content = [] with open(xorg) as xorg_file: for line in xorg_file: # remove comments s = line.split("#")[0].strip() # check for fglrx driver entry if (s.lower().startswith("driver") and s.endswith('"%s"' % old_driver)): logging.debug("line '%s' found" % line.rstrip()) line = '\tDriver\t"%s"\n' % new_driver logging.debug("replacing with '%s'" % line.rstrip()) content.append(line) # write out the new version with open(xorg) as xorg_file: if xorg_file.readlines() != content: logging.info("saving new %s (%s -> %s)" % (xorg, old_driver, new_driver)) with open(xorg + ".xorg_fix", "w") as xorg_fix_file: xorg_fix_file.write("".join(content)) os.rename(xorg + ".xorg_fix", xorg) def comment_out_driver_from_xorg(old_driver, xorg=XORG_CONF): """ this comments out a driver from xorg.conf """ if not os.path.exists(xorg): logging.warning("file %s not found" % xorg) return content = [] with open(xorg) as xorg_file: for line in xorg_file: # remove comments s = line.split("#")[0].strip() # check for old_driver driver entry if (s.lower().startswith("driver") and s.endswith('"%s"' % old_driver)): logging.debug("line '%s' found" % line.rstrip()) line = '#%s' % line logging.debug("replacing with '%s'" % line.rstrip()) content.append(line) # write out the new version with open(xorg) as xorg_file: if xorg_file.readlines() != content: logging.info("saving new %s (commenting %s)" % (xorg, old_driver)) with open(xorg + ".xorg_fix", "w") as xorg_fix_file: xorg_fix_file.write("".join(content)) os.rename(xorg + ".xorg_fix", xorg) if __name__ == "__main__": if not os.getuid() == 0: print("Need to run as root") sys.exit(1) # we pretend to be do-release-upgrade so that apport picks up if we crash sys.argv[0] = "/usr/bin/do-release-upgrade" # setup logging logging.basicConfig(level=logging.DEBUG, filename="/var/log/dist-upgrade/xorg_fixup.log", filemode='w') logging.info("%s running" % sys.argv[0]) if not os.path.exists(XORG_CONF): logging.info("No xorg.conf, exiting") sys.exit(0) # remove empty xorg.conf to help xorg and its auto probing logic # (LP: #439551) if os.path.getsize(XORG_CONF) == 0: logging.info("xorg.conf is zero size, removing") os.remove(XORG_CONF) sys.exit(0) # make a backup of the xorg.conf backup = XORG_CONF + ".dist-upgrade-" + time.strftime("%Y%m%d%H%M") logging.debug("creating backup '%s'" % backup) shutil.copy(XORG_CONF, backup) nvidia = False try: mods = [line.split()[0] for line in open('/proc/modules')] except IOError: logging.info("Can't read /proc/modules") sys.exit(0) for m in mods: if m == 'nvidia': nvidia = True break if not nvidia: with open(XORG_CONF) as xorg_conf_file: if "nvidia" in xorg_conf_file.read(): logging.info("Removing nvidia from %s" % XORG_CONF) comment_out_driver_from_xorg("nvidia")
Save
cmd:
run