From b8e6a4c963c9fed7cc18ce7795b196c6698bf90c Mon Sep 17 00:00:00 2001 From: Wong Hoi Sing Edison Date: Sun, 7 Jan 2024 12:25:25 +0800 Subject: [PATCH] alvistack/1.7.4 git clean -xdf tar zcvf ../python-passlib_1.7.4.orig.tar.gz --exclude=.git . debuild -uc -us cp python-passlib.spec ../python-passlib_1.7.4-1.spec cp ../python*-passlib*1.7.4*.{gz,xz,spec,dsc} /osc/home\:alvistack/python-libs-passlib-1.7.4/ rm -rf ../python*-passlib*1.7.4*.* See https://foss.heptapod.net/python-libs/passlib/-/issues/190 See https://github.com/pyca/bcrypt/issues/684 Signed-off-by: Wong Hoi Sing Edison --- .gitignore | 5 + debian/.gitignore | 6 ++ debian/changelog | 5 + debian/control | 30 ++++++ debian/copyright | 21 ++++ debian/python3-passlib.install | 1 + debian/python3-passlib.lintian-overrides | 4 + debian/rules | 15 +++ debian/source/format | 1 + debian/source/lintian-overrides | 5 + passlib/handlers/bcrypt.py | 2 +- python-passlib.spec | 125 +++++++++++++++++++++++ setup.cfg | 4 + setup.py | 2 +- 14 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 debian/.gitignore create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/python3-passlib.install create mode 100644 debian/python3-passlib.lintian-overrides create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/source/lintian-overrides create mode 100644 python-passlib.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53fd4f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.egg-info +*.orig +*.rej +.pybuild/ +__pycache__ diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 index 0000000..9a85b82 --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1,6 @@ +*.substvars +*debhelper* +.debhelper +files +python3-passlib +tmp diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..e078800 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +python-passlib (100:1.7.4-1) UNRELEASED; urgency=medium + + * https://github.com/python-libs/passlib/releases/tag/1.7.4 + + -- Wong Hoi Sing Edison Sun, 07 Jan 2024 12:24:45 +0800 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..c11d601 --- /dev/null +++ b/debian/control @@ -0,0 +1,30 @@ +Source: python-passlib +Section: python +Priority: optional +Standards-Version: 4.5.0 +Maintainer: Wong Hoi Sing Edison +Homepage: https://foss.heptapod.net/python-libs/passlib/-/tags +Vcs-Browser: https://github.com/alvistack/python-libs-passlib +Vcs-Git: https://github.com/alvistack/python-libs-passlib.git +Build-Depends: + debhelper, + debhelper-compat (= 10), + dh-python, + fdupes, + python3-dev, + python3-setuptools, + +Package: python3-passlib +Architecture: all +Description: Comprehensive password hashing framework + Passlib is a password hashing library for Python 3, which provides + cross-platform implementations of over 30 password hashing algorithms, + as well as a framework for managing existing password hashes. It's + designed to be useful for a wide range of tasks, from verifying a hash + found in /etc/shadow, to providing full-strength password hashing for + multi-user application. +Depends: + ${misc:Depends}, + ${shlibs:Depends}, + ${python3:Depends}, + python3, diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..12900b4 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,21 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ + +Files: debian/* +Copyright: 2024 Wong Hoi Sing Edison +License: Apache-2.0 + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + The complete text of the Apache version 2.0 license + can be found in "/usr/share/common-licenses/Apache-2.0". diff --git a/debian/python3-passlib.install b/debian/python3-passlib.install new file mode 100644 index 0000000..e3da3e7 --- /dev/null +++ b/debian/python3-passlib.install @@ -0,0 +1 @@ +usr/lib/python*/*-packages/* diff --git a/debian/python3-passlib.lintian-overrides b/debian/python3-passlib.lintian-overrides new file mode 100644 index 0000000..3a09b6b --- /dev/null +++ b/debian/python3-passlib.lintian-overrides @@ -0,0 +1,4 @@ +python3-passlib: copyright-without-copyright-notice +python3-passlib: initial-upload-closes-no-bugs +python3-passlib: no-manual-page +python3-passlib: zero-byte-file-in-doc-directory diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..fcaa45e --- /dev/null +++ b/debian/rules @@ -0,0 +1,15 @@ +#!/usr/bin/make -f + +SHELL := /bin/bash + +override_dh_auto_install: + dh_auto_install --destdir=debian/tmp + find debian/tmp/usr/lib/python*/*-packages -type f -name '*.pyc' -exec rm -rf {} \; + fdupes -qnrps debian/tmp/usr/lib/python*/*-packages + +override_dh_auto_test: + +override_dh_auto_clean: + +%: + dh $@ --buildsystem=pybuild --with python3 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 0000000..ecac956 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,5 @@ +python-passlib source: file-without-copyright-information +python-passlib source: no-debian-changes +python-passlib source: source-contains-prebuilt-windows-binary +python-passlib source: source-is-missing +python-passlib source: source-package-encodes-python-version diff --git a/passlib/handlers/bcrypt.py b/passlib/handlers/bcrypt.py index b83b110..60ad110 100644 --- a/passlib/handlers/bcrypt.py +++ b/passlib/handlers/bcrypt.py @@ -617,7 +617,7 @@ def _load_backend_mixin(mixin_cls, name, dryrun): except ImportError: # pragma: no cover return False try: - version = _bcrypt.__about__.__version__ + version = getattr(getattr(_bcrypt, '__about__', _bcrypt), '__version__', '') except: log.warning("(trapped) error reading bcrypt version", exc_info=True) version = '' diff --git a/python-passlib.spec b/python-passlib.spec new file mode 100644 index 0000000..999c5fa --- /dev/null +++ b/python-passlib.spec @@ -0,0 +1,125 @@ +# Copyright 2024 Wong Hoi Sing Edison +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +%global debug_package %{nil} + +Name: python-passlib +Epoch: 100 +Version: 1.7.4 +Release: 1%{?dist} +BuildArch: noarch +Summary: Comprehensive password hashing framework +License: BSD-3-Clause +URL: https://foss.heptapod.net/python-libs/passlib/-/tags +Source0: %{name}_%{version}.orig.tar.gz +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildRequires: python3-devel +BuildRequires: python3-setuptools + +%description +Passlib is a password hashing library for Python 3, which provides +cross-platform implementations of over 30 password hashing algorithms, +as well as a framework for managing existing password hashes. It's +designed to be useful for a wide range of tasks, from verifying a hash +found in /etc/shadow, to providing full-strength password hashing for +multi-user application. + +%prep +%autosetup -T -c -n %{name}_%{version}-%{release} +tar -zx -f %{S:0} --strip-components=1 -C . + +%build +%py3_build + +%install +%py3_install +find %{buildroot}%{python3_sitelib} -type f -name '*.pyc' -exec rm -rf {} \; +fdupes -qnrps %{buildroot}%{python3_sitelib} + +%check + +%if 0%{?suse_version} > 1500 +%package -n python%{python3_version_nodots}-passlib +Summary: Comprehensive password hashing framework +Requires: python3 +Provides: python3-passlib = %{epoch}:%{version}-%{release} +Provides: python3dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}dist(passlib) = %{epoch}:%{version}-%{release} + +%description -n python%{python3_version_nodots}-passlib +Passlib is a password hashing library for Python 3, which provides +cross-platform implementations of over 30 password hashing algorithms, +as well as a framework for managing existing password hashes. It's +designed to be useful for a wide range of tasks, from verifying a hash +found in /etc/shadow, to providing full-strength password hashing for +multi-user application. + +%files -n python%{python3_version_nodots}-passlib +%license LICENSE +%{python3_sitelib}/* +%endif + +%if 0%{?sle_version} > 150000 +%package -n python3-passlib +Summary: Comprehensive password hashing framework +Requires: python3 +Provides: python3-passlib = %{epoch}:%{version}-%{release} +Provides: python3dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}dist(passlib) = %{epoch}:%{version}-%{release} + +%description -n python3-passlib +Passlib is a password hashing library for Python 3, which provides +cross-platform implementations of over 30 password hashing algorithms, +as well as a framework for managing existing password hashes. It's +designed to be useful for a wide range of tasks, from verifying a hash +found in /etc/shadow, to providing full-strength password hashing for +multi-user application. + +%files -n python3-passlib +%license LICENSE +%{python3_sitelib}/* +%endif + +%if !(0%{?suse_version} > 1500) && !(0%{?sle_version} > 150000) +%package -n python3-passlib +Summary: Comprehensive password hashing framework +Requires: python3 +Provides: python3-passlib = %{epoch}:%{version}-%{release} +Provides: python3dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version}dist(passlib) = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}-passlib = %{epoch}:%{version}-%{release} +Provides: python%{python3_version_nodots}dist(passlib) = %{epoch}:%{version}-%{release} + +%description -n python3-passlib +Passlib is a password hashing library for Python 3, which provides +cross-platform implementations of over 30 password hashing algorithms, +as well as a framework for managing existing password hashes. It's +designed to be useful for a wide range of tasks, from verifying a hash +found in /etc/shadow, to providing full-strength password hashing for +multi-user application. + +%files -n python3-passlib +%license LICENSE +%{python3_sitelib}/* +%endif + +%changelog diff --git a/setup.cfg b/setup.cfg index 4823ac9..0e6e24d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,3 +7,7 @@ upload_dir = build/sphinx/html [bdist_wheel] universal = 1 +[egg_info] +tag_build = +tag_date = 0 + diff --git a/setup.py b/setup.py index 5310d4f..5994b01 100644 --- a/setup.py +++ b/setup.py @@ -145,7 +145,7 @@ from passlib import __version__ as version # append hg revision to builds -stamp_build = True # NOTE: modified by stamp_distutils_output() +stamp_build = False if stamp_build: from passlib._setup.stamp import ( as_bool, append_hg_revision, stamp_distutils_output,