From 30edf7e432f1e47a0c5d62dbae33f5cb9399f624 Mon Sep 17 00:00:00 2001 From: huangtianhua Date: Mon, 26 Jul 2021 11:39:12 +0000 Subject: [PATCH] Init python-uhashring package The package python-uhashring is required by OpenStack-W, init it. --- python-uhashring.spec | 80 ++++++++++++++++++++++++++++++++++++++++++ uhashring-2.0.tar.gz | Bin 0 -> 18077 bytes 2 files changed, 80 insertions(+) create mode 100644 python-uhashring.spec create mode 100644 uhashring-2.0.tar.gz diff --git a/python-uhashring.spec b/python-uhashring.spec new file mode 100644 index 0000000..989da75 --- /dev/null +++ b/python-uhashring.spec @@ -0,0 +1,80 @@ +%global _empty_manifest_terminate_build 0 +Name: python-uhashring +Version: 2.0 +Release: 1 +Summary: Full featured consistent hashing python library compatible with ketama. +License: BSD +URL: https://github.com/ultrabug/uhashring +Source0: https://files.pythonhosted.org/packages/1f/91/7ed7c78102d71fe42286deba6965640640bf984d2929d7befabe49d274f9/uhashring-2.0.tar.gz +BuildArch: noarch +%description +uhashring implements consistent hashing in pure Python. + +%package -n python3-uhashring +Summary: Full featured consistent hashing python library compatible with ketama. +Provides: python-uhashring +# Base build requires +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pbr +BuildRequires: python3-pip +BuildRequires: python3-wheel +BuildRequires: python3-pytest +BuildRequires: python3-memcached +%description -n python3-uhashring +uhashring implements consistent hashing in pure Python. + +%package help +Summary: Full featured consistent hashing python library compatible with ketama. +Provides: python3-uhashring-doc +%description help +uhashring implements consistent hashing in pure Python. + +%prep +%autosetup -n uhashring-2.0 -S git + +%build +%py3_build + +%install +%py3_install + +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%check +pytest + +%files -n python3-uhashring -f filelist.lst + +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Jul 26 2021 huangtianhua - 2.0-1 +- Package Spec generate diff --git a/uhashring-2.0.tar.gz b/uhashring-2.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..04694babe6600797395d6c3bb6d39a9de2185203 GIT binary patch literal 18077 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 KQYEA%CH@0gvENJp literal 0 HcmV?d00001 -- Gitee