rpms/plague/devel plague-0.4.5.7-cvs20081216.patch, NONE, 1.1 plague.spec, 1.44, 1.45

Michael Schwendt mschwendt at fedoraproject.org
Tue Dec 16 22:47:49 UTC 2008


Author: mschwendt

Update of /cvs/pkgs/rpms/plague/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25889

Modified Files:
	plague.spec 
Added Files:
	plague-0.4.5.7-cvs20081216.patch 
Log Message:
* Tue Dec 16 2008 Michael Schwendt <mschwendt at fedoraproject.org> - 0.4.5.7-3.20081216cvs
- patch with fixes from cvs, also to make work with Python 2.6


plague-0.4.5.7-cvs20081216.patch:

--- NEW FILE plague-0.4.5.7-cvs20081216.patch ---
diff -Nur plague-0.4.5.7-orig/builder/builder.py plague-0.4.5.7/builder/builder.py
--- plague-0.4.5.7-orig/builder/builder.py	2008-09-05 11:17:27.000000000 +0200
+++ plague-0.4.5.7/builder/builder.py	2008-12-16 20:29:08.000000000 +0100
@@ -19,9 +19,12 @@
 import socket
 import os
 import shutil
-import sha
 import time
 import sys
+if sys.version_info[0:2] < (2,6):
+    import sha
+else:
+    import hashlib
 import string
 import time
 import fcntl
@@ -359,7 +362,7 @@
             # something is wrong if mock takes more than 15s to write the status file
             if time.time() > self._mockstarttime + 15:
                 self._mockstarttime = 0
-                self._log("ERROR: Timed out waiting for the mock status file!  %s\n" % mockstatusfile)
+                self._log("ERROR: Timed out waiting for the mock status file!  %s\n" % self._state_file)
                 self.die()
         else:
             if not self._mock_config and self._mock_is_prepping():
@@ -555,7 +558,10 @@
             print string
 
     def _generate_uniqid(self, target_str, srpm_url):
-        sum = sha.new()
+        if sys.version_info[0:2] < (2,6):
+            sum = sha.new()
+        else:
+            sum = hashlib.sha1()
         sum.update('%d %s %s' % (time.time(), target_str, srpm_url))
         return sum.hexdigest()
 
@@ -599,12 +605,11 @@
 
         self._building_jobs_lock.acquire()
         num_building = len(self._building_jobs)
+        self._building_jobs_lock.release()
         if num_building >= self._max_jobs:
             self._log("Tried to build '%s' on target %s when already building" \
                         " %d/%d jobs" % (srpm_url, target_str, num_building, self._max_jobs))
-            self._building_jobs_lock.release()
             return 0
-        self._building_jobs_lock.release()
 
         target_cfg = self._get_target_cfg(target_dict)
         if not target_cfg:
diff -Nur plague-0.4.5.7-orig/ChangeLog plague-0.4.5.7/ChangeLog
--- plague-0.4.5.7-orig/ChangeLog	2008-11-05 12:51:10.000000000 +0100
+++ plague-0.4.5.7/ChangeLog	2008-12-16 23:34:30.000000000 +0100
@@ -1,6 +1,38 @@
+2008-12-16  Michael Schwendt <mschwendt at fedoraproject.org>
+
+	* common/SSLCommon.py
+	  - Catch EINTR in serve_forever to avoid breakage with
+	    Python 2.6.
+	
+	* common/FileDownloader.py
+	  - Fix dl_callback number of args for test suite.
+	
+	* builder/builder.py
+	  - Fix mock state file timeout error msg traceback.
+	  - With Python >= 2.6 use "hashlib" not "sha" to
+	    avoid the ugly deprecation warning.
+
+2008-12-10  Michael Schwendt <mschwendt at fedoraproject.org>
+
+	* server/Repo.py
+	  - With Python >= 2.6 use "subprocess" not "popen2" to
+	    avoid the ugly deprecation warning.
+
+2008-11-17  Michael Schwendt <mschwendt at fedoraproject.org>
+
+	* common/SSLConnection.py
+	  - Fix initial reference count (set to 1)
+	    and the comments about shutdown().
+
+2008-11-13  Michael Schwendt <mschwendt at fedoraproject.org>
+
+	* builder/builder.py
+	  - In start_new_job() release building_jobs_lock already
+	    before the max_jobs check.
+
 2008-11-05  Michael Schwendt <mschwendt at fedoraproject.org>
 
-	* Releae of 0.4.5.7
+	* Release of 0.4.5.7
 	
 	* server/BuildMaster.py
 	  - Fix class definition of PeriodicJob for Python 2.4.
diff -Nur plague-0.4.5.7-orig/common/FileDownloader.py plague-0.4.5.7/common/FileDownloader.py
--- plague-0.4.5.7-orig/common/FileDownloader.py	2008-01-31 15:13:05.000000000 +0100
+++ plague-0.4.5.7/common/FileDownloader.py	2008-12-16 21:43:15.000000000 +0100
@@ -149,8 +149,8 @@
         return len(self.lst)
 
 
-def dl_callback(status, dlwr):
-    print "Finished with %d (%s)" % (dlwr.num, status)
+def dl_callback(status, dlwr, msg):
+    print "Finished with %d (%s): %s" % (dlwr.num, status, msg)
     dlwr.tracker.remove(dlwr)
 
 
diff -Nur plague-0.4.5.7-orig/common/SSLCommon.py plague-0.4.5.7/common/SSLCommon.py
--- plague-0.4.5.7-orig/common/SSLCommon.py	2006-03-12 06:52:59.000000000 +0100
+++ plague-0.4.5.7/common/SSLCommon.py	2008-12-16 23:33:03.000000000 +0100
@@ -20,6 +20,7 @@
 import SSLConnection
 import httplib
 import socket
+import select, errno
 import SocketServer
 
 def our_verify(connection, x509, errNum, errDepth, preverifyOK):
@@ -65,7 +66,13 @@
 
     def serve_forever(self):
         while not self._quit:
-            self.handle_request()
+            try:
+                self.handle_request()
+            except select.error, (err, strerr):
+                if err == errno.EINTR:
+                   continue
+                else:
+                    raise
         self.server_close()
 
 
diff -Nur plague-0.4.5.7-orig/common/SSLConnection.py plague-0.4.5.7/common/SSLConnection.py
--- plague-0.4.5.7-orig/common/SSLConnection.py	2006-02-15 18:17:39.000000000 +0100
+++ plague-0.4.5.7/common/SSLConnection.py	2008-11-17 22:10:56.000000000 +0100
@@ -15,7 +15,7 @@
 class SSLConnection:
     """
     This whole class exists just to filter out a parameter
-    passed in to the shutdown() method in SimpleXMLRPC.doPOST()
+    passed in to the shutdown() method in SimpleXMLRPCServer.do_POST()
     """
 
     DEFAULT_TIMEOUT = 20
@@ -26,7 +26,7 @@
         so I'm making a proxy instead of subclassing.
         """
         self.__dict__["conn"] = conn
-        self.__dict__["close_refcount"] = 0
+        self.__dict__["close_refcount"] = 1
         self.__dict__["closed"] = False
         self.__dict__["timeout"] = self.DEFAULT_TIMEOUT
 
@@ -48,7 +48,7 @@
 
     def shutdown(self, how=1):
         """
-        SimpleXMLRpcServer.doPOST calls shutdown(1),
+        SimpleXMLRPCServer.do_POST() calls shutdown(1),
         and Connection.shutdown() doesn't take
         an argument. So we just discard the argument.
         """
diff -Nur plague-0.4.5.7-orig/server/Repo.py plague-0.4.5.7/server/Repo.py
--- plague-0.4.5.7-orig/server/Repo.py	2008-09-29 17:58:26.000000000 +0200
+++ plague-0.4.5.7/server/Repo.py	2008-12-10 00:22:19.000000000 +0100
@@ -14,12 +14,19 @@
 #
 # Copyright 2005 Dan Williams <dcbw at redhat.com> and Red Hat, Inc.
 
+import sys
+if sys.version_info[0:2] < (2,6):
+    import popen2
+    use_subprocess = False
+else:  # available since Python 2.4
+    import subprocess
+    use_subprocess = True
+
 import os
 import threading
 import shutil
 import time
 import commands
-import popen2
 import fcntl
 import stat
 import EmailUtils
@@ -150,9 +157,16 @@
     def _run_repo_script(self):
         target_str = self._target_cfg.target_string()
         cmd = "%s %s" % (self._repo_script, target_str)
-        print "Repo '%s': executing repository script %s" % (target_str, self._repo_script)
-        self._pobj = popen2.Popen4(cmd=cmd)
-        fcntl.fcntl(self._pobj.fromchild.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
+        print "Repo '%s': executing repository script: %s" % (target_str, cmd)
+        if use_subprocess:
+            try:
+                self._pobj = subprocess.Popen(args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
+                fcntl.fcntl(self._pobj.stdout.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
+            except OSError, e:
+                print "Repo Error (%s): repo_script failed: %s" % (target_str, e)
+        else:
+            self._pobj = popen2.Popen4(cmd=cmd)
+            fcntl.fcntl(self._pobj.fromchild.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
         self._repo_script_start = time.time()
 
     def _email_repo_script_failure(self, subject):
@@ -167,7 +181,10 @@
         output = ""
         while True:
             try:
-                string = os.read(self._pobj.fromchild.fileno(), 1024)
+                if use_subprocess:
+                    string = os.read(self._pobj.stdout.fileno(), 1024)
+                else:
+                    string = os.read(self._pobj.fromchild.fileno(), 1024)
                 if not len(string):
                     break
             except OSError, e:


Index: plague.spec
===================================================================
RCS file: /cvs/pkgs/rpms/plague/devel/plague.spec,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- plague.spec	29 Nov 2008 17:56:23 -0000	1.44
+++ plague.spec	16 Dec 2008 22:47:18 -0000	1.45
@@ -3,11 +3,12 @@
 Summary: Distributed build system for RPMs
 Name: plague
 Version: 0.4.5.7
-Release: 2%{?dist}
+Release: 3.20081216cvs%{?dist}
 License: GPLv2+
 Group: Development/Tools
 #Source: http://fedoraproject.org/projects/plague/releases/%{name}-%{version}.tar.bz2
 Source: %{name}-%{version}.tar.bz2
+Patch0: plague-0.4.5.7-cvs20081216.patch
 URL: http://www.fedoraproject.org/wiki/Projects/Plague
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: python
@@ -79,6 +80,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 
 %build
@@ -165,6 +167,9 @@
 
 
 %changelog
+* Tue Dec 16 2008 Michael Schwendt <mschwendt at fedoraproject.org> - 0.4.5.7-3.20081216cvs
+- patch with fixes from cvs, also to make work with Python 2.6
+
 * Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm at gmail.com> - 0.4.5.7-2
 - Rebuild for Python 2.6
 




More information about the fedora-extras-commits mailing list