]> TLD Linux GIT Repositories - tld-builder.git/commitdiff
- fix byte/str for chroot.popen
authorMarcin Krol <hawk@tld-linux.org>
Mon, 3 May 2021 00:10:32 +0000 (02:10 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Mon, 3 May 2021 00:10:32 +0000 (02:10 +0200)
TLD_Builder/chroot.py
TLD_Builder/install.py
TLD_Builder/maintainer.py

index 7485e7213add7996c1d4c08f84e7ce0f216d9356..6e7976a9e7c6aa8d3124276e659b3d5eeb73b08a 100644 (file)
@@ -24,12 +24,12 @@ def command_sh(cmd):
     return "%s sudo chroot %s /bin/sh -c \"export LC_ALL=C; exec < /dev/null; %s\"" \
             % (config.sudo_chroot_wrapper, config.chroot, quote(cmd))
 
-def popen(cmd, user = "builder", mode = "r"):
+def popen(cmd, user = "builder", mode = "r", encoding = None):
     if mode == "r":
-        p = subprocess.Popen(command(cmd, user), shell=True, stdout=subprocess.PIPE, close_fds=True)
+        p = subprocess.Popen(command(cmd, user), shell=True, stdout=subprocess.PIPE, close_fds=True, encoding=encoding)
         f = p.stdout
     else:
-        p = subprocess.Popen(command(cmd, user), shell=True, stdin=subprocess.PIPE, close_fds=True)
+        p = subprocess.Popen(command(cmd, user), shell=True, stdin=subprocess.PIPE, close_fds=True, encoding=encoding)
         f = p.stdin
     return f
 
index 7242ce49e0ef617158a3131d1a498ce2ea3c7cd7..9cfb94fa30e3b86ce1c9f901e4447630168c34ff 100644 (file)
@@ -28,7 +28,7 @@ def close_killset(killset):
             del killset[p]
             errors += "cannot remove %s because it's crucial\n" % p
         else:
-            f = chroot.popen("poldek --noask --test --test --erase %s" % p, user = "root")
+            f = chroot.popen("poldek --noask --test --test --erase %s" % p, user = "root", encoding = "utf-8")
             crucial = 0
             e = []
             for l in f:
@@ -49,7 +49,7 @@ def close_killset(killset):
     return errors
 
 def upgrade_from_batch(r, b):
-    f = chroot.popen("rpm --test -F %s 2>&1" % ' '.join(b.files), user = "root")
+    f = chroot.popen("rpm --test -F %s 2>&1" % ' '.join(b.files), user = "root", encoding = "utf-8")
     killset = {}
     rx = re.compile(r' \(installed\) (?P<name>[^\s]+)-[^-]+-[^-]+$')
     for l in f:
@@ -100,7 +100,7 @@ def uninstall(conflicting, b):
     return True
 
 def is_rpmorg():
-    f = chroot.popen("rpm --version 2>&1")
+    f = chroot.popen("rpm --version 2>&1", encoding = "utf-8")
     v = re.compile(r'(RPM version|rpm \(RPM\)) (?P<major>\d)\.(?P<minor>\d+)(\.\d+)?')
     for l in f:
         m = v.search(l)
@@ -125,7 +125,7 @@ def uninstall_self_conflict(b):
         'rpmdefs' : b.rpmbuild_opts(),
         'topdir' : b.get_topdir(),
         'spec': b.spec,
-    })
+    }, encoding = "utf-8")
     # java-sun >= 1.5 conflicts with soprano-2.1.67-1.src
     # java-sun conflicts with soprano-2.1.67-1.src
     rx = re.compile(r"\s+(?P<name>[\w-]+)\s+.*conflicts with [^\s]+-[^-]+-[^-]+\.src($| .*)")
@@ -158,7 +158,7 @@ def install_br(r, b):
             'rpmdefs' : b.rpmbuild_opts(),
             'spec': b.spec,
         }
-        f = chroot.popen(cmd)
+        f = chroot.popen(cmd, encoding = "utf-8")
         rx = re.compile(r"^\s*(?P<name>[^\s]+) .*is needed by")
         needed = {}
         b.log_line("checking BR")
@@ -184,7 +184,7 @@ def install_br(r, b):
     chroot.run("poldek --up --upa", user = "root", logfile = b.logfile)
     # check conflicts in BRed packages
     b.log_line("checking conflicting packages in BRed packages")
-    f = chroot.popen("poldek --test --test --noask --caplookup -Q -v %s --upgrade %s" % (b.ignores(), br), user = "root")
+    f = chroot.popen("poldek --test --test --noask --caplookup -Q -v %s --upgrade %s" % (b.ignores(), br), user = "root", encoding = "utf-8")
     # phonon-devel-4.3.1-1.i686 conflicts with qt4-phonon-devel-4.5.0-6.i686
     # jdbc-stdext >= 2.0 is required by installed java-struts-1.3.10-1.noarch
     # jmx is needed by (installed) java-commons-modeler-2.0-1.noarch
index 6b1b45a4d887ad4b653087a4dd64bbce4cbf389e..4d909dfaba2b6dfcc2ec2b713bc91bc893b5689d 100644 (file)
@@ -39,7 +39,7 @@ def handle_src():
 
 def handle_bin():
     send_rpmqa()
-    f=chroot.popen("""ls -l --time-style +%s /spools/ready""", 'root')
+    f=chroot.popen("""ls -l --time-style +%s /spools/ready""", "root", encoding = "utf-8")
     rmpkgs=[]
     curtime=time.time()
     for i in f: