Commit dabd019b authored by Jack Jansen's avatar Jack Jansen

Capturing the exit status for the build process didn't work. Using

popen2.Popen4() makes it work. Fixes #702180.
parent 639ae702
...@@ -14,6 +14,7 @@ intention is that the end user will use this through a GUI. ...@@ -14,6 +14,7 @@ intention is that the end user will use this through a GUI.
""" """
import sys import sys
import os import os
import popen2
import urllib import urllib
import urllib2 import urllib2
import urlparse import urlparse
...@@ -395,16 +396,15 @@ class PimpPackage: ...@@ -395,16 +396,15 @@ class PimpPackage:
output.write("+ %s\n" % cmd) output.write("+ %s\n" % cmd)
if NO_EXECUTE: if NO_EXECUTE:
return 0 return 0
dummy, fp = os.popen4(cmd, "r") child = popen2.Popen4(cmd)
dummy.close() child.tochild.close()
while 1: while 1:
line = fp.readline() line = child.fromchild.readline()
if not line: if not line:
break break
if output: if output:
output.write(line) output.write(line)
rv = fp.close() return child.wait()
return rv
def downloadPackageOnly(self, output=None): def downloadPackageOnly(self, output=None):
"""Download a single package, if needed. """Download a single package, if needed.
...@@ -588,7 +588,8 @@ class PimpPackage_source(PimpPackage): ...@@ -588,7 +588,8 @@ class PimpPackage_source(PimpPackage):
if not installcmd: if not installcmd:
installcmd = '"%s" setup.py install' % sys.executable installcmd = '"%s" setup.py install' % sys.executable
if self._cmd(output, self._buildDirname, installcmd): if self._cmd(output, self._buildDirname, installcmd):
return "install %s: running \"%s\" failed" % self.fullname() return "install %s: running \"%s\" failed" % \
(self.fullname(), installcmd)
self.afterInstall() self.afterInstall()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment