Broken ZDiscussions-0.5.3 on 2.2.1b1: missing comma...
I tried to install ZDiscussions (ZUBB) 0.5.3 it on a Zope 2.2.1b1 and got a broken product. The traceback I got at Zope startup was: 2000-08-21T01:44:09 ERROR(200) Zope Couldn't import Products.ZDBase Traceback (innermost last): File /usr/local/lib/Zope-2.2.1b1/lib/python/OFS/Application.py, line 396, in import_products (Object: string) File /var/lib/zope/an/Products/ZDBase/__init__.py, line 86, in ? File /var/lib/zope/an/Products/ZDBase/ZDiscussions.py, line 106, in ? File /usr/local/lib/Zope-2.2.1b1/lib/python/App/class_init.py, line 109, in default__class_init__ (Object: ZDItem) File /usr/local/lib/Zope-2.2.1b1/lib/python/AccessControl/Permission.py, line 204, in registerPermissions ValueError: unpack sequence of wrong size The problem seems to be a missing comma in the definition of__ac_permissions__ in class ZDItem (file ZDiscussions.py): __ac_permissions__ = ( ('Manage properties', ('manage_addProperty', 'manage_editProperties', 'manage_delProperties', 'manage_changeProperties',)) ) Since this is lacking a comma before the last parenthesis, outer parentheses are "dropped" and it becomes as a two-element tuple: ((X,methods)) -> (X,methods) that is, a "naked" permission, instead of the intended one-element (one permission) tuple ((X,methods),). In fact, ac_permissions_ was already defined like this in ZDiscussions-0.2.0... I wonder if this was clearly noticed before 2.2.1b1, since line 204 of Permission.py (see traceback above) belongs to a new function called `registerPermissions'. This function begins with for setting in permissions: if _registerdPermission(setting[0]): continue if len(setting)==2: perm, methods = setting default = defaultDefault else: perm, methods, default = setting _registeredPermissions[perm]=1 and with the bug above, its easy to see the mess resulting when `permissions' has the above __ac_permissions__ value. Apart from this, is ZDiscussions (ZUBB) 0.5.3 fully compatible with Zope 2.2.1? I just restarted Zope after adding the comma and the product is no longer broken. Perhaps I can do some testing now... Best regards -- jmce: +351 919838775 ~ http://artenumerica.com/ ~ http://artenumerica.org/
Yup... Ethan picked up that problem. It has been identified and will be fixed in the new release. Thanks, J
From: J M Cerqueira Esteves <jmce@artenumerica.com> Organization: Arte Numerica Date: Mon, 21 Aug 2000 12:28:44 +0100 To: zope@zope.org Cc: Jose Manuel Sebrosa <sebrosa@artenumerica.com> Subject: [Zope] Broken ZDiscussions-0.5.3 on 2.2.1b1: missing comma...
I tried to install ZDiscussions (ZUBB) 0.5.3 it on a Zope 2.2.1b1 and got a broken product. The traceback I got at Zope startup was:
2000-08-21T01:44:09 ERROR(200) Zope Couldn't import Products.ZDBase Traceback (innermost last): File /usr/local/lib/Zope-2.2.1b1/lib/python/OFS/Application.py, line 396, in import_products (Object: string) File /var/lib/zope/an/Products/ZDBase/__init__.py, line 86, in ? File /var/lib/zope/an/Products/ZDBase/ZDiscussions.py, line 106, in ? File /usr/local/lib/Zope-2.2.1b1/lib/python/App/class_init.py, line 109, in default__class_init__ (Object: ZDItem) File /usr/local/lib/Zope-2.2.1b1/lib/python/AccessControl/Permission.py, line 204, in registerPermissions ValueError: unpack sequence of wrong size
The problem seems to be a missing comma in the definition of__ac_permissions__ in class ZDItem (file ZDiscussions.py):
__ac_permissions__ = ( ('Manage properties', ('manage_addProperty', 'manage_editProperties', 'manage_delProperties', 'manage_changeProperties',)) )
Since this is lacking a comma before the last parenthesis, outer parentheses are "dropped" and it becomes as a two-element tuple: ((X,methods)) -> (X,methods) that is, a "naked" permission, instead of the intended one-element (one permission) tuple ((X,methods),).
In fact, ac_permissions_ was already defined like this in ZDiscussions-0.2.0...
I wonder if this was clearly noticed before 2.2.1b1, since line 204 of Permission.py (see traceback above) belongs to a new function called `registerPermissions'. This function begins with
for setting in permissions: if _registerdPermission(setting[0]): continue if len(setting)==2: perm, methods = setting default = defaultDefault else: perm, methods, default = setting _registeredPermissions[perm]=1
and with the bug above, its easy to see the mess resulting when `permissions' has the above __ac_permissions__ value.
Apart from this, is ZDiscussions (ZUBB) 0.5.3 fully compatible with Zope 2.2.1? I just restarted Zope after adding the comma and the product is no longer broken. Perhaps I can do some testing now...
Best regards -- jmce: +351 919838775 ~ http://artenumerica.com/ ~ http://artenumerica.org/
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
participants (2)
-
J M Cerqueira Esteves -
J. Atwood