[tryton-debian-vcs] pywebdav branch debian updated. debian/0.9.8-7-8-g655eff5

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Mon Mar 10 14:31:13 UTC 2014


The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/pywebdav.git;a=commitdiff;h=debian/0.9.8-7-8-g655eff5

commit 655eff5eb59dfc5f4028bf856ed43c86197737e7
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Mar 10 15:30:29 2014 +0100

    Releasing debian version 0.9.8-8.

diff --git a/debian/changelog b/debian/changelog
index cfda5e3..5d5c86d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,19 @@
+pywebdav (0.9.8-8) unstable; urgency=medium
+
+  * Removing debian/source/options, we are building with dpkg defaults.
+  * Updating year in debian copyright.
+  * Removing PYBUILD_DESTDIR_python2 from rules, it is no more needed.
+  * Adding pgp verification for uscan.
+  * Adding gbp.conf for usage with git-buildpackage.
+  * Adding 01-recursive-properties.patch (Closes: #710690).
+    Thanks to Sascha Silbe for providing the patch, no feedback from
+    maintainers so far.
+  * Adding 02-RFC2616-keep-alive.patch (Closes: #710672).
+    Thanks to Sascha Silbe for providing the patch, no feedback from
+    maintainers so far.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Mon, 10 Mar 2014 15:17:30 +0100
+
 pywebdav (0.9.8-7) unstable; urgency=low
 
   * Updating to standards version 3.9.5, no changes needed.
commit bd36a73f4d073c5d067de736ac4ad4656d3e8afb
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Mar 10 15:15:32 2014 +0100

    Adding 02-RFC2616-keep-alive.patch (Closes: #710672).
    
    Thanks to Sascha Silbe for providing the patch, no feedback from
    maintainers so far.

diff --git a/debian/patches/02-RFC2616-keep-alive.patch b/debian/patches/02-RFC2616-keep-alive.patch
new file mode 100644
index 0000000..4a7e846
--- /dev/null
+++ b/debian/patches/02-RFC2616-keep-alive.patch
@@ -0,0 +1,39 @@
+Description: Unsolicited use of persistent connections with HTTP/1.0
+pywebdav uses persistent connections even for HTTP/1.0 GET requests
+without a Connection: Keep-Alive header. This causes the client to
+hang waiting for the connection to close. RFC2616 explicitly states
+HTTP/1.1 servers must not assume HTTP/1.0 clients to support
+persistent connections.
+
+Author: Sascha Silbe <sascha-debian-bugs-python-webdav-2013-06-01 at silbe.org>
+Origin: vendor, https://bugs.debian.org/710672
+Bug: http://code.google.com/p/pywebdav/issues/detail?id=69
+Bug-Debian: https://bugs.debian.org/710672
+Forwarded: http://code.google.com/p/pywebdav/issues/detail?id=69
+
+--- pywebdav-0.9.8.orig/pywebdav/lib/WebDAVServer.py
++++ pywebdav-0.9.8/pywebdav/lib/WebDAVServer.py
+@@ -62,9 +62,9 @@ class DAVRequestHandler(AuthServer.AuthR
+         log.debug("Use send_body method")
+ 
+         self.send_response(code, message=msg)
+-        self.send_header("Connection", "close")
++        if 'Connection' not in headers:
++            self.send_header("Connection", "close")
+         self.send_header("Accept-Ranges", "bytes")
+-        self.send_header('Date', rfc1123_date())
+ 
+         self._send_dav_version()
+ 
+@@ -255,8 +255,9 @@ class DAVRequestHandler(AuthServer.AuthR
+             self.send_body(data, status_code, None, None, content_type,
+                            headers)
+         else:
+-            headers['Keep-Alive'] = 'timeout=15, max=86'
+-            headers['Connection'] = 'Keep-Alive'
++            if self.request_version == 'HTTP/1.1':
++                headers['Keep-Alive'] = 'timeout=15, max=86'
++                headers['Connection'] = 'Keep-Alive'
+             self.send_body_chunks_if_http11(data, status_code, None, None,
+                                             content_type, headers)
+ 
diff --git a/debian/patches/series b/debian/patches/series
index c661a95..e25e6c3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 01-recursive-properties.patch
+02-RFC2616-keep-alive.patch
commit 4ab771c239c494c3c6ffe35ca0de2e384e43cf17
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Mar 10 14:12:00 2014 +0100

    Adding 01-recursive-properties.patch (Closes: #710690).
    
    Thanks to Sascha Silbe for providing the patch, no feedback from
    maintainers so far.

diff --git a/debian/patches/01-recursive-properties.patch b/debian/patches/01-recursive-properties.patch
new file mode 100644
index 0000000..87d6ef7
--- /dev/null
+++ b/debian/patches/01-recursive-properties.patch
@@ -0,0 +1,93 @@
+Description: Get all properties on recursive <allprops>
+When all properties for a resource and its children are requested,
+pywebdav only returns the value of those properties that are also set
+on requested collection itself. It does not return the properties that
+are only on one of the children (or grandchildren for that
+matter). Also, 404 is returned for any property that is on the
+requested collection, but not on the current child.
+.
+The reason for this is that the list of property names is created once
+in pywebdav.lib.propfind.PROPFIND.create_allprop() and applied to each
+resource.
+
+Author: Sascha Silbe <sascha-debian-bugs-python-webdav-2013-06-01 at silbe.org>
+Origin: vendor, https://bugs.debian.org/710690
+Bug: http://code.google.com/p/pywebdav/issues/detail?id=70
+Bug-Debian: https://bugs.debian.org/710690
+Forwarded: http://code.google.com/p/pywebdav/issues/detail?id=70
+
+--- pywebdav-0.9.8.orig/pywebdav/lib/propfind.py
++++ pywebdav-0.9.8/pywebdav/lib/propfind.py
+@@ -66,7 +66,7 @@ class PROPFIND:
+ 
+         df = None
+         if self.request_type == RT_ALLPROP:
+-            df = self.create_allprop()
++            df = self.create_prop(allprop=True)
+ 
+         if self.request_type == RT_PROPNAME:
+             df = self.create_propname()
+@@ -78,7 +78,7 @@ class PROPFIND:
+             return df
+ 
+         # no body means ALLPROP!
+-        df = self.create_allprop()
++        df = self.create_prop(allprop=True)
+         return df
+ 
+     def create_propname(self):
+@@ -118,17 +118,7 @@ class PROPFIND:
+ 
+         return doc.toxml(encoding="utf-8")
+ 
+-    def create_allprop(self):
+-        """ return a list of all properties """
+-        self.proplist = {}
+-        self.namespaces = []
+-        for ns, plist in self._dataclass.get_propnames(self._uri).items():
+-            self.proplist[ns] = plist
+-            self.namespaces.append(ns)
+-
+-        return self.create_prop()
+-
+-    def create_prop(self):
++    def create_prop(self, allprop=False):
+         """ handle a <prop> request
+ 
+         This will
+@@ -156,16 +146,25 @@ class PROPFIND:
+         ms.tagName = 'D:multistatus'
+ 
+         if self._depth == "0":
++            if allprop:
++                self.proplist = self._dataclass.get_propnames(self._uri)
++                self.namespaces = self.proplist.keys()
+             gp, bp = self.get_propvalues(self._uri)
+             res = self.mk_prop_response(self._uri, gp, bp, doc)
+             ms.appendChild(res)
+ 
+         elif self._depth == "1":
++            if allprop:
++                self.proplist = self._dataclass.get_propnames(self._uri)
++                self.namespaces = self.proplist.keys()
+             gp, bp = self.get_propvalues(self._uri)
+             res = self.mk_prop_response(self._uri, gp, bp, doc)
+             ms.appendChild(res)
+ 
+             for newuri in self._dataclass.get_childs(self._uri):
++                if allprop:
++                    self.proplist = self._dataclass.get_propnames(newuri)
++                    self.namespaces = self.proplist.keys()
+                 gp, bp = self.get_propvalues(newuri)
+                 res = self.mk_prop_response(newuri, gp, bp, doc)
+                 ms.appendChild(res)
+@@ -173,6 +172,9 @@ class PROPFIND:
+             uri_list = [self._uri]
+             while uri_list:
+                 uri = uri_list.pop()
++                if allprop:
++                    self.proplist = self._dataclass.get_propnames(uri)
++                    self.namespaces = self.proplist.keys()
+                 gp, bp = self.get_propvalues(uri)
+                 res = self.mk_prop_response(uri, gp, bp, doc)
+                 ms.appendChild(res)
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..c661a95
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+01-recursive-properties.patch
-- 
pywebdav



More information about the tryton-debian-vcs mailing list