Backed out changeset ec1525343e0b
authorGavin Sharp <>
Thu, 14 Oct 2010 14:30:10 -0400
changeset 55797 60ce967b4a963082d35ec7d940d7ce68f7756426
parent 55796 8c82c5840706fa57ada6490bd5ef3db8a78a8026
child 55798 ea371c9d775b96f7a6388b5642931e7570bf59b9
push idunknown
push userunknown
push dateunknown
backs outec1525343e0bcbb35e2faa61052451b34dffd00c
Backed out changeset ec1525343e0b
--- a/build/
+++ b/build/
@@ -52,17 +52,18 @@
 # All files to be uploaded should be passed as commandline arguments to this
 # script. The script takes one other parameter, --base-path, which you can use
 # to indicate that files should be uploaded including their paths relative
 # to the base path.
 import sys, os
 from optparse import OptionParser
-from subprocess import PIPE, Popen, check_call
+from subprocess import Popen, PIPE
+from util import check_call
 def RequireEnvironmentVariable(v):
     """Return the value of the environment variable named v, or print
     an error and exit if it's unset (or empty)."""
     if not v in os.environ or os.environ[v] == "":
         print "Error: required environment variable %s not set" % v
     return os.environ[v]
new file mode 100644
--- /dev/null
+++ b/build/
@@ -0,0 +1,50 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+# The Original Code is code.
+# The Initial Developer of the Original Code is
+# The Mozilla Foundation 
+# Portions created by the Initial Developer are Copyright (C) 2008
+# the Initial Developer. All Rights Reserved.
+# Contributor(s):
+#  Ted Mielczarek <>
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+# ***** END LICENSE BLOCK *****
+    from subprocess import check_call
+except ImportError:
+    import subprocess
+    def check_call(*popenargs, **kwargs):
+        retcode =*popenargs, **kwargs)
+        if retcode:
+            cmd = kwargs.get("args")
+            if cmd is None:
+                cmd = popenargs[0]
+                raise Exception("Command '%s' returned non-zero exit status %i" % (cmd, retcode))
--- a/
+++ b/
@@ -10,17 +10,17 @@ LIBFFI_DIRS = (('js/ctypes/libffi', 'lib
 import os
 import sys
 import datetime
 import shutil
 from optparse import OptionParser
-from subprocess import check_call
+from build.util import check_call
 topsrcdir = os.path.dirname(__file__)
 if topsrcdir == '':
     topsrcdir = '.'
 def check_call_noisy(cmd, *args, **kwargs):
     print "Executing command:", cmd
     check_call(cmd, *args, **kwargs)