From 514c27d681a8b642449f7ad566dfff02db5b64c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Wed, 22 Feb 2017 12:20:08 +0100 Subject: [PATCH] dom0-updates: update qubes-receive-updates to python3 --- dom0-updates/qubes-receive-updates | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dom0-updates/qubes-receive-updates b/dom0-updates/qubes-receive-updates index 6b87b85..6bab864 100755 --- a/dom0-updates/qubes-receive-updates +++ b/dom0-updates/qubes-receive-updates @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/python3 # # The Qubes OS Project, http://www.qubes-os.org # @@ -50,7 +50,7 @@ gpg_ok_regex = re.compile(r": [a-z0-9() ]* (pgp|gpg) [a-z0-9 ]*OK$") def dom0updates_fatal(pkg, msg): global updates_error_file_handle - print >> sys.stderr, msg + print(msg, file=sys.stderr) if updates_error_file_handle is None: updates_error_file_handle = open(updates_error_file, "a") updates_error_file_handle.write(msg + "\n") @@ -61,7 +61,8 @@ def handle_dom0updates(updatevm): source=os.getenv("QREXEC_REMOTE_DOMAIN") if source != updatevm.name: - print >> sys.stderr, 'Domain ' + str(source) + ' not allowed to send dom0 updates' + print('Domain ' + str(source) + ' not allowed to send dom0 updates', + file=sys.stderr) exit(1) # Clean old packages if os.path.exists(updates_rpm_dir): @@ -72,10 +73,10 @@ def handle_dom0updates(updatevm): os.remove(updates_error_file) os.environ['LC_ALL'] = 'C' qubes_gid = grp.getgrnam('qubes').gr_gid - old_umask = os.umask(002) + old_umask = os.umask(0o002) os.mkdir(updates_rpm_dir) os.chown(updates_rpm_dir, -1, qubes_gid) - os.chmod(updates_rpm_dir, 0775) + os.chmod(updates_rpm_dir, 0o0775) subprocess.check_call(["/usr/libexec/qubes/qfile-dom0-unpacker", str(os.getuid()), updates_rpm_dir]) # Verify received files for untrusted_f in os.listdir(updates_rpm_dir): @@ -92,7 +93,7 @@ def handle_dom0updates(updatevm): dom0updates_fatal(full_path, 'Domain ' + source + ' sent not regular file') p = subprocess.Popen (["/bin/rpm", "-K", full_path], stdout=subprocess.PIPE) - output = p.communicate()[0] + output = p.communicate()[0].decode('ascii') if p.returncode != 0: dom0updates_fatal(full_path, 'Error while verifing %s signature: %s' % (f, output)) if not gpg_ok_regex.search(output.strip()): @@ -106,7 +107,7 @@ def handle_dom0updates(updatevm): createrepo_cmd += ["-q", updates_dir] subprocess.check_call(createrepo_cmd) os.chown(updates_repodata_dir, -1, qubes_gid) - os.chmod(updates_repodata_dir, 0775) + os.chmod(updates_repodata_dir, 0o0775) # Clean old cache subprocess.call(["sudo", "/usr/bin/yum", "-q", "clean", "all"], stdout=sys.stderr) # This will fail because of "smart" detection of no-network, but it will invalidate the cache