Thanks, Guido. I've committed this on the Twisted branch we're using and closed the bug.

The question remains as to how "correct" this is really. Is the "user." prefix a Linux system-wide restriction, or is it a per- filesystem thing? If it's the latter, that means we'd have to check the filesystem type (which I don't know how to do from Python, offhand) every time we want to write a property. That may be a downer, performance, wise.

  Something to keep an eye on.

        -wsv


On Sep 12, 2006, at 12:11 AM, Guido Guenther wrote:

Hi Wilfredo,
On Mon, Sep 11, 2006 at 03:12:51PM -0700, Wilfredo Sánchez Vega wrote:
  (Let's chat on the mailing list; I don't always respond to direct
mail, get too much and all that.)

  That's a weird rule...

  Does it make sense for this to be hidden in the xattr library?
Perhaps not...  I kinda hate to so this on OS X just because Linux is
weird.
I'm using this in twisted to fix this:

--- twisted/web2/dav/xattrprops.py.orig 2006-09-05 22:09:03.000000000 +0200
+++ twisted/web2/dav/xattrprops.py      2006-09-05 23:12:17.000000000 +0200
@@ -32,6 +32,7 @@
 __all__ = ["xattrPropertyStore"]

 import urllib
+import sys

 import xattr

@@ -58,8 +59,11 @@
     #
# Dead properties are stored as extended attributes on disk. In order to # avoid conflicts with other attributes, prefix dead property names.
-    #
-    deadPropertyXattrPrefix = "WebDAV:"
+    # Linux additionally needs everything in the user namespace
+    if sys.platform == 'linux2':
+        deadPropertyXattrPrefix = "user.WebDav:"
+    else:
+        deadPropertyXattrPrefix = "WebDAV:"

     def _encode(clazz, name):
         #

This looks clean and hardcodes the namespace at exactly one place.
Addingt this to xattr doesn't seem reasonable since there are other
namespaces.
Cheers,
 -- Guido

_______________________________________________
calendarserver-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo/calendarserver-dev

Reply via email to