commit: 14e42da7759f4b774dfd521de69728cfd805678f Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Tue May 26 15:29:27 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Tue May 26 16:36:03 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14e42da7
dev-python/passlib: Port to py39 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/passlib/files/passlib-1.7.2-py39.patch | 19 +++++++++++++++++++ dev-python/passlib/passlib-1.7.2.ebuild | 11 ++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/dev-python/passlib/files/passlib-1.7.2-py39.patch b/dev-python/passlib/files/passlib-1.7.2-py39.patch new file mode 100644 index 00000000000..c5dbc208a88 --- /dev/null +++ b/dev-python/passlib/files/passlib-1.7.2-py39.patch @@ -0,0 +1,19 @@ +diff --git a/passlib/utils/__init__.py b/passlib/utils/__init__.py +index 69b55e5..d18ec50 100644 +--- a/passlib/utils/__init__.py ++++ b/passlib/utils/__init__.py +@@ -807,7 +807,13 @@ else: + + if isinstance(hash, bytes): + hash = hash.decode("ascii") +- result = _crypt(secret, hash) ++ try: ++ result = _crypt(secret, hash) ++ except OSError: ++ # new in py39 -- per https://bugs.python.org/issue39289, ++ # crypt() now throws OSError for various things, mainly unknown hash formats ++ # translating that to None for now (may revise safe_crypt behavior in future) ++ return None + if PYPY and isinstance(result, bytes): + result = result.decode("utf-8") + if not result or result[0:1] in _invalid_prefixes: diff --git a/dev-python/passlib/passlib-1.7.2.ebuild b/dev-python/passlib/passlib-1.7.2.ebuild index aaa2485c015..da3cd45d5be 100644 --- a/dev-python/passlib/passlib-1.7.2.ebuild +++ b/dev-python/passlib/passlib-1.7.2.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python{2_7,3_{6,7,8}} pypy3 ) +PYTHON_COMPAT=( python{2_7,3_{6,7,8,9}} pypy3 ) inherit distutils-r1 @@ -18,11 +18,16 @@ IUSE="+bcrypt doc +scrypt +totp" RDEPEND="bcrypt? ( dev-python/bcrypt[${PYTHON_USEDEP}] ) totp? ( dev-python/cryptography[${PYTHON_USEDEP}] ) scrypt? ( dev-python/scrypt[${PYTHON_USEDEP}] )" -DEPEND="${RDEPEND} - dev-python/setuptools[${PYTHON_USEDEP}]" +BDEPEND=" + test? ( + dev-python/bcrypt[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/scrypt[${PYTHON_USEDEP}] + )" PATCHES=( "${FILESDIR}/passlib-1.7.2-pypy3.patch" + "${FILESDIR}/passlib-1.7.2-py39.patch" ) distutils_enable_tests nose