# HG changeset patch # User David Douard # Date 1494421638 -7200 # Node ID e4ee04d442bec698dfbbc5df676ad5f373ca5588 # Parent 7ce838e67a615ba6626ea68be3ede7c2d399824f [server/utils] update passlib API to 1.7 (closes #17054805) while keeping bw-compat with 1.6 - 2.7 is not available for all distributions, e.g. jessie. The dependancy has been bumped in 6186cd15a46d because of a change in bc9d901cb9e6. We may easily use the appropriate method depending on the version installed. diff -r 7ce838e67a61 -r e4ee04d442be cubicweb.spec --- a/cubicweb.spec Mon Jul 10 11:41:20 2017 +0200 +++ b/cubicweb.spec Wed May 10 15:07:18 2017 +0200 @@ -27,7 +27,7 @@ Requires: %{python}-rql >= 0.34.0 Requires: %{python}-yams >= 0.45.0 Requires: %{python}-logilab-database >= 1.15.0 -Requires: %{python}-passlib => 1.7.0 +Requires: %{python}-passlib Requires: %{python}-lxml Requires: %{python}-twisted-web < 16.0.0 Requires: %{python}-markdown diff -r 7ce838e67a61 -r e4ee04d442be cubicweb/server/utils.py --- a/cubicweb/server/utils.py Mon Jul 10 11:41:20 2017 +0200 +++ b/cubicweb/server/utils.py Wed May 10 15:07:18 2017 +0200 @@ -54,14 +54,15 @@ def to_string(self): return to_hash_str(u'%s$%s' % (self.salt, self.checksum or u'')) - # passlib 1.5 wants calc_checksum, 1.6 wants _calc_checksum - def calc_checksum(self, secret): + def _calc_checksum(self, secret): return md5crypt(secret, self.salt.encode('ascii')).decode('utf-8') - _calc_checksum = calc_checksum _CRYPTO_CTX = CryptContext(['sha512_crypt', CustomMD5Crypt, 'des_crypt', 'ldap_salted_sha1'], deprecated=['cubicwebmd5crypt', 'des_crypt']) +# for bw compat with passlib < 1.7 +if not hasattr(_CRYPTO_CTX, 'hash'): + _CRYPTO_CTX.hash = _CRYPTO_CTX.encrypt verify_and_update = _CRYPTO_CTX.verify_and_update diff -r 7ce838e67a61 -r e4ee04d442be debian/control --- a/debian/control Mon Jul 10 11:41:20 2017 +0200 +++ b/debian/control Wed May 10 15:07:18 2017 +0200 @@ -25,7 +25,7 @@ python-pyramid, python-pyramid-multiauth, python-waitress, - python-passlib (>= 1.7.0), + python-passlib, python-repoze.lru, python-wsgicors, sphinx-common, diff -r 7ce838e67a61 -r e4ee04d442be setup.py --- a/setup.py Mon Jul 10 11:41:20 2017 +0200 +++ b/setup.py Wed May 10 15:07:18 2017 +0200 @@ -199,7 +199,7 @@ 'yams >= 0.45.0', 'lxml', 'logilab-database >= 1.15.0', - 'passlib >= 1.7.0', + 'passlib', 'pytz', 'Markdown', 'unittest2 >= 0.7.0',