From 300b3a3c308e7fd0571a29aeacb2f9e2a9911034 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 19:36:08 +0000 Subject: [PATCH] import UBI pyxattr-0.7.2-14.el10 --- .gitignore | 2 +- .pyxattr.metadata | 1 - SOURCES/0001-use-Py_ssize_t.patch | 127 ----------- ...add-workaround-for-undefined-ENOATTR.patch | 31 --- key.asc | 75 ++++++ pyxattr-0.7.2.tar.gz.asc | 16 ++ SPECS/pyxattr.spec => pyxattr.spec | 215 ++++++++++-------- sources | 1 + 8 files changed, 215 insertions(+), 253 deletions(-) delete mode 100644 .pyxattr.metadata delete mode 100644 SOURCES/0001-use-Py_ssize_t.patch delete mode 100644 SOURCES/0002-add-workaround-for-undefined-ENOATTR.patch create mode 100644 key.asc create mode 100644 pyxattr-0.7.2.tar.gz.asc rename SPECS/pyxattr.spec => pyxattr.spec (55%) create mode 100644 sources diff --git a/.gitignore b/.gitignore index 0a4bf0a..1962224 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/pyxattr-0.5.3.tar.gz +pyxattr-0.7.2.tar.gz diff --git a/.pyxattr.metadata b/.pyxattr.metadata deleted file mode 100644 index b95efdf..0000000 --- a/.pyxattr.metadata +++ /dev/null @@ -1 +0,0 @@ -b403951d3b987b0fa1203377fcab8165aaa29ac0 SOURCES/pyxattr-0.5.3.tar.gz diff --git a/SOURCES/0001-use-Py_ssize_t.patch b/SOURCES/0001-use-Py_ssize_t.patch deleted file mode 100644 index 085aadc..0000000 --- a/SOURCES/0001-use-Py_ssize_t.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 50f7c251523f6be3be3426aa6499e5495a18b442 Mon Sep 17 00:00:00 2001 -From: Mark Hamzy -Date: Wed, 6 Aug 2014 14:06:45 -0500 -Subject: [PATCH] use Py_ssize_t - ->Starting with Python 2.5 the type of the length argument can be controlled by ->defining the macro PY_SSIZE_T_CLEAN before including Python.h. If the macro is ->defined, length is a Py_ssize_t rather than an int. - -dmalcolm@redhat.com says: -"and IIRC that *does* in fact affect "et#" and the other hash-suffixed codes -i.e. PyArg_ParseTupleAndKeywords was expecting bufsize to be a Py_ssize_t, not an int." - -So, changing size_t to Py_ssize_t and ints used as sizes to Py_ssize_t. - ---- - xattr.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/xattr.c b/xattr.c -index cc1fa44..2529e90 100644 ---- a/xattr.c -+++ b/xattr.c -@@ -193,7 +193,7 @@ static int merge_ns(const char *ns, const char *name, - return 0; - } - --static ssize_t _list_obj(target_t *tgt, char *list, size_t size) { -+static Py_ssize_t _list_obj(target_t *tgt, char *list, Py_ssize_t size) { - if(tgt->type == T_FD) - return flistxattr(tgt->fd, list, size); - else if (tgt->type == T_LINK) -@@ -202,8 +202,8 @@ static ssize_t _list_obj(target_t *tgt, char *list, size_t size) { - return listxattr(tgt->name, list, size); - } - --static ssize_t _get_obj(target_t *tgt, const char *name, void *value, -- size_t size) { -+static Py_ssize_t _get_obj(target_t *tgt, const char *name, void *value, -+ Py_ssize_t size) { - if(tgt->type == T_FD) - return fgetxattr(tgt->fd, name, value, size); - else if (tgt->type == T_LINK) -@@ -213,7 +213,7 @@ static ssize_t _get_obj(target_t *tgt, const char *name, void *value, - } - - static int _set_obj(target_t *tgt, const char *name, -- const void *value, size_t size, int flags) { -+ const void *value, Py_ssize_t size, int flags) { - if(tgt->type == T_FD) - return fsetxattr(tgt->fd, name, value, size, flags); - else if (tgt->type == T_LINK) -@@ -242,7 +242,7 @@ static int _remove_obj(target_t *tgt, const char *name) { - - */ - const char *matches_ns(const char *ns, const char *name) { -- size_t ns_size; -+ Py_ssize_t ns_size; - if (ns == NULL || *ns == '\0') - return name; - ns_size = strlen(ns); -@@ -275,7 +275,7 @@ pygetxattr(PyObject *self, PyObject *args) - int nofollow = 0; - char *attrname = NULL; - char *buf; -- ssize_t nalloc, nret; -+ Py_ssize_t nalloc, nret; - PyObject *res; - - /* Parse the arguments */ -@@ -352,7 +352,7 @@ xattr_get(PyObject *self, PyObject *args, PyObject *keywds) - const char *fullname; - char *buf; - const char *ns = NULL; -- ssize_t nalloc, nret; -+ Py_ssize_t nalloc, nret; - PyObject *res; - static char *kwlist[] = {"item", "name", "nofollow", "namespace", NULL}; - -@@ -451,7 +451,7 @@ get_all(PyObject *self, PyObject *args, PyObject *keywds) - const char *ns = NULL; - char *buf_list, *buf_val; - const char *s; -- ssize_t nalloc, nlist, nval; -+ Py_ssize_t nalloc, nlist, nval; - PyObject *mylist; - target_t tgt; - static char *kwlist[] = {"item", "nofollow", "namespace", NULL}; -@@ -604,7 +604,7 @@ pysetxattr(PyObject *self, PyObject *args) - int nofollow = 0; - char *attrname = NULL; - char *buf = NULL; -- int bufsize; -+ Py_ssize_t bufsize; - int nret; - int flags = 0; - target_t tgt; -@@ -670,7 +670,7 @@ xattr_set(PyObject *self, PyObject *args, PyObject *keywds) - int nofollow = 0; - char *attrname = NULL; - char *buf = NULL; -- int bufsize; -+ Py_ssize_t bufsize; - int nret; - int flags = 0; - target_t tgt; -@@ -856,7 +856,7 @@ pylistxattr(PyObject *self, PyObject *args) - { - char *buf; - int nofollow=0; -- ssize_t nalloc, nret; -+ Py_ssize_t nalloc, nret; - PyObject *myarg; - PyObject *mylist; - Py_ssize_t nattrs; -@@ -956,7 +956,7 @@ xattr_list(PyObject *self, PyObject *args, PyObject *keywds) - { - char *buf; - int nofollow = 0; -- ssize_t nalloc, nret; -+ Py_ssize_t nalloc, nret; - PyObject *myarg; - PyObject *res; - const char *ns = NULL; --- -2.0.0 - diff --git a/SOURCES/0002-add-workaround-for-undefined-ENOATTR.patch b/SOURCES/0002-add-workaround-for-undefined-ENOATTR.patch deleted file mode 100644 index 75d27fc..0000000 --- a/SOURCES/0002-add-workaround-for-undefined-ENOATTR.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3efd44125a6f64fba786d08254e9d1bb6f08abde Mon Sep 17 00:00:00 2001 -From: Milind Changire -Date: Sat, 4 Aug 2018 17:51:25 +0530 -Subject: [PATCH 2/2] add workaround for undefined ENOATTR - -define ENOATTR as ENODATA -fixes bz#1610029 - -Signed-off-by: Milind Changire ---- - xattr.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xattr.c b/xattr.c -index 2529e90..ac248cd 100644 ---- a/xattr.c -+++ b/xattr.c -@@ -97,6 +97,10 @@ typedef int Py_ssize_t; - multi-operations */ - #define ESTIMATE_ATTR_SIZE 256 - -+#if !defined(ENOATTR) -+#define ENOATTR ENODATA -+#endif -+ - typedef enum {T_FD, T_PATH, T_LINK} target_e; - - typedef struct { --- -2.17.1 - diff --git a/key.asc b/key.asc new file mode 100644 index 0000000..838aa75 --- /dev/null +++ b/key.asc @@ -0,0 +1,75 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=PJyc +-----END PGP PUBLIC KEY BLOCK----- diff --git a/pyxattr-0.7.2.tar.gz.asc b/pyxattr-0.7.2.tar.gz.asc new file mode 100644 index 0000000..f72829d --- /dev/null +++ b/pyxattr-0.7.2.tar.gz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEy5TjqjsXVdYeuxml9m4+QZ+E9N4FAl/D+d8ACgkQ9m4+QZ+E +9N6Hfg//amV/is8xZQb1tvXLRpTfPM4rWym4mRkufU5zMuEhO42ebHMetpTnbexY +HOPVSSIIiFSlqp1e4SOw8esQYjB6s28/4PXNK/wFUn6Meh6+YF7p7CTADb2goW25 +CRxeLkens7Mso6GBrpmSR0AqZB7jMpXd4dmnCjRdR1NUNw3ui+yMnAMKD6zfQNzY +CIufV77EEe2uvJw33i6jHLnpd61bkN+V/r0BN9FA4i8uZMOHzGmtX4siEXDmwAJc +fLCJY2KmEAplDZl6RTgwiTFJJvRQDjhankz3pcUJk1oJa7HTCT4Uq0rOcYBtkNsv +u97GL5Mq9wsTv23v5/L3C1CbTIiAaEkmEexVgDledzr9KS24rzkxMo8D6mBzS1tx +y/hoUqbphsP/QVe8Yhbmy4x+E8dq5SlrPtpS+7xrr3AjLZJAk5l13yWcCEomNGva +alucUhWgylOSIVK9Z4TVxcZgeR/mDuDPBFxw8Cy+EkNpGbA1LVubLIdwo7+zx2r4 +OM9TFu+4r9OQXzFOQhBmMbfUJfDO5wTuk3XuG8QlNH0mnOe8lL9fIHxTy+uQySbt +3t/8wAcIp499xwsWHkzZOgKEd9OSxZAzPdJjGsg+nwWlS5TQJQySHAHXup3vc+t0 +8X4X76nX2CSqYoM5+3VAzn+YfBh3IQB3phVqrIltBM2otihgNdQ= +=Mm6V +-----END PGP SIGNATURE----- diff --git a/SPECS/pyxattr.spec b/pyxattr.spec similarity index 55% rename from SPECS/pyxattr.spec rename to pyxattr.spec index 0dbfa0e..4e064af 100644 --- a/SPECS/pyxattr.spec +++ b/pyxattr.spec @@ -1,120 +1,149 @@ -%global with_python3 1 +Name: pyxattr +Summary: Extended attributes library wrapper for Python +Version: 0.7.2 +Release: 14%{?dist} +License: LGPLv2+ +URL: https://pyxattr.k1024.org/ +Source0: %{URL}/downloads/%{name}-%{version}.tar.gz +Source1: %{URL}/downloads/%{name}-%{version}.tar.gz.asc +Source2: https://k1024.org/files/key.asc -%if 0%{?rhel} > 7 -# Disable python2 build by default -%global with_python2 0 -%else -%global with_python2 1 -%endif +BuildRequires: gcc +BuildRequires: libattr-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: gnupg2 +BuildRequires: %{py3_dist pytest} -Name: pyxattr -Summary: Extended attributes library wrapper for Python -Version: 0.5.3 -Release: 18%{?dist} -License: LGPLv2+ -Group: Development/Libraries -URL: http://pyxattr.k1024.org/ -Source: https://pypi.python.org/packages/source/p/%{name}/%{name}-%{version}.tar.gz -Patch0: 0001-use-Py_ssize_t.patch -Patch1: 0002-add-workaround-for-undefined-ENOATTR.patch -BuildRequires: libattr-devel -%if %{?with_python2} -BuildRequires: python2-devel, python2-setuptools -%endif -%if %{?with_python3} -BuildRequires: python3-devel, python3-setuptools -%endif # with_python3 - -%global _description\ -Python extension module wrapper for libattr. It allows to query, list,\ -add and remove extended attributes from files and directories. +%global _description %{expand: +Python extension module wrapper for libattr. It allows to query, list, +add and remove extended attributes from files and directories.} %description %_description -%if %{?with_python2} -%package -n python2-%{name} -Summary: %summary -%{?python_provide:%python_provide python2-%{name}} -# Remove before F30 -Provides: pyxattr = %{version}-%{release} -Provides: pyxattr%{?_isa} = %{version}-%{release} -Obsoletes: pyxattr < %{version}-%{release} - -%description -n python2-%{name} %_description -%endif - -%if %{?with_python3} %package -n python3-%{name} -Summary: Extended attributes library wrapper for Python 3 +Summary: %{summary} +%{?python_provide:%python_provide python3-%{name}} -%description -n python3-%{name} -Python extension module wrapper for libattr. It allows to query, list, -add and remove extended attributes from files and directories. - -Python 3 version. -%endif # with_python3 +%description -n python3-%{name} %_description %prep -%setup -q -%patch0 -p1 -%patch1 -p1 +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup %build -%if %{?with_python2} -CFLAGS="%{optflags}" %{__python2} setup.py build -%endif - -%if 0%{?with_python3} -CFLAGS="%{optflags}" %{__python3} setup.py build -%endif # with_python3 +%py3_build %install -%if %{?with_python2} -%{__python2} setup.py install --root="%{buildroot}" --prefix="%{_prefix}" -%endif - -%if 0%{?with_python3} -%{__python3} setup.py install --root="%{buildroot}" --prefix="%{_prefix}" -%endif # with_python3 +%py3_install %check # selinux in koji produces unexpected xattrs for tests export TEST_IGNORE_XATTRS=security.selinux +# the module is just a C extension => need to add the installed destination to +# PYTHONPATH, otherwise it won't be found +export PYTHONPATH=%{buildroot}%{python3_sitearch}:$PYTHONPATH +# in Copr, skip tests that fail with OSError: [Errno 95] Operation not supported +python3 -m pytest tests %{?copr_projectname:-k 'not (binary_payload or create_on_existing or empty_value or large_value or many_ops or mixed_access or set_get_remove)'} -%if %{?with_python2} -%{__python2} setup.py test -%endif - -%if 0%{?with_python3} -%{__python3} setup.py test -%endif # with_python3 - -%if %{?with_python2} -%files -n python2-%{name} -%defattr(0644,root,root,0755) -%{python2_sitearch}/xattr.so -%{python2_sitearch}/*egg-info -%{!?_licensedir:%global license %%doc} -%license COPYING -%doc NEWS README -%endif - -%if %{?with_python3} %files -n python3-%{name} -%defattr(0644,root,root,0755) -%{python3_sitearch}/xattr.cpython-??m* +%{python3_sitearch}/xattr.cpython-%{python3_version_nodots}* %{python3_sitearch}/*egg-info -%{!?_licensedir:%global license %%doc} %license COPYING -%doc NEWS README -%endif # with_python3 +%doc NEWS README.md %changelog -* Sat Aug 04 2018 Milind Changire - 0.5.3-18 -- fixes bz#1610029 +* Tue Oct 29 2024 Troy Dawson - 0.7.2-14 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Tue Jun 26 2018 Lumír Balhar - 0.5.3-17 -- Python 2 subpackage disable by default +* Mon Jun 24 2024 Troy Dawson - 0.7.2-13 +- Bump release for June 2024 mass rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 0.7.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 0.7.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 0.7.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 0.7.2-9 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.7.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.7.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.7.2-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.7.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.7.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 02 2021 Python Maint - 0.7.2-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 0.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Dec 1 2020 Dan Čermák - 0.7.2-1 +- New upstream release 0.7.2 + +* Wed Jul 29 2020 Fedora Release Engineering - 0.7.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 23 2020 Dan Čermák - 0.7.1-5 +- BuildRequire python3-setuptools besides python3-devel + (see https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GCPGM34ZGEOVUHSBGZTRYR5XKHTIJ3T7/) + +* Fri May 22 2020 Miro Hrončok - 0.7.1-4 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 0.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 03 2019 Marcin Zajaczkowski - 0.7.1-2 +- Backport RPM specification improvements from sister project pylibacl + +* Tue Nov 26 2019 Dan Čermák - 0.7.1-1 +- Update to 0.7.1 +- Drop python2 subpackage +- Add gpg signature check + +* Thu Aug 15 2019 Miro Hrončok - 0.6.1-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 14 2019 Dan Čermák - 0.6.1-1 +- Bump version to 0.6.1 +- Simplify spec file + +* Sat Feb 02 2019 Fedora Release Engineering - 0.5.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jul 24 2018 Marcin Zajaczkowski - 0.5.6-2 +- Backport patch from 0.6.1 to fix issues with missing ENOATTR in libatttr 2.4.48 + in Fedora 28/29 (#1603242, related to #1601482) - 0.5.6-1 was broken also in F28 + +* Thu Jul 19 2018 Marcin Zajaczkowski - 0.5.6-1 +- Upgrade to 0.5.6 (transitional step before 0.6.x for Fedora <29) +- Drop Py_ssize_t patch applied upstream +- Update download URL + +* Thu Jul 12 2018 Marcin Zajaczkowski - 0.5.3-18 +- Add gcc to BuildRequires - https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot + +* Fri Jun 15 2018 Miro Hrončok - 0.5.3-17 +- Rebuilt for Python 3.7 * Fri Feb 09 2018 Fedora Release Engineering - 0.5.3-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild diff --git a/sources b/sources new file mode 100644 index 0000000..f47f9e1 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (pyxattr-0.7.2.tar.gz) = fb9b36d5d2fb9ab674daf40d6f5c7dbe50d847dcb6d9955d270ef3aed2d8e3540f8feebd934009f47d63f3c55882846a20f7ed733b0d0c004e7a1984e7106206