Compare commits

..

No commits in common. "c10s" and "c8" have entirely different histories.
c10s ... c8

8 changed files with 256 additions and 223 deletions

7
.gitignore vendored
View File

@ -1,6 +1 @@
/pyxattr-0.5.1.tar.gz
/pyxattr-0.5.3.tar.gz
/pyxattr-0.5.6.tar.gz
/pyxattr-0.6.1.tar.gz
/pyxattr-0.7.1.tar.gz
/pyxattr-0.7.2.tar.gz
SOURCES/pyxattr-0.5.3.tar.gz

1
.pyxattr.metadata Normal file
View File

@ -0,0 +1 @@
b403951d3b987b0fa1203377fcab8165aaa29ac0 SOURCES/pyxattr-0.5.3.tar.gz

View File

@ -0,0 +1,127 @@
From 50f7c251523f6be3be3426aa6499e5495a18b442 Mon Sep 17 00:00:00 2001
From: Mark Hamzy <hamzy@us.ibm.com>
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

View File

@ -0,0 +1,31 @@
From 3efd44125a6f64fba786d08254e9d1bb6f08abde Mon Sep 17 00:00:00 2001
From: Milind Changire <mchangir@redhat.com>
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 <mchangir@redhat.com>
---
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

View File

@ -1,149 +1,120 @@
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
%global with_python3 1
BuildRequires: gcc
BuildRequires: libattr-devel
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: gnupg2
BuildRequires: %{py3_dist pytest}
%if 0%{?rhel} > 7
# Disable python2 build by default
%global with_python2 0
%else
%global with_python2 1
%endif
%global _description %{expand:
Python extension module wrapper for libattr. It allows to query, list,
add and remove extended attributes from files and directories.}
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.
%description %_description
%package -n python3-%{name}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{name}}
%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 python3-%{name} %_description
%description -n python2-%{name} %_description
%endif
%if %{?with_python3}
%package -n python3-%{name}
Summary: Extended attributes library wrapper for Python 3
%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
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup
%setup -q
%patch0 -p1
%patch1 -p1
%build
%py3_build
%if %{?with_python2}
CFLAGS="%{optflags}" %{__python2} setup.py build
%endif
%if 0%{?with_python3}
CFLAGS="%{optflags}" %{__python3} setup.py build
%endif # with_python3
%install
%py3_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
%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)'}
%files -n python3-%{name}
%{python3_sitearch}/xattr.cpython-%{python3_version_nodots}*
%{python3_sitearch}/*egg-info
%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.md
%doc NEWS README
%endif
%if %{?with_python3}
%files -n python3-%{name}
%defattr(0644,root,root,0755)
%{python3_sitearch}/xattr.cpython-??m*
%{python3_sitearch}/*egg-info
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc NEWS README
%endif # with_python3
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 0.7.2-14
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Sat Aug 04 2018 Milind Changire <mchangir@redhat.com> - 0.5.3-18
- fixes bz#1610029
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.7.2-13
- Bump release for June 2024 mass rebuild
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 0.7.2-9
- Rebuilt for Python 3.12
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 0.7.2-6
- Rebuilt for Python 3.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 02 2021 Python Maint <python-maint@redhat.com> - 0.7.2-3
- Rebuilt for Python 3.10
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Dec 1 2020 Dan Čermák <dan.cermak@cgc-instruments.com> - 0.7.2-1
- New upstream release 0.7.2
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 23 2020 Dan Čermák <dan.cermak@cgc-instruments.com> - 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 <mhroncok@redhat.com> - 0.7.1-4
- Rebuilt for Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Dec 03 2019 Marcin Zajaczkowski <mszpak ATT wp DOTT pl> - 0.7.1-2
- Backport RPM specification improvements from sister project pylibacl
* Tue Nov 26 2019 Dan Čermák <dan.cermak@cgc-instruments.com> - 0.7.1-1
- Update to 0.7.1
- Drop python2 subpackage
- Add gpg signature check
* Thu Aug 15 2019 Miro Hrončok <mhroncok@redhat.com> - 0.6.1-3
- Rebuilt for Python 3.8
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jul 14 2019 Dan Čermák <dan.cermak@cgc-instruments.com> - 0.6.1-1
- Bump version to 0.6.1
- Simplify spec file
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jul 24 2018 Marcin Zajaczkowski <mszpak ATT wp DOTT pl> - 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 <mszpak ATT wp DOTT pl> - 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 <mszpak ATT wp DOTT pl> - 0.5.3-18
- Add gcc to BuildRequires - https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot
* Fri Jun 15 2018 Miro Hrončok <mhroncok@redhat.com> - 0.5.3-17
- Rebuilt for Python 3.7
* Tue Jun 26 2018 Lumír Balhar <lbalhar@redhat.com> - 0.5.3-17
- Python 2 subpackage disable by default
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

75
key.asc
View File

@ -1,75 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=PJyc
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,16 +0,0 @@
-----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-----

View File

@ -1 +0,0 @@
SHA512 (pyxattr-0.7.2.tar.gz) = fb9b36d5d2fb9ab674daf40d6f5c7dbe50d847dcb6d9955d270ef3aed2d8e3540f8feebd934009f47d63f3c55882846a20f7ed733b0d0c004e7a1984e7106206