/
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/QUrlOpener.py
(3321B)
# QUrlOpener.py # -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*- # # Copyright (c) 2014-2018 Harald Sitter <apachelogger@kubuntu.org> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. try: # 14.04 has a broken pyqt5, so don't even try to import it and require # pyqt4. # In 14.04 various signals in pyqt5 can not be connected because it thinks # the signal does not exist or has an incompatible signature. Since this # potentially renders the GUI entirely broken and pyqt5 was not actively # used back then it is fair to simply require qt4 on trusty systems. from .utils import get_dist if get_dist() == 'trusty': raise ImportError from PyQt5.QtCore import QObject, QCoreApplication, pyqtSlot, QUrl from PyQt5.QtGui import QDesktopServices except ImportError: from PyQt4.QtCore import QObject, QCoreApplication, pyqtSlot, QUrl from PyQt4.QtGui import QDesktopServices import os import subprocess def singleton(class_): instances = {} def instance(*args, **kwargs): if class_ not in instances: instances[class_] = class_(*args, **kwargs) return instances[class_] return instance @singleton class QUrlOpener(QObject): def __init__(self): QObject.__init__(self) self.setParent(QCoreApplication.instance()) def setupUrlHandles(self): # Make sure we don't run a root browser. # NOTE: Qt native API can set an openUrl handler from a QObject # function, pyqt in theory also allows an arbitrary callable. Latter # has been observed to be non-functional so rely on the native handling QDesktopServices.setUrlHandler('http', self, 'openUrl') QDesktopServices.setUrlHandler('https', self, 'openUrl') # NOTE: largely code copy from ReleaseNotesViewer which imports GTK. @pyqtSlot(QUrl) def openUrl(self, url): url = url.toString() """Open the specified URL in a browser""" # Find an appropiate browser if os.path.exists("/usr/bin/xdg-open"): command = ["xdg-open", url] elif os.path.exists("/usr/bin/kde-open"): command = ["kde-open", url] elif os.path.exists("/usr/bin/exo-open"): command = ["exo-open", url] elif os.path.exists('/usr/bin/gnome-open'): command = ['gnome-open', url] else: command = ['x-www-browser', url] # Avoid to run the browser as user root if os.getuid() == 0 and 'SUDO_USER' in os.environ: command = ['sudo', '--set-home', '-u', os.environ['SUDO_USER']] + command subprocess.Popen(command)
Save
cmd:
run