[CalendarServer-dev] Attempt to package 4.1.1 for debian - unofficial

Fredrik Unger fred at tree.se
Tue Nov 13 11:17:01 PST 2012


Hi,

As there has not been any upgrades to the debian package, with regards to major
versions I decided to have a go at trying to find out the problems with the
current released version 4.1.1. I am not the debian maintainer, nor a debian developer.

I am working out some details but one thing I have not been able
to bypass, and would like some advice :

The server fails in :
exceptions.RuntimeError: twisted.internet.addressalready loaded, cannot load required backport
later other parts fail in :
exceptions.AttributeError: 'module' object has no attribute 'backport'

See backtrace below [1],[2]

I have tried to locate the problem, but I am so far stuck. 
The __import__("twext") in caldav.py in twisted/plugins is supposed to 
ensure that twisted get update with the new ipv6 modules that 
the patches.py in twext is patching ?

Loading the twext.backport module dynamically standalone is possible [3].

I run debian sid with Twisted 12.0.0 but as far as I can tell without
the ipv6 patches that patches.py checks for. 

The (wild) ideas I have so far:
- Twisted loads twisted.internet.tcp etc before starting caldav in version 12.0.0 ?

- The many different modules (groupcacher, caldavd, notifications) race to patch
  twisted, and once it is done the others fails ? 

- Some other package that happens to be in the python path confuses caldavd ?

I assume it is some simple bug, and if you have a hint to the direction
I will try to track it down. It can be that the configuration is out of date, 
or a version problem with Debian sid. 

I am trying to upgrade the standard configuration as well.

- I also have a vague memory that xmlfile directory is depricated/not up to date/not recommended ? What is best to use for testing ?

I am using postgres as data backend and have already patches for debian done (database_bootstrap).

If someone wants to help or try the changes I have made so far let me know.
Once I have a working package I will post the details.

Thank you

Fredrik Unger

[1]
2012-11-13 17:53:59+0100 [-] LimitingInheritingProtocolFactory starting on 8008
2012-11-13 17:54:00+0100 [-] [groupcacher] Unhandled Error
2012-11-13 17:54:00+0100 [-] [groupcacher] Traceback (most recent call last):
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 647, in run
2012-11-13 17:54:00+0100 [-] [groupcacher]     config.parseOptions()
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 614, in parseOptions
2012-11-13 17:54:00+0100 [-] [groupcacher]     usage.Options.parseOptions(self, options)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/usage.py", line 261, in parseOptions
2012-11-13 17:54:00+0100 [-] [groupcacher]     for (cmd, short, parser, doc) in self.subCommands:
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 631, in subCommands
2012-11-13 17:54:00+0100 [-] [groupcacher]     for plug in sorted(plugins, key=attrgetter('tapname')):
2012-11-13 17:54:00+0100 [-] [groupcacher] --- <exception caught here> ---
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/plugin.py", line 213, in getPlugins
2012-11-13 17:54:00+0100 [-] [groupcacher]     adapted = interface(plugin, None)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/zope/interface/interface.py", line 631, in _call_conform
2012-11-13 17:54:00+0100 [-] [groupcacher]     return conform(self)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/plugin.py", line 68, in __conform__
2012-11-13 17:54:00+0100 [-] [groupcacher]     return self.load()
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/plugin.py", line 63, in load
2012-11-13 17:54:00+0100 [-] [groupcacher]     return namedAny(self.dropin.moduleName + '.' + self.name)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/reflect.py", line 463, in namedAny
2012-11-13 17:54:00+0100 [-] [groupcacher]     topLevelPackage = _importAndCheckStack(trialname)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/reflect.py", line 400, in _importAndCheckStack
2012-11-13 17:54:00+0100 [-] [groupcacher]     return __import__(importName)
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/plugins/caldav.py", line 17, in <module>
2012-11-13 17:54:00+0100 [-] [groupcacher]     __import__("twext") # install patches before doing anything
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/__init__.py", line 21, in <module>
2012-11-13 17:54:00+0100 [-] [groupcacher]     from twext import patches
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/patches.py", line 78, in <module>
2012-11-13 17:54:00+0100 [-] [groupcacher]     _addBackports()
2012-11-13 17:54:00+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/patches.py", line 73, in _addBackports
2012-11-13 17:54:00+0100 [-] [groupcacher]     tiname + "already loaded, cannot load required backport")
2012-11-13 17:54:00+0100 [-] [groupcacher] exceptions.RuntimeError: twisted.internet.addressalready loaded, cannot load required backport

[2]
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/reflect.py", line 400, in _importAndCheckStack
2012-11-13 17:54:02+0100 [-] [groupcacher]     return __import__(importName)
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/plugins/caldav.py", line 17, in <module>
2012-11-13 17:54:02+0100 [-] [groupcacher]     __import__("twext") # install patches before doing anything
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/__init__.py", line 21, in <module>
2012-11-13 17:54:02+0100 [-] [groupcacher]     from twext import patches
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/patches.py", line 78, in <module>
2012-11-13 17:54:02+0100 [-] [groupcacher]     _addBackports()
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twext/patches.py", line 68, in _addBackports
2012-11-13 17:54:02+0100 [-] [groupcacher]     for submod in backports.iterModules():
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/modules.py", line 128, in iterModules
2012-11-13 17:54:02+0100 [-] [groupcacher]     for placeToLook in self._packagePaths():
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/modules.py", line 423, in _packagePaths
2012-11-13 17:54:02+0100 [-] [groupcacher]     load = self.load()
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/modules.py", line 383, in load
2012-11-13 17:54:02+0100 [-] [groupcacher]     return self.pathEntry.pythonPath.moduleLoader(self.name)
2012-11-13 17:54:02+0100 [-] [groupcacher]   File "/usr/lib/python2.7/dist-packages/twisted/python/reflect.py", line 474, in namedAny
2012-11-13 17:54:02+0100 [-] [groupcacher]     obj = getattr(obj, n)
2012-11-13 17:54:02+0100 [-] [groupcacher] exceptions.AttributeError: 'module' object has no attribute 'backport'

[3]
Python 2.7.3 (default, Sep  9 2012, 17:41:34) 
[GCC 4.7.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> __import__("twext")
<module 'twext' from 'twext/__init__.pyc'>
>>> o= __import__("twext")
>>> ob = getattr(o, 'backport')
>>> print ob
<module 'twext.backport' from 'twext/backport/__init__.pyc'>


More information about the calendarserver-dev mailing list