rpms/bzr/F-7 bzr-paramiko.patch, NONE, 1.1 .cvsignore, 1.19, 1.20 bzr.spec, 1.24, 1.25 sources, 1.19, 1.20

Toshio くらとみ (toshio) fedora-extras-commits at redhat.com
Sun Apr 27 18:22:01 UTC 2008


Author: toshio

Update of /cvs/pkgs/rpms/bzr/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17683/F-7

Modified Files:
	.cvsignore bzr.spec sources 
Added Files:
	bzr-paramiko.patch 
Log Message:
* Sun Apr 27 2008 Toshio Kuratomi <toshio at fedoraproject.org> - 1.3.1-1
- Paramiko/sftp backport from 1.4.0. bz#444325
- Update to 1.3.1 final.


bzr-paramiko.patch:

--- NEW FILE bzr-paramiko.patch ---
=== modified file 'bzrlib/transport/sftp.py'
--- bzrlib/transport/sftp.py	2007-10-24 18:19:51 +0000
+++ bzrlib/transport/sftp.py	2008-04-10 09:16:39 +0000
@@ -1019,10 +1019,12 @@
             def close(self):
                 pass
 
-        server = paramiko.SFTPServer(FakeChannel(), 'sftp', StubServer(self), StubSFTPServer,
-                                     root=self._root, home=self._server_homedir)
+        server = paramiko.SFTPServer(
+            FakeChannel(), 'sftp', StubServer(self), StubSFTPServer,
+            root=self._root, home=self._server_homedir)
         try:
-            server.start_subsystem('sftp', None, sock)
+            server.start_subsystem(
+                'sftp', None, ssh.SocketAsChannelAdapter(sock))
         except socket.error, e:
             if (len(e.args) > 0) and (e.args[0] == errno.EPIPE):
                 # it's okay for the client to disconnect abruptly

=== modified file 'bzrlib/transport/ssh.py'
--- bzrlib/transport/ssh.py	2008-02-08 18:36:35 +0000
+++ bzrlib/transport/ssh.py	2008-04-10 09:16:39 +0000
@@ -172,19 +172,34 @@
     signal.signal(signal.SIGINT, signal.SIG_IGN)
 
 
-class LoopbackSFTP(object):
+class SocketAsChannelAdapter(object):
     """Simple wrapper for a socket that pretends to be a paramiko Channel."""
 
     def __init__(self, sock):
         self.__socket = sock
 
+    def get_name(self):
+        return "bzr SocketAsChannelAdapter"
+    
     def send(self, data):
         return self.__socket.send(data)
 
     def recv(self, n):
-        return self.__socket.recv(n)
+        try:
+            return self.__socket.recv(n)
+        except socket.error, e:
+            if e.args[0] in (errno.EPIPE, errno.ECONNRESET, errno.ECONNABORTED,
+                             errno.EBADF):
+                # Connection has closed.  Paramiko expects an empty string in
+                # this case, not an exception.
+                return ''
+            raise
 
     def recv_ready(self):
+        # TODO: jam 20051215 this function is necessary to support the
+        # pipelined() function. In reality, it probably should use
+        # poll() or select() to actually return if there is data
+        # available, otherwise we probably don't get any benefit
         return True
 
     def close(self):
@@ -237,7 +252,7 @@
             sock.connect((host, port))
         except socket.error, e:
             self._raise_connection_error(host, port=port, orig_error=e)
-        return SFTPClient(LoopbackSFTP(sock))
+        return SFTPClient(SocketAsChannelAdapter(sock))
 
 register_ssh_vendor('loopback', LoopbackVendor())
 
@@ -347,7 +362,7 @@
             argv = self._get_vendor_specific_argv(username, host, port,
                                                   subsystem='sftp')
             sock = self._connect(argv)
-            return SFTPClient(sock)
+            return SFTPClient(SocketAsChannelAdapter(sock))
         except _sftp_connection_errors, e:
             self._raise_connection_error(host, port=port, orig_error=e)
         except (OSError, IOError), e:
@@ -601,13 +616,6 @@
     def send(self, data):
         return os.write(self.proc.stdin.fileno(), data)
 
-    def recv_ready(self):
-        # TODO: jam 20051215 this function is necessary to support the
-        # pipelined() function. In reality, it probably should use
-        # poll() or select() to actually return if there is data
-        # available, otherwise we probably don't get any benefit
-        return True
-
     def recv(self, count):
         return os.read(self.proc.stdout.fileno(), count)
 



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/bzr/F-7/.cvsignore,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- .cvsignore	23 Apr 2008 18:03:31 -0000	1.19
+++ .cvsignore	27 Apr 2008 18:21:19 -0000	1.20
@@ -1 +1 @@
-bzr-1.3.1rc1.tar.gz
+bzr-1.3.1.tar.gz


Index: bzr.spec
===================================================================
RCS file: /cvs/pkgs/rpms/bzr/F-7/bzr.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- bzr.spec	23 Apr 2008 18:03:32 -0000	1.24
+++ bzr.spec	27 Apr 2008 18:21:19 -0000	1.25
@@ -2,13 +2,15 @@
 
 Name:           bzr
 Version:        1.3.1
-Release:        0.1.rc1%{?dist}
+Release:        1%{?dist}
 Summary:        Friendly distributed version control system
 
 Group:          Development/Tools
 License:        GPLv2+
 URL:            http://www.bazaar-vcs.org/
-Source0:        http://bazaar-vcs.org/releases/src/%{name}-%{version}rc1.tar.gz
+Source0:        http://bazaar-vcs.org/releases/src/%{name}-%{version}.tar.gz
+# Backported from 1.4
+Patch0:		bzr-paramiko.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  python-devel
@@ -18,6 +20,7 @@
 Requires:   python-paramiko
 
 # ElementTree is part of python2.5 on FC7+
+# This is also needed for EL-5
 %if 0%{?fedora} <= 6
 BuildRequires:   python-elementtree
 Requires:   python-elementtree
@@ -30,7 +33,8 @@
 
 
 %prep
-%setup -q -n %{name}-%{version}rc1
+%setup -q
+%patch0 -p0 -b .pmko
 
 sed -i '1{/#![[:space:]]*\/usr\/bin\/\(python\|env\)/d}' bzrlib/_patiencediff_py.py
 sed -i '1{/#![[:space:]]*\/usr\/bin\/\(python\|env\)/d}' bzrlib/weave.py
@@ -72,6 +76,10 @@
 %endif
 
 %changelog
+* Sun Apr 27 2008 Toshio Kuratomi <toshio at fedoraproject.org> - 1.3.1-1
+- Paramiko/sftp backport from 1.4.0. bz#444325
+- Update to 1.3.1 final.
+
 * Sat Apr 4 2008 Toshio Kuratomi <toshio at fedoraproject.org> - 1.3.1-0.1.rc1
 - Update to 1.3.1rc1 to fix a bug when you have a pack based remote repo and
   knit based local branch.


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/bzr/F-7/sources,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- sources	23 Apr 2008 18:03:32 -0000	1.19
+++ sources	27 Apr 2008 18:21:19 -0000	1.20
@@ -1 +1 @@
-5015885fe27b2448f59355057c2b08d2  bzr-1.3.1rc1.tar.gz
+5a2160e057d79288c186c42567aa0dc2  bzr-1.3.1.tar.gz




More information about the scm-commits mailing list