commit 14edabbea8736bc0421d4bfeeda6bcca7501669c Author: Marcin Krol <h...@tld-linux.org> Date: Sun May 2 13:52:06 2021 +0200
- more python 3.x fixes, dropped python 2.x support PLD_Builder/acl.py | 5 +---- PLD_Builder/bqueue.py | 29 ++++++++++++++++------------- PLD_Builder/chroot.py | 7 ++++--- PLD_Builder/config.py | 5 +---- PLD_Builder/gpg.py | 18 +++++++----------- PLD_Builder/install.py | 6 +----- PLD_Builder/mailer.py | 6 +----- PLD_Builder/notify.py | 8 ++------ PLD_Builder/pipeutil.py | 5 +---- PLD_Builder/request.py | 12 ++++++------ PLD_Builder/request_fetcher.py | 6 +----- PLD_Builder/request_handler.py | 5 ----- PLD_Builder/rpm_builder.py | 4 ++-- PLD_Builder/srpm_builder.py | 4 ---- PLD_Builder/util.py | 17 +++++++++++++++++ PLD_Builder/wrap.py | 5 +---- 16 files changed, 61 insertions(+), 81 deletions(-) --- diff --git a/PLD_Builder/acl.py b/PLD_Builder/acl.py index 0d45634..88ed536 100644 --- a/PLD_Builder/acl.py +++ b/PLD_Builder/acl.py @@ -1,10 +1,7 @@ # vi: encoding=utf-8 ts=8 sts=4 sw=4 et import sys -if sys.version_info[0] == 2: - import ConfigParser -else: - import configparser as ConfigParser +import configparser as ConfigParser import string import fnmatch import os diff --git a/PLD_Builder/bqueue.py b/PLD_Builder/bqueue.py index aaa249c..4699fd7 100644 --- a/PLD_Builder/bqueue.py +++ b/PLD_Builder/bqueue.py @@ -4,14 +4,12 @@ import re import gzip import time import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO +from io import StringIO import os import fcntl import string import tempfile +import shutil # PLD_Builder: import gpg @@ -131,21 +129,26 @@ class B_Queue: sio = StringIO() self._write_to(sio) sio.seek(0) - sio.write(gpg.sign(sio.read())) + sio.write(util.to_str(gpg.sign(sio.read()))) sio.seek(0) (fdno, tmpname) = tempfile.mkstemp(dir=os.path.dirname(name)) f = os.fdopen(fdno, "w") - if re.search(r"\.gz$", name): - fgz = gzip.GzipFile(filename=name, mode="w", compresslevel=6, fileobj=f) - util.sendfile(sio, fgz) - fgz.close() - else: - util.sendfile(sio, f) + util.sendfile(sio, f) f.flush() os.fsync(f.fileno()) f.close() - os.chmod(tmpname, 0o0644) - os.rename(tmpname, name) + if re.search(r"\.gz$", name): + f_in = open(tmpname, 'rb') + f_out = gzip.open(name, 'wb') + shutil.copyfileobj(f_in, f_out) + f_in.close(); + f_out.flush(); + os.fsync(f_out.fileno()) + f_out.close(); + os.remove(tmpname) + else: + os.rename(tmpname, name) + os.chmod(name, 0o0644) def add(self, req): self.requests.append(req) diff --git a/PLD_Builder/chroot.py b/PLD_Builder/chroot.py index f91e1c6..8acd58d 100644 --- a/PLD_Builder/chroot.py +++ b/PLD_Builder/chroot.py @@ -3,6 +3,7 @@ import os import re import random +import util try: from hashlib import md5 as md5 @@ -49,7 +50,7 @@ def run(cmd, user = "builder", logfile = None, logstdout = None): def cp(file, outfile, user="builder", rm=False): m = md5() - m.update(str(random.sample(range(100000), 500)).encode('utf-8')) + m.update(util.to_bytes(str(random.sample(range(100000), 500)))) digest = m.hexdigest() marker_start = "--- FILE BEGIN DIGEST %s ---" % digest @@ -70,11 +71,11 @@ def cp(file, outfile, user="builder", rm=False): me = l.find(marker_end) if me != -1: l = l[:me] - f.write(l) + f.write(util.to_bytes(l)) marker = False break if marker: - f.write(l) + f.write(util.to_bytes(l)) rp = p.close() rf = f.close() if rp == None: diff --git a/PLD_Builder/config.py b/PLD_Builder/config.py index a325762..d7bd958 100644 --- a/PLD_Builder/config.py +++ b/PLD_Builder/config.py @@ -1,10 +1,7 @@ # vi: encoding=utf-8 ts=8 sts=4 sw=4 et import sys -if sys.version_info[0] == 2: - import ConfigParser -else: - import configparser as ConfigParser +import configparser as ConfigParser import string import os import syslog diff --git a/PLD_Builder/gpg.py b/PLD_Builder/gpg.py index b820dcd..942cfb5 100644 --- a/PLD_Builder/gpg.py +++ b/PLD_Builder/gpg.py @@ -4,11 +4,7 @@ import log import subprocess import re import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO - +from io import StringIO import util import os import pipeutil @@ -27,7 +23,7 @@ def get_keys(buf): cmd = ['/usr/bin/gpg', '--batch', '--no-tty', '--decrypt'] gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) try: - d_stdout, d_stderr = gpg_run.communicate(buf.decode().encode('utf-8')) + d_stdout, d_stderr = gpg_run.communicate(util.to_bytes(buf)) except OSError as e: log.error("gnupg run, does gpg binary exist? : %s" % e) raise @@ -35,7 +31,7 @@ def get_keys(buf): rx = re.compile("^gpg:.*using\s[DR]SA\skey\s(?:ID\s)?(\w+)") keys = [] - for l in d_stderr.decode().split('\n'): + for l in util.to_str(d_stderr).split('\n'): m = rx.match(l) if m: keys.append(m.group(1)) @@ -59,14 +55,14 @@ def verify_sig(buf): cmd = ['/usr/bin/gpg', '--batch', '--no-tty', '--decrypt'] gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) try: - d_stdout, d_stderr = gpg_run.communicate(buf.decode().encode('utf-8')) + d_stdout, d_stderr = gpg_run.communicate(util.to_bytes(buf)) except OSError as e: log.error("gnupg run failed, does gpg binary exist? : %s" % e) raise rx = re.compile("^gpg: (Good signature from| aka) .*<([^>]+)>") emails = [] - for l in d_stderr.decode().split('\n'): + for l in util.to_str(d_stderr).split('\n'): m = rx.match(l) if m: emails.append(m.group(2)) @@ -85,12 +81,12 @@ def sign(buf): # TODO: check for gpg return code! gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) try: - d_stdout, d_stderr = gpg_run.communicate(buf.decode().encode('utf-8')) + d_stdout, d_stderr = gpg_run.communicate(util.to_bytes(buf)) except OSError as e: log.error("gnupg signing failed, does gpg binary exist? : %s" % e) raise if len(d_stderr): - log.error("gpg: %s" % d_stderr.decode()) + log.error("gpg: %s" % util.to_str(d_stderr)) return d_stdout diff --git a/PLD_Builder/install.py b/PLD_Builder/install.py index edb4ae9..3e11817 100644 --- a/PLD_Builder/install.py +++ b/PLD_Builder/install.py @@ -3,11 +3,7 @@ import re, os import string import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO - +from io import StringIO import chroot import util import log diff --git a/PLD_Builder/mailer.py b/PLD_Builder/mailer.py index b7d44ab..2cf324d 100644 --- a/PLD_Builder/mailer.py +++ b/PLD_Builder/mailer.py @@ -3,11 +3,7 @@ import time import os import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO - +from io import StringIO from config import config import util import log diff --git a/PLD_Builder/notify.py b/PLD_Builder/notify.py index e13c052..71b269c 100644 --- a/PLD_Builder/notify.py +++ b/PLD_Builder/notify.py @@ -1,11 +1,7 @@ # vi: encoding=utf-8 ts=8 sts=4 sw=4 et import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO - +from io import StringIO import mailer import gpg import util @@ -22,7 +18,7 @@ class Notifier: sio = StringIO() self.xml.write("</notification>\n") self.xml.seek(0) - sio.write(gpg.sign(self.xml.read())) + sio.write(util.to_str(gpg.sign(self.xml.read()))) self.xml = None sio.seek(0) notifyq.init(r) diff --git a/PLD_Builder/pipeutil.py b/PLD_Builder/pipeutil.py index a3e78c9..fb6434c 100644 --- a/PLD_Builder/pipeutil.py +++ b/PLD_Builder/pipeutil.py @@ -3,10 +3,7 @@ import select import os import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO +from io import StringIO def rw_pipe(buf_, infd, outfd): buf = StringIO() diff --git a/PLD_Builder/request.py b/PLD_Builder/request.py index 6c81575..71a422c 100644 --- a/PLD_Builder/request.py +++ b/PLD_Builder/request.py @@ -8,7 +8,7 @@ import xml.sax.saxutils import fnmatch import os import urllib -import cgi +import html import pytz import tempfile @@ -329,9 +329,9 @@ class Batch: desc = "SH: <pre>%s</pre> flags: [%s]" % (self.command, ' '.join(self.command_flags)) else: package_url = "http://git.pld-linux.org/gitweb.cgi?p=packages/%(package)s.git;f=%(spec)s;h=%(branch)s;a=shortlog" % { - 'spec': urllib.quote(self.spec), - 'branch': urllib.quote(self.branch), - 'package': urllib.quote(self.spec[:-5]), + 'spec': urllib.parse.quote(self.spec), + 'branch': urllib.parse.quote(self.branch), + 'package': urllib.parse.quote(self.spec[:-5]), } desc = "%(src_rpm)s (<a href=\"%(package_url)s\">%(spec)s -r %(branch)s</a>%(rpmopts)s)" % { 'src_rpm': self.src_rpm, @@ -370,7 +370,7 @@ class Batch: tree_name = '-'.join(bld[:-1]) tree_arch = '-'.join(bld[-1:]) link_pre = "<a href=\"%s/index.php?dist=%s&arch=%s&ok=%d&name=%s&id=%s&action=tail\">" \ - % (config.buildlogs, urllib.quote(tree_name), urllib.quote(tree_arch), is_ok, urllib.quote(bl_name), urllib.quote(rid)) + % (config.buildlogs, urllib.parse.quote(tree_name), urllib.parse.quote(tree_arch), is_ok, urllib.parse.quote(bl_name), urllib.parse.quote(rid)) link_post = "</a>" def ftime(s): @@ -389,7 +389,7 @@ class Batch: 'color' : c, 'builder' : b, 'status' : s, - 'tooltip' : cgi.escape(tooltip, True), + 'tooltip' : html.escape(tooltip, True), } + link_post) f.write("%s]</small></li>\n" % ' '.join(builders)) diff --git a/PLD_Builder/request_fetcher.py b/PLD_Builder/request_fetcher.py index fc9f49d..25b130f 100644 --- a/PLD_Builder/request_fetcher.py +++ b/PLD_Builder/request_fetcher.py @@ -6,12 +6,8 @@ import os import urllib import urllib2 import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO +from io import StringIO import gzip - import path import log import status diff --git a/PLD_Builder/request_handler.py b/PLD_Builder/request_handler.py index de48d9e..70a1866 100644 --- a/PLD_Builder/request_handler.py +++ b/PLD_Builder/request_handler.py @@ -5,12 +5,7 @@ import string import time import os import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO import fnmatch - import gpg import request import log diff --git a/PLD_Builder/rpm_builder.py b/PLD_Builder/rpm_builder.py index 0126161..1f1ed2c 100644 --- a/PLD_Builder/rpm_builder.py +++ b/PLD_Builder/rpm_builder.py @@ -85,7 +85,7 @@ def check_skip_build(r, b): return False def fetch_src(r, b): - src_url = config.control_url + "/srpms/" + r.id + "/" + urllib.quote(b.src_rpm) + src_url = config.control_url + "/srpms/" + r.id + "/" + urllib.parse.quote(b.src_rpm) b.log_line("fetching %s" % src_url) start = time.time() good = False @@ -126,7 +126,7 @@ def fetch_src(r, b): print("error.reason exception %s" % e) raise - o = chroot.popen("cat > %s" % b.src_rpm, mode = "w") + o = chroot.popen("cat > %s" % b.src_rpm, mode = "wb") try: bytes = util.sendfile(f, o) diff --git a/PLD_Builder/srpm_builder.py b/PLD_Builder/srpm_builder.py index bee5f98..562b0c5 100644 --- a/PLD_Builder/srpm_builder.py +++ b/PLD_Builder/srpm_builder.py @@ -5,10 +5,6 @@ import string import time import os import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO import re import shutil import atexit diff --git a/PLD_Builder/util.py b/PLD_Builder/util.py index 05cf076..1d485a1 100644 --- a/PLD_Builder/util.py +++ b/PLD_Builder/util.py @@ -5,6 +5,7 @@ import sys import os import log import string +import codecs def uuid_python(): return str(uuid_random()) @@ -95,3 +96,19 @@ def cmp_to_key(mycmp): def __ne__(self, other): return mycmp(self.obj, other.obj) != 0 return K + +def to_bytes(s): + if type(s) is bytes: + return s + elif type(s) is str or (sys.version_info[0] < 3 and type(s) is unicode): + return codecs.encode(s, 'utf-8') + else: + raise TypeError("Expected bytes or string, but got %s." % type(s)) + +def to_str(s): + if type(s) is bytes: + return codecs.decode(s, 'utf-8') + elif type(s) is str or (sys.version_info[0] < 3 and type(s) is unicode): + return s + else: + raise TypeError("Expected bytes or string, but got %s." % type(s)) diff --git a/PLD_Builder/wrap.py b/PLD_Builder/wrap.py index e343e16..11892ee 100644 --- a/PLD_Builder/wrap.py +++ b/PLD_Builder/wrap.py @@ -4,10 +4,7 @@ import sys import log import traceback import sys -if sys.version_info[0] == 2: - import StringIO -else: - from io import StringIO +from io import StringIO import os import time ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/projects/pld-builder.new.git/commitdiff/14edabbea8736bc0421d4bfeeda6bcca7501669c _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit