extras-buildsys/server PackageJob.py,1.11,1.12

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Thu Jul 21 14:36:56 UTC 2005


Author: dcbw

Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv12329/server

Modified Files:
	PackageJob.py 
Log Message:
2005-07-21  Dan Williams <dcbw at redhat.com>

    * common/FileDownloader.py
      server/PackageJob.py
        - Remove usage of os.chdir() since it's process-wide
        - Lock usage of tempfile.mkdtemp() since it seems to have
            threading issues




Index: PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- PackageJob.py	18 Jul 2005 21:26:30 -0000	1.11
+++ PackageJob.py	21 Jul 2005 14:36:54 -0000	1.12
@@ -99,6 +99,10 @@
     return False
 
 
+# tempfile.mkdtemp seems to have threading issues
+_mkdtemp_lock = threading.Lock()
+
+
 class PackageJob:
     """ Controller object for building 1 SRPM on multiple arches """
 
@@ -249,11 +253,12 @@
     def _checkout(self):
         self._set_cur_stage('checkout')
         dir_prefix = self.cvs_tag + "-"
+        _mkdtemp_lock.acquire()
         self.checkout_tmpdir = tempfile.mkdtemp(prefix=dir_prefix, dir=config_opts['tmpdir'])
-        os.chdir(self.checkout_tmpdir)
+        _mkdtemp_lock.release()
 
         # Checkout the module
-        cmd = '%s co -r %s %s' % (config_opts['cvs_cmd'], self.cvs_tag, self.package)
+        cmd = 'cd %s; %s co -r %s %s' % (self.checkout_tmpdir, config_opts['cvs_cmd'], self.cvs_tag, self.package)
         debugprint("%d: Running %s" % (self.uid, cmd))
         s, o = commands.getstatusoutput(cmd)
         if s != 0:
@@ -264,11 +269,9 @@
         # get it from CVS
         pkg_path = os.path.join(self.checkout_tmpdir, self.package)
         if not os.path.exists(os.path.join(pkg_path, "common")):
-            os.chdir(pkg_path)
-            cmd = '%s co common' % config_opts['cvs_cmd']
+            cmd = 'cd %s; %s co common' % (pkg_path, config_opts['cvs_cmd'])
             debugprint("%d: Running %s" % (self.uid, cmd))
             s, o = commands.getstatusoutput(cmd)
-            os.chdir(self.checkout_tmpdir)
             if s != 0:
                 msg = "could not check out common directory - output was:\n %s" % (self.cvs_tag, self.target, o)
                 raise PrepError(msg)
@@ -290,9 +293,7 @@
             msg = "could not find path %s for %s." % (srpm_dir, self.cvs_tag)
             raise PrepError(msg)
 
-        os.chdir(srpm_dir)
-
-        cmd = '%s srpm' % config_opts['make_cmd']
+        cmd = 'cd %s; %s srpm' % (srpm_dir, config_opts['make_cmd'])
         debugprint("%d: Running %s in %s" % (self.uid, cmd, srpm_dir))
         s, o = commands.getstatusoutput(cmd)
         if s != 0:




More information about the fedora-extras-commits mailing list