From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1S5pyT-0007nK-MC for garchives@archives.gentoo.org; Fri, 09 Mar 2012 02:54:33 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 275AFE0801; Fri, 9 Mar 2012 02:54:23 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id D09C2E0801 for ; Fri, 9 Mar 2012 02:54:22 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0E0A71B403A for ; Fri, 9 Mar 2012 02:54:22 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id C343DE5428 for ; Fri, 9 Mar 2012 02:54:20 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1331261642.f1475a5cb14539fc412d8fca393b7473399d9a5b.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/actions.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: f1475a5cb14539fc412d8fca393b7473399d9a5b X-VCS-Branch: master Date: Fri, 9 Mar 2012 02:54:20 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 2a041eff-b80f-41c2-a617-da70f5e4ebed X-Archives-Hash: 224f73a684aac17124307b126d66aff8 commit: f1475a5cb14539fc412d8fca393b7473399d9a5b Author: Zac Medico gentoo org> AuthorDate: Fri Mar 9 02:54:02 2012 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Mar 9 02:54:02 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3Df1475a5c Use Popen to avoid unnecessary shell. --- pym/_emerge/actions.py | 53 ++++++++++++++++++++++++++++++++++++++++--= ----- 1 files changed, 45 insertions(+), 8 deletions(-) diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 096dc3a..090d9e1 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -27,7 +27,6 @@ portage.proxy.lazyimport.lazyimport(globals(), =20 from portage import os from portage import shutil -from portage import subprocess_getstatusoutput from portage import _unicode_decode from portage.cache.cache_errors import CacheError from portage.const import GLOBAL_CONFIG_PATH @@ -1357,7 +1356,14 @@ def action_info(settings, trees, myopts, myfiles): lastSync =3D "Unknown" append("Timestamp of tree: %s" % (lastSync,)) =20 - output=3Dsubprocess_getstatusoutput("distcc --version") + try: + proc =3D subprocess.Popen(["distcc", "--version"], + stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.STDOUT) + except OSError: + output =3D (1, None) + else: + output =3D _unicode_decode(proc.communicate()[0]).rstrip("\n") + output =3D (proc.wait(), output) if output[0] =3D=3D os.EX_OK: distcc_str =3D output[1].split("\n", 1)[0] if "distcc" in settings.features: @@ -1366,7 +1372,14 @@ def action_info(settings, trees, myopts, myfiles): distcc_str +=3D " [disabled]" append(distcc_str) =20 - output=3Dsubprocess_getstatusoutput("ccache -V") + try: + proc =3D subprocess.Popen(["ccache", "-V"], + stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.STDOUT) + except OSError: + output =3D (1, None) + else: + output =3D _unicode_decode(proc.communicate()[0]).rstrip("\n") + output =3D (proc.wait(), output) if output[0] =3D=3D os.EX_OK: ccache_str =3D output[1].split("\n", 1)[0] if "ccache" in settings.features: @@ -3038,7 +3051,7 @@ def getgccversion(chost): return: the current in-use gcc version """ =20 - gcc_ver_command =3D 'gcc -dumpversion' + gcc_ver_command =3D ['gcc', '-dumpversion'] gcc_ver_prefix =3D 'gcc-' =20 gcc_not_found_error =3D red( @@ -3047,16 +3060,40 @@ def getgccversion(chost): "!!! other terminals also.\n" ) =20 - mystatus, myoutput =3D subprocess_getstatusoutput("gcc-config -c") + try: + proc =3D subprocess.Popen(["gcc-config", "-c"], + stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.STDOUT) + except OSError: + myoutput =3D None + mystatus =3D 1 + else: + myoutput =3D _unicode_decode(proc.communicate()[0]).rstrip("\n") + mystatus =3D proc.wait() if mystatus =3D=3D os.EX_OK and myoutput.startswith(chost + "-"): return myoutput.replace(chost + "-", gcc_ver_prefix, 1) =20 - mystatus, myoutput =3D subprocess_getstatusoutput( - chost + "-" + gcc_ver_command) + try: + proc =3D subprocess.Popen( + [chost + "-" + gcc_ver_command[0]] + gcc_ver_command[1:], + stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.STDOUT) + except OSError: + myoutput =3D None + mystatus =3D 1 + else: + myoutput =3D _unicode_decode(proc.communicate()[0]).rstrip("\n") + mystatus =3D proc.wait() if mystatus =3D=3D os.EX_OK: return gcc_ver_prefix + myoutput =20 - mystatus, myoutput =3D subprocess_getstatusoutput(gcc_ver_command) + try: + proc =3D subprocess.Popen(gcc_ver_command, + stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.STDOUT) + except OSError: + myoutput =3D None + mystatus =3D 1 + else: + myoutput =3D _unicode_decode(proc.communicate()[0]).rstrip("\n") + mystatus =3D proc.wait() if mystatus =3D=3D os.EX_OK: return gcc_ver_prefix + myoutput =20