summaryrefslogtreecommitdiffstats
path: root/BuildManager
diff options
context:
space:
mode:
Diffstat (limited to 'BuildManager')
-rw-r--r--BuildManager/build.py29
1 files changed, 11 insertions, 18 deletions
diff --git a/BuildManager/build.py b/BuildManager/build.py
index 8fed7b0..9279d17 100644
--- a/BuildManager/build.py
+++ b/BuildManager/build.py
@@ -2,10 +2,7 @@ from BuildManager.fileutil import *
from BuildManager.package import *
from BuildManager import *
import thread
-import popen2
-import select
-import fcntl
-import thread
+import subprocess
import sys, os
import time
import shutil
@@ -204,22 +201,18 @@ def buildpkg(pkg, stage, unpack_dir, passtrough="", show_log=0, dryrun=0):
logger.debug("rpmbuild command: "+cmd)
if not dryrun:
log = open(pkg.log, "w")
- pop = popen2.Popen3(cmd)
- fc = pop.fromchild
- flags = fcntl.fcntl (fc.fileno(), fcntl.F_GETFL, 0)
- flags = flags | os.O_NONBLOCK
- fcntl.fcntl (fc.fileno(), fcntl.F_SETFL, flags)
- while 1:
- r,w,x = select.select([fc.fileno()], [], [], 2)
- if r:
- data = fc.read()
- if show_log:
- sys.stdout.write(data)
- log.write(data)
- log.flush()
+ pop = subprocess.Popen(cmd, shell=True,
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ of = pop.stdout.fileno()
+ while True:
status = pop.poll()
- if status != -1:
+ if status is not None:
break
+ data = os.read(of, 8192)
+ log.write(data)
+ log.flush()
+ if show_log:
+ sys.stdout.write(data)
log.close()
if status == 0:
logger.info("succeeded!")