diff -Nru zc.resourcelibrary-1.3.2/CHANGES.txt zc.resourcelibrary-1.3.4/CHANGES.txt --- zc.resourcelibrary-1.3.2/CHANGES.txt 2010-08-16 20:16:08.000000000 +0000 +++ zc.resourcelibrary-1.3.4/CHANGES.txt 2012-01-20 20:29:32.000000000 +0000 @@ -2,6 +2,25 @@ CHANGES ======= +1.3.4 (2012-01-20) +------------------ + +- Register adapters with getSiteManager rather than getGlobalSiteManager. This + allows registering resource libraries in non-global sites. For detais see: + + - https://mail.zope.org/pipermail/zope-dev/2010-March/039657.html + - http://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/narr.html#using-broken-zcml-directives + +- Raise NotImplementedError if we find that a second ZCML declaration would + change the global library_info dict in a way that may (depending on ZCML + ordering) break applications at runtime. These errors were pretty hard to + debug. + +- Remove unneeded test dependencies on ``zope.app.authentication`` and + ``zope.app.securitypolicy``. + +- Remove dependency on ``zope.app.pagetemplate``. + 1.3.2 (2010-08-16) ------------------ @@ -12,7 +31,7 @@ This makes directives that simply declare dependencies on other libraries work again. -- Add missing depedency on zope.app.pagetemplate, clean up unused +- Add missing depedency on ``zope.app.pagetemplate``, clean up unused imports and whitespace. 1.3.1 (2010-03-24) diff -Nru zc.resourcelibrary-1.3.2/debian/changelog zc.resourcelibrary-1.3.4/debian/changelog --- zc.resourcelibrary-1.3.2/debian/changelog 2011-12-31 08:17:10.000000000 +0000 +++ zc.resourcelibrary-1.3.4/debian/changelog 2012-01-24 15:36:38.000000000 +0000 @@ -1,3 +1,11 @@ +zc.resourcelibrary (1.3.4-0ubuntu1) precise; urgency=low + + * New upstream release. + * debian/copyright: update to latest dep5 format. + * debian/pydist-overrides: remove, we use van.pydeb. + + -- Gediminas Paulauskas Tue, 24 Jan 2012 17:35:24 +0200 + zc.resourcelibrary (1.3.2-0ubuntu4) precise; urgency=low * Rebuild to drop python2.6 dependencies. diff -Nru zc.resourcelibrary-1.3.2/debian/control zc.resourcelibrary-1.3.4/debian/control --- zc.resourcelibrary-1.3.2/debian/control 2011-06-28 10:12:04.000000000 +0000 +++ zc.resourcelibrary-1.3.4/debian/control 2012-01-24 15:37:12.000000000 +0000 @@ -3,8 +3,10 @@ Priority: extra Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Gediminas Paulauskas -Build-Depends: debhelper (>= 7), python-all (>= 2.6.6-3), - python-setuptools (>= 0.6b3), python-van.pydeb (>= 1.3.0-4) +Build-Depends: debhelper (>= 7), + python-all (>= 2.6.6-3), + python-setuptools, + python-van.pydeb (>= 1.3.0-4) Standards-Version: 3.9.2 X-Python-Version: >= 2.5 diff -Nru zc.resourcelibrary-1.3.2/debian/copyright zc.resourcelibrary-1.3.4/debian/copyright --- zc.resourcelibrary-1.3.2/debian/copyright 2011-06-28 10:12:04.000000000 +0000 +++ zc.resourcelibrary-1.3.4/debian/copyright 2012-01-24 15:35:44.000000000 +0000 @@ -1,11 +1,11 @@ -Format-Specification: http://dep.debian.net/deps/dep5/ -Name: zc.resourcelibrary -Maintainer: Zope Foundation and Contributors +Format: http://dep.debian.net/deps/dep5/ +Upstream-Name: zc.resourcelibrary +Upstream-Contact: Zope Foundation and Contributors Source: http://pypi.python.org/pypi/zc.resourcelibrary Files: * Copyright: (c) 2001, 2002, 2004, 2006 Zope Foundation and Contributors. -License: ZPL-2.1 +License: Zope-2.1 Zope Public License (ZPL) Version 2.1 . A copyright notice accompanies this license document that identifies the diff -Nru zc.resourcelibrary-1.3.2/debian/pydist-overrides zc.resourcelibrary-1.3.4/debian/pydist-overrides --- zc.resourcelibrary-1.3.2/debian/pydist-overrides 2011-06-28 10:12:04.000000000 +0000 +++ zc.resourcelibrary-1.3.4/debian/pydist-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -setuptools python-setuptools -zope.app.pagetemplate python-zope.app.pagetemplate -zope.app.publication python-zope.app.publication -zope.browserresource python-zope.browserresource -zope.component python-zope.component -zope.configuration python-zope.configuration -zope.interface python-zope.interface -zope.publisher python-zope.publisher -zope.security python-zope.security -zope.tales python-zope.tales -zope.traversing python-zope.traversing diff -Nru zc.resourcelibrary-1.3.2/debian/tests/control zc.resourcelibrary-1.3.4/debian/tests/control --- zc.resourcelibrary-1.3.2/debian/tests/control 2011-06-28 10:12:04.000000000 +0000 +++ zc.resourcelibrary-1.3.4/debian/tests/control 2012-01-24 15:35:44.000000000 +0000 @@ -1,3 +1,3 @@ Tests: all Features: no-build-needed -Depends: @, python-zope.app.authentication, python-zope.app.securitypolicy, python-zope.app.testing, python-zope.app.zcmlfiles, python-zope.pagetemplate, python-zope.securitypolicy, python-zope.testbrowser, python-zope.testing +Depends: @, python-zope.testrunner, python-zope.app.testing, python-zope.app.zcmlfiles, python-zope.pagetemplate, python-zope.securitypolicy, python-zope.testbrowser, python-zope.testing diff -Nru zc.resourcelibrary-1.3.2/PKG-INFO zc.resourcelibrary-1.3.4/PKG-INFO --- zc.resourcelibrary-1.3.2/PKG-INFO 2010-08-16 20:18:20.000000000 +0000 +++ zc.resourcelibrary-1.3.4/PKG-INFO 2012-01-20 20:30:23.000000000 +0000 @@ -1,6 +1,6 @@ -Metadata-Version: 1.0 +Metadata-Version: 1.1 Name: zc.resourcelibrary -Version: 1.3.2 +Version: 1.3.4 Summary: Post-rendering Resource Inclusion Home-page: http://pypi.python.org/pypi/zc.resourcelibrary Author: Zope Foundation and Contributors @@ -408,7 +408,7 @@ ... ... ... - ... """) + ... """, clear=['my-lib']) The factory will be called with a source directory, a security checker and a name. We've created a class that implements a resource @@ -463,6 +463,25 @@ CHANGES ======= + 1.3.4 (2012-01-20) + ------------------ + + - Register adapters with getSiteManager rather than getGlobalSiteManager. This + allows registering resource libraries in non-global sites. For detais see: + + - https://mail.zope.org/pipermail/zope-dev/2010-March/039657.html + - http://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/narr.html#using-broken-zcml-directives + + - Raise NotImplementedError if we find that a second ZCML declaration would + change the global library_info dict in a way that may (depending on ZCML + ordering) break applications at runtime. These errors were pretty hard to + debug. + + - Remove unneeded test dependencies on ``zope.app.authentication`` and + ``zope.app.securitypolicy``. + + - Remove dependency on ``zope.app.pagetemplate``. + 1.3.2 (2010-08-16) ------------------ @@ -473,7 +492,7 @@ This makes directives that simply declare dependencies on other libraries work again. - - Add missing depedency on zope.app.pagetemplate, clean up unused + - Add missing depedency on ``zope.app.pagetemplate``, clean up unused imports and whitespace. 1.3.1 (2010-03-24) diff -Nru zc.resourcelibrary-1.3.2/setup.py zc.resourcelibrary-1.3.4/setup.py --- zc.resourcelibrary-1.3.2/setup.py 2010-08-16 20:17:33.000000000 +0000 +++ zc.resourcelibrary-1.3.4/setup.py 2012-01-20 20:29:32.000000000 +0000 @@ -22,7 +22,7 @@ return open(os.path.join(os.path.dirname(__file__), *rnames)).read() setup(name='zc.resourcelibrary', - version = '1.3.2', + version='1.3.4', author='Zope Foundation and Contributors', author_email='zope-dev@zope.org', description='Post-rendering Resource Inclusion', @@ -50,9 +50,7 @@ package_dir = {'': 'src'}, namespace_packages=['zc'], extras_require=dict( - test=['zope.app.authentication', - 'zope.app.securitypolicy', - 'zope.app.testing', + test=['zope.app.testing', 'zope.app.zcmlfiles', 'zope.pagetemplate', 'zope.securitypolicy', @@ -60,8 +58,8 @@ 'zope.testing', ]), install_requires=['setuptools', - 'zope.app.pagetemplate', 'zope.app.publication', + 'zope.browserpage', 'zope.browserresource', 'zope.component', 'zope.configuration', diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/configure.zcml zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/configure.zcml --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/configure.zcml 2010-07-29 13:52:25.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/configure.zcml 2012-01-20 20:29:32.000000000 +0000 @@ -1,12 +1,17 @@ - + + ... ... - ... """) + ... """, clear=['my-lib']) The factory will be called with a source directory, a security checker and a name. We've created a class that implements a resource diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations_overrides.zcml zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations_overrides.zcml --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations_overrides.zcml 1970-01-01 00:00:00.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations_overrides.zcml 2012-01-20 20:29:32.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations.txt zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations.txt --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations.txt 1970-01-01 00:00:00.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations.txt 2012-01-20 20:29:32.000000000 +0000 @@ -0,0 +1,62 @@ +It used to be that this configuration would result in wierd errors later as the +global library_info dict would depend on the order declarations appeared in the +ZCML. + +Now it just errors faster: + + >>> zcml(""" + ... + ... + ... + ... + ... + ... + ... """) + Traceback (most recent call last): + ... + ZopeXMLConfigurationError:... + NotImplementedError: Can't cope with 2 different registrations of the same library: some-library ([], []) ([], [u'1.js']) + +This is what getIncluded would have returned if the above had not errored (it +is wrong as includeOverrides should have take precedence): + + >>> from zc.resourcelibrary import getIncluded + >>> getIncluded("some-library") # doctest: +SKIP + [u'included.js', u'included.css'] + +However we work if you load up the same ZCML file twice (as the information in +library_info is exactly the same): + + >>> zcml(""" + ... + ... + ... + ... + ... + ... """) + >>> zcml(""" + ... + ... + ... + ... + ... + ... """) + +The correct result from getIncluded is: + + >>> getIncluded("some-library") + [u'1.js'] diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations.zcml zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations.zcml --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/duplicate_declarations.zcml 1970-01-01 00:00:00.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/duplicate_declarations.zcml 2012-01-20 20:29:32.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + + + diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/ftesting.zcml zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/ftesting.zcml --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/ftesting.zcml 2010-08-16 19:31:15.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/ftesting.zcml 2012-01-20 20:29:32.000000000 +0000 @@ -8,7 +8,6 @@ - diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/localsite.txt zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/localsite.txt --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/localsite.txt 1970-01-01 00:00:00.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/localsite.txt 2012-01-20 20:29:32.000000000 +0000 @@ -0,0 +1,27 @@ +Like most zope.component declarations, resource libraries are registered +against the current, not global site manager: + + >>> class DummySiteManager: + ... def registerAdapter(self, *args, **kw): + ... print 'registering our adapter' + >>> class DummySite: + ... def getSiteManager(self): + ... return DummySiteManager() + + >>> zcml(""" + ... + ... + ... + ... + ... + ... + ... + ... """, site=DummySite()) + registering our adapter + +Clean Up: + + >>> import zope.component.hooks + >>> zope.component.hooks.setSite(None) diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/tests.py zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/tests.py --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/tests/tests.py 2010-08-16 18:45:11.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/tests/tests.py 2012-01-20 20:29:32.000000000 +0000 @@ -15,6 +15,7 @@ $Id: ntests.py 3330 2005-09-09 23:05:34Z jim $ """ from StringIO import StringIO +from zc.resourcelibrary import resourcelibrary from zc.resourcelibrary import publication from zc.resourcelibrary import tal from zope.app.testing import functional @@ -54,7 +55,10 @@ #### testing framework #### -def zcml(s, execute=True): +def zcml(s, execute=True, clear=(), site=None): + zope.component.hooks.setSite(site) + for i in clear: + del resourcelibrary.library_info[i] from zope.app.appsetup.appsetup import __config_context as context try: xmlconfig.string(s, context, execute=execute) @@ -123,8 +127,10 @@ def test_suite(): suite = functional.FunctionalDocFileSuite( '../README.txt', + 'duplicate_declarations.txt', + 'localsite.txt', globs={'zcml': zcml, 'zpt': zpt}, - optionflags=doctest.NORMALIZE_WHITESPACE+doctest.ELLIPSIS, + optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS, ) suite.layer = ResourceLibraryFunctionalLayer return unittest.TestSuite(( diff -Nru zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/zcml.py zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/zcml.py --- zc.resourcelibrary-1.3.2/src/zc/resourcelibrary/zcml.py 2010-08-16 19:13:46.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc/resourcelibrary/zcml.py 2012-01-20 20:29:32.000000000 +0000 @@ -16,7 +16,7 @@ from zope.browserresource.directory import DirectoryResourceFactory from zope.browserresource.metadirectives import IBasicResourceInformation from zope.browserresource.metaconfigure import allowed_names -from zope.component import getGlobalSiteManager +from zope.component import getSiteManager from zope.configuration.exceptions import ConfigurationError from zope.interface import Interface from zope.publisher.interfaces.browser import IBrowserRequest @@ -80,7 +80,7 @@ raise ConfigurationError( 'Resource library "%s" has unsatisfied dependency on "%s".' % (name, dep)) - getGlobalSiteManager().registerAdapter( + getSiteManager().registerAdapter( factory, required, provided, adapter_name, info) @@ -98,6 +98,7 @@ self.checker = NamesChecker(allowed_names, permission) # make note of the library in a global registry + self.old_library_info = library_info.get(name) library_info[name] = LibraryInfo() library_info[name].required.extend(require) @@ -126,3 +127,17 @@ args = (self.name, library_info[self.name].required, (self.layer,), Interface, self.name, factory, _context.info), ) + + def __call__(self): + if self.old_library_info is None: + return + curr_li = library_info[self.name] + if self.old_library_info.included != curr_li.included or \ + self.old_library_info.required != curr_li.required: + raise NotImplementedError( + "Can't cope with 2 different registrations of the same " + "library: %s (%s, %s) (%s, %s)" % (self.name, + self.old_library_info.required, + self.old_library_info.included, + curr_li.required, + curr_li.included)) diff -Nru zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/PKG-INFO zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/PKG-INFO --- zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/PKG-INFO 2010-08-16 20:18:20.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/PKG-INFO 2012-01-20 20:30:17.000000000 +0000 @@ -1,6 +1,6 @@ -Metadata-Version: 1.0 +Metadata-Version: 1.1 Name: zc.resourcelibrary -Version: 1.3.2 +Version: 1.3.4 Summary: Post-rendering Resource Inclusion Home-page: http://pypi.python.org/pypi/zc.resourcelibrary Author: Zope Foundation and Contributors @@ -408,7 +408,7 @@ ... ... ... - ... """) + ... """, clear=['my-lib']) The factory will be called with a source directory, a security checker and a name. We've created a class that implements a resource @@ -463,6 +463,25 @@ CHANGES ======= + 1.3.4 (2012-01-20) + ------------------ + + - Register adapters with getSiteManager rather than getGlobalSiteManager. This + allows registering resource libraries in non-global sites. For detais see: + + - https://mail.zope.org/pipermail/zope-dev/2010-March/039657.html + - http://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/narr.html#using-broken-zcml-directives + + - Raise NotImplementedError if we find that a second ZCML declaration would + change the global library_info dict in a way that may (depending on ZCML + ordering) break applications at runtime. These errors were pretty hard to + debug. + + - Remove unneeded test dependencies on ``zope.app.authentication`` and + ``zope.app.securitypolicy``. + + - Remove dependency on ``zope.app.pagetemplate``. + 1.3.2 (2010-08-16) ------------------ @@ -473,7 +492,7 @@ This makes directives that simply declare dependencies on other libraries work again. - - Add missing depedency on zope.app.pagetemplate, clean up unused + - Add missing depedency on ``zope.app.pagetemplate``, clean up unused imports and whitespace. 1.3.1 (2010-03-24) diff -Nru zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/requires.txt zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/requires.txt --- zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/requires.txt 2010-08-16 20:18:20.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/requires.txt 2012-01-20 20:30:17.000000000 +0000 @@ -1,6 +1,6 @@ setuptools -zope.app.pagetemplate zope.app.publication +zope.browserpage zope.browserresource zope.component zope.configuration @@ -11,8 +11,6 @@ zope.traversing [test] -zope.app.authentication -zope.app.securitypolicy zope.app.testing zope.app.zcmlfiles zope.pagetemplate diff -Nru zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/SOURCES.txt zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/SOURCES.txt --- zc.resourcelibrary-1.3.2/src/zc.resourcelibrary.egg-info/SOURCES.txt 2010-08-16 20:18:20.000000000 +0000 +++ zc.resourcelibrary-1.3.4/src/zc.resourcelibrary.egg-info/SOURCES.txt 2012-01-20 20:30:17.000000000 +0000 @@ -2,7 +2,6 @@ COPYRIGHT.txt LICENSE.txt README.txt -ZopePublicLicense.txt bootstrap.py buildout.cfg setup.py @@ -24,7 +23,11 @@ src/zc/resourcelibrary/tal.py src/zc/resourcelibrary/zcml.py src/zc/resourcelibrary/tests/__init__.py +src/zc/resourcelibrary/tests/duplicate_declarations.txt +src/zc/resourcelibrary/tests/duplicate_declarations.zcml +src/zc/resourcelibrary/tests/duplicate_declarations_overrides.zcml src/zc/resourcelibrary/tests/ftesting.zcml +src/zc/resourcelibrary/tests/localsite.txt src/zc/resourcelibrary/tests/test_template_1.pt src/zc/resourcelibrary/tests/test_template_2.pt src/zc/resourcelibrary/tests/test_template_3.pt diff -Nru zc.resourcelibrary-1.3.2/ZopePublicLicense.txt zc.resourcelibrary-1.3.4/ZopePublicLicense.txt --- zc.resourcelibrary-1.3.2/ZopePublicLicense.txt 2010-03-03 22:43:18.000000000 +0000 +++ zc.resourcelibrary-1.3.4/ZopePublicLicense.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -Zope Public License (ZPL) Version 2.1 -------------------------------------- - -A copyright notice accompanies this license document that -identifies the copyright holders. - -This license has been certified as open source. It has also -been designated as GPL compatible by the Free Software -Foundation (FSF). - -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the -following conditions are met: - -1. Redistributions in source code must retain the - accompanying copyright notice, this list of conditions, - and the following disclaimer. - -2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -3. Names of the copyright holders must not be used to - endorse or promote products derived from this software - without prior written permission from the copyright - holders. - -4. The right to distribute this software or to use it for - any purpose does not give you the right to use - Servicemarks (sm) or Trademarks (tm) of the copyright - holders. Use of them is covered by separate agreement - with the copyright holders. - -5. If any files are modified, you must cause the modified - files to carry prominent notices stating that you changed - the files and the date of any change. - -Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' - AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT - NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN - NO EVENT SHALL THE COPYRIGHT HOLDERS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.