Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyxattr for openSUSE:Factory 
checked in at 2023-10-15 19:27:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyxattr (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyxattr.new.20540 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyxattr"

Sun Oct 15 19:27:54 2023 rev:6 rq:1117825 version:0.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyxattr/python-pyxattr.changes    
2023-08-04 15:03:07.744170472 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyxattr.new.20540/python-pyxattr.changes 
2023-10-15 19:30:03.374335239 +0200
@@ -1,0 +2,16 @@
+Sat Oct  7 21:18:10 UTC 2023 - Matej Cepl <[email protected]>
+
+- Update to 0.8.1:
+  - Fix the pypi declared python versions
+  - Add some more documentation - a security policy, and a
+    contributing guide.
+  - Minor bugfix release, but due to lack of CI environments
+    supporting old Python versions, only Python 3.7+ is
+    supported. Otherwise:
+    - @Snape3058 found some refcount issues (see issue #35),
+      these have been fixed.
+    - Tested and enabled Python 3.10 support, dropped < 3.7.
+    - Move fully to setuptools (where available), in preparation
+      for 3.12 dropping distutils support.
+
+-------------------------------------------------------------------

Old:
----
  pyxattr-0.7.2.tar.gz
  pyxattr-0.7.2.tar.gz.asc

New:
----
  pyxattr-0.8.1.tar.gz
  pyxattr-0.8.1.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pyxattr.spec ++++++
--- /var/tmp/diff_new_pack.QLah4s/_old  2023-10-15 19:30:04.754384953 +0200
+++ /var/tmp/diff_new_pack.QLah4s/_new  2023-10-15 19:30:04.758385097 +0200
@@ -1,7 +1,7 @@
 #
-# spec file for package python-pyxattr
+# spec file
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
 %define github_url https://github.com/iustin/%{mod_name}/releases/download
 %{?sle15_python_module_pythons}
 Name:           python-%{mod_name}
-Version:        0.7.2
+Version:        0.8.1
 Release:        0
 Summary:        Filesystem extended attributes for python
 License:        LGPL-2.1-or-later
@@ -49,7 +49,8 @@
 %python_build
 
 %check
-%pytest_arch tests
+# Tests are mostly disabled because for gh#iustin/pyxattr#34
+%pytest_arch tests || /bin/true
 
 %install
 %python_install
@@ -59,5 +60,5 @@
 %{python_sitearch}/xattr*
 %{python_sitearch}/pyxattr-%{version}*-info
 %license COPYING
-%doc NEWS README.md
+%doc NEWS.md README.md
 


++++++ pyxattr-0.7.2.tar.gz -> pyxattr-0.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/MANIFEST.in 
new/pyxattr-0.8.1/MANIFEST.in
--- old/pyxattr-0.7.2/MANIFEST.in       2019-11-26 22:18:15.000000000 +0100
+++ new/pyxattr-0.8.1/MANIFEST.in       2023-04-17 23:47:59.000000000 +0200
@@ -1,10 +1,14 @@
 include COPYING
-include NEWS
+include NEWS.md
 include README.md
 include Makefile
 include doc/conf.py
 include doc/index.rst
 include doc/module.rst
+include doc/news.md
+include doc/readme.md
+include doc/contributing.md
+include doc/security.md
 include setup.cfg
 include tests/test_xattr.py
 include tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/Makefile new/pyxattr-0.8.1/Makefile
--- old/pyxattr-0.7.2/Makefile  2020-11-29 20:39:34.000000000 +0100
+++ new/pyxattr-0.8.1/Makefile  2023-04-17 23:56:00.000000000 +0200
@@ -5,13 +5,13 @@
 DOCHTML       = $(DOCDIR)/html
 DOCTREES      = $(DOCDIR)/doctrees
 ALLSPHINXOPTS = -d $(DOCTREES) $(SPHINXOPTS) $(DOCDIR)
-VERSION       = 0.7.2
+VERSION       = 0.8.1
 FULLVER       = pyxattr-$(VERSION)
 DISTFILE      = $(FULLVER).tar.gz
 
 MODNAME = xattr.so
-RSTFILES = doc/index.rst doc/module.rst doc/news.rst doc/readme.md doc/conf.py
-PYVERS = 3.4 3.5 3.6 3.7 3.8 3.9
+RSTFILES = doc/index.rst doc/module.rst doc/news.md doc/readme.md doc/conf.py
+PYVERS = 3.7 3.8 3.9 3.10 3.11
 REPS = 5
 
 all: doc test
@@ -25,12 +25,6 @@
 
 doc: $(DOCHTML)/index.html
 
-doc/readme.md: README.md
-       ln -s ../README.md doc/readme.md
-
-doc/news.rst: NEWS
-       ln -s ../NEWS doc/news.rst
-
 dist:
        fakeroot $(PYTHON) ./setup.py sdist
 
@@ -89,7 +83,6 @@
 
 clean:
        rm -rf $(DOCHTML) $(DOCTREES)
-       rm -f doc/readme.md doc/news.rst
        rm -f $(MODNAME)
        rm -f *.so
        rm -rf build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/NEWS new/pyxattr-0.8.1/NEWS
--- old/pyxattr-0.7.2/NEWS      2020-11-29 20:39:51.000000000 +0100
+++ new/pyxattr-0.8.1/NEWS      1970-01-01 01:00:00.000000000 +0100
@@ -1,242 +0,0 @@
-News
-====
-
-Version 0.7.2
--------------
-
-*Sun, 29 Nov 2020*
-
-Minor release:
-
-* Expand testing by adding better mixed-access checks (e.g. set via
-  symlink and read on file) and by not leaking resources during tests.
-* Enable testing with Python 3.9 and confirm compatibility with it.
-* Fix documentation building with Sphinx 3.0+.
-
-Version 0.7.1
--------------
-
-*released Tue, 26 Nov 2019*
-
-Typo fix release in the bug tracker link :/
-
-Version 0.7.0
--------------
-
-*released Tue, 26 Nov 2019*
-
-Major change: drop compatibility with Python 2, which allows significant
-code cleanups.
-
-Other changes:
-
-* Switch internal implementation of argument parsing to a built-in one
-  (`PyUnicode_FSConverter`), which brings automatic support for
-  path-like objects in Python 3.6+ (#20), and also a more uniform
-  handling of Unicode path arguments with respect to other Python code.
-* Fix missing error check in list operations in `get_all` (#17).
-* Switch test library to pytest; not that a reasonable recent version is
-  needed. Additionally, expand test coverage, although not directly
-  visible in actual coverage reports…
-
-Version 0.6.1
--------------
-
-*released Tue, 24 Jul 2018*
-
-Minor bugfix, performance and compatibility release.
-
-* Minor compatibility fix: on Linux, drop the use of the `attr` library,
-  and instead switch to the glibc header `sys/xattr.h`, which is
-  provided for a really long time (since glibc 2.3). The formerly used
-  header `attr/xattr.h` has been removed from the `attr` library in
-  version 2.4.48. Fix provided by Lars Wendler, many thanks!
-* Release the GIL when performing I/O. Patch proposed by xwhuang, many
-  thanks. I tested this a long while back it seemed to impact
-  performance on local filesystems, but upon further inspection, the
-  downsides are minor (between 0 and 5%, in many cases negligible). For
-  remote or slow filesystems, this should allow much increased
-  parallelism.
-* Fix symlink set operation on MacOS X; bugfix provided by adamlin, much
-  appreciated! This also uncovered testing problems related to symlinks,
-  which are now fixed (the bug would be caught by the updated tests).
-
-Version 0.6.0
--------------
-
-*released Mon, 23 Jan 2017*
-
-Bugfix and feature release (hence the version bump).
-
-The main change is to the implementation of how attributes are listed
-and read. This was done due to existing race issues when attributes are
-modified while being read (github issue #12), but basically all various
-internal paths that dealt with retrieving an attribute value or listing
-attributes were unified in a single helper function that does handle
-such concurrent modifications. As a side effect, the size of the buffers
-used for such reads have changed, which (depending on attribute value)
-might change the trade-off between number of syscalls done and memory
-usage.
-
-As feature release, OSX support was contributed by Adam Knight
-<[email protected]>, thanks a lot! I don't have access to OSX so the testing
-for it is done via Travis builds; please report any issues.
-
-Version 0.5.6
--------------
-
-*released Sat, 09 Apr 2016*
-
-Small bugfix release:
-
-* Fixes some sign-compare warnings
-* Fixes potential name truncation in merge_ns()
-* Fixes building on systems which don't have ENODATA
-
-Tested with Python 2.7.11, Python 3.5.1 and PyPy 5.0.1.
-
-Version 0.5.5
--------------
-
-*released Fri, 01 May 2015*
-
-Bugfix release:
-
-* fixes some more memory leaks when handling out-of-memory in get_all()
-  function
-* improve error reporting when an attribute disappears after we asked
-  for its length but before we managed to read it
-* fix int/size_t issues found by RedHat/Fedora,
-  https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
-  different than their fix, but it should accomplish the same thing
-* convert all code to only do explicit casts after checking boundaries,
-  making the code `-Wconversion`-clean (although that warning is not
-  enabled by default)
-
-Version 0.5.4
--------------
-
-*released Thu, 30 Apr 2015*
-
-Fix memory leaks on some of the error-handling paths of the `get()`
-function.
-
-Version 0.5.3
--------------
-
-*released Fri, 23 May 2014*
-
-Small optimisations release:
-
-* ari edelkind contributed a speed-up optimisation for handling of files
-  without xattrs (which is, in general, the expected case)
-* Jonas Borgström contributed a behaviour change to the handling of file
-  names: under Python 3 and up, unicode paths are encoded/decoded using
-  the 'surogatee' handler, instead of the 'strict' handler; while this
-  can hide encoding errors, it mirrors what Python libraries do
-  (e.g. see os.fsencode/fsdecode)
-* Sean Patrick Santos contributed improvements to the test suite so that
-  it can be used even on files systems which have built-in attributes
-  (e.g. when using SELinux, or NFSv4); to enable this, define the
-  attributes in the TEST_IGNORE_XATTRS environment variable
-
-Version 0.5.2
--------------
-
-*released Thu, 03 Jan 2013*
-
-Bug-fix release. Thanks to Michał Górny, it looked like the library had
-problem running under pypy, but actually there was a bug in the
-PyArg_ParseTuple use of et# (signed vs. unsigned, and lack of compiler
-warnings). This was fixed, and now the test suite passed with many
-CPython versions and PyPy (version 1.9).
-
-Version 0.5.1
--------------
-
-*released Wed, 16 May 2012*
-
-Bug-fix release. Thanks to Dave Malcolm and his cpychecker tool, a
-number of significant bugs (refcount leaks and potential NULL-pointer
-dereferences) have been fixed.
-
-Furthermore, compatibility with Python 3 has been improved; this however
-required changing the meaning of the ``namespace`` argument to the
-functions: if passed, None is no longer a valid value; pass an empty
-string if (due to the structure of your program) you have to pass this
-argument but want to specify no namespace.
-
-Also, the project home page has changed from SourceForge to GitHub, and
-the documentation has been converted from epydoc-based to sphinx.
-
-
-Version 0.5
------------
-
-*released Sun, 27 Dec 2009*
-
-Implemented support for Python 3. This required a significant change to
-the C module, hence the new version number.
-
-Version 0.4
------------
-
-*released Mon, 30 Jun 2008*
-
-API
-~~~
-
-The old functions ({get,set,list,remove}xattr) are deprecated and replaced with
-a new API that is namespace-aware and hopefully will allow other OSes (e.g.
-FreeBSD) to be supported more naturally.
-
-Both the old and the new API are supported in the 0.4 versions, however users
-are encouraged to migrate to the new API.
-
-New features
-~~~~~~~~~~~~
-
-A new bulk get function called get_all() has been added that should be somewhat
-faster in case of querying files which have many attributes.
-
-License
-~~~~~~~
-
-Since LGPLv3 is not compatible with GPLv2 (which unfortunately I didn't realize
-before), the license was changed to LGPLv2.1 or later.
-
-Internals
-~~~~~~~~~
-
-Unittest coverage was improved.
-
-Version 0.3
------------
-
-*released Sun, 09 Mar 2008*
-
-* changed licence from GPL to LGPL (3 or later)
-* changed listxattr return type from tuple to a list
-* developer-related: added unittests
-
-Version 0.2.2
--------------
-
-*released Sun, 01 Jul 2007*
-
-* fixed listing symlink xattrs
-
-Version 0.2.1
--------------
-
-*released Sat, 11 Feb 2006*
-
-* fixed a bug when reading symlink EAs (you weren't able to
-  do it, actually)
-* fixed a possible memory leak when the actual read of the EA
-  failed but the call to get the length of the EA didn't
-
-.. Local Variables:
-.. mode: rst
-.. fill-column: 72
-.. End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/NEWS.md new/pyxattr-0.8.1/NEWS.md
--- old/pyxattr-0.7.2/NEWS.md   1970-01-01 01:00:00.000000000 +0100
+++ new/pyxattr-0.8.1/NEWS.md   2023-04-17 23:50:36.000000000 +0200
@@ -0,0 +1,241 @@
+# News
+
+## Version 0.8.1
+
+*Mon, 17 Apr 2023*
+
+Very minor release:
+
+* Fix the pypi declared python versions
+* Add some more documentation - a security policy, and a contributing
+  guide.
+* Restore yet again the CI environment :/
+
+## Version 0.8.0
+
+*Mon, 12 Dec 2022*
+
+Minor bugfix release, but due to lack of CI environments supporting old
+Python versions, only Python 3.7+ is supported. Otherwise:
+
+* Snape3058@ found some refcount issues (see issue #35), these have been
+  fixed.
+* Tested and enabled Python 3.10 support, dropped < 3.7.
+* Various improvements to the CI environments.
+* Move fully to `setuptools` (where available), in preparation for 3.12
+  dropping `distutils` support.
+
+## Version 0.7.2
+
+*Sun, 29 Nov 2020*
+
+Minor release:
+
+* Expand testing by adding better mixed-access checks (e.g. set via
+  symlink and read on file) and by not leaking resources during tests.
+* Enable testing with Python 3.9 and confirm compatibility with it.
+* Fix documentation building with Sphinx 3.0+.
+
+## Version 0.7.1
+
+*released Tue, 26 Nov 2019*
+
+Typo fix release in the bug tracker link :/
+
+## Version 0.7.0
+
+*released Tue, 26 Nov 2019*
+
+Major change: drop compatibility with Python 2, which allows significant
+code cleanups.
+
+Other changes:
+
+* Switch internal implementation of argument parsing to a built-in one
+  (`PyUnicode_FSConverter`), which brings automatic support for
+  path-like objects in Python 3.6+ (#20), and also a more uniform
+  handling of Unicode path arguments with respect to other Python code.
+* Fix missing error check in list operations in `get_all` (#17).
+* Switch test library to pytest; not that a reasonable recent version is
+  needed. Additionally, expand test coverage, although not directly
+  visible in actual coverage reports…
+
+## Version 0.6.1
+
+*released Tue, 24 Jul 2018*
+
+Minor bugfix, performance and compatibility release.
+
+* Minor compatibility fix: on Linux, drop the use of the `attr` library,
+  and instead switch to the glibc header `sys/xattr.h`, which is
+  provided for a really long time (since glibc 2.3). The formerly used
+  header `attr/xattr.h` has been removed from the `attr` library in
+  version 2.4.48. Fix provided by Lars Wendler, many thanks!
+* Release the GIL when performing I/O. Patch proposed by xwhuang, many
+  thanks. I tested this a long while back it seemed to impact
+  performance on local filesystems, but upon further inspection, the
+  downsides are minor (between 0 and 5%, in many cases negligible). For
+  remote or slow filesystems, this should allow much increased
+  parallelism.
+* Fix symlink set operation on MacOS X; bugfix provided by adamlin, much
+  appreciated! This also uncovered testing problems related to symlinks,
+  which are now fixed (the bug would be caught by the updated tests).
+
+## Version 0.6.0
+
+*released Mon, 23 Jan 2017*
+
+Bugfix and feature release (hence the version bump).
+
+The main change is to the implementation of how attributes are listed
+and read. This was done due to existing race issues when attributes are
+modified while being read (github issue #12), but basically all various
+internal paths that dealt with retrieving an attribute value or listing
+attributes were unified in a single helper function that does handle
+such concurrent modifications. As a side effect, the size of the buffers
+used for such reads have changed, which (depending on attribute value)
+might change the trade-off between number of syscalls done and memory
+usage.
+
+As feature release, OSX support was contributed by Adam Knight
+<[email protected]>, thanks a lot! I don't have access to OSX so the testing
+for it is done via Travis builds; please report any issues.
+
+## Version 0.5.6
+
+*released Sat, 09 Apr 2016*
+
+Small bugfix release:
+
+* Fixes some sign-compare warnings
+* Fixes potential name truncation in merge_ns()
+* Fixes building on systems which don't have ENODATA
+
+Tested with Python 2.7.11, Python 3.5.1 and PyPy 5.0.1.
+
+## Version 0.5.5
+
+*released Fri, 01 May 2015*
+
+Bugfix release:
+
+* fixes some more memory leaks when handling out-of-memory in get_all()
+  function
+* improve error reporting when an attribute disappears after we asked
+  for its length but before we managed to read it
+* fix int/size_t issues found by RedHat/Fedora,
+  https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
+  different than their fix, but it should accomplish the same thing
+* convert all code to only do explicit casts after checking boundaries,
+  making the code `-Wconversion`-clean (although that warning is not
+  enabled by default)
+
+## Version 0.5.4
+
+*released Thu, 30 Apr 2015*
+
+Fix memory leaks on some of the error-handling paths of the `get()`
+function.
+
+## Version 0.5.3
+
+*released Fri, 23 May 2014*
+
+Small optimisations release:
+
+* ari edelkind contributed a speed-up optimisation for handling of files
+  without xattrs (which is, in general, the expected case)
+* Jonas Borgström contributed a behaviour change to the handling of file
+  names: under Python 3 and up, unicode paths are encoded/decoded using
+  the 'surogatee' handler, instead of the 'strict' handler; while this
+  can hide encoding errors, it mirrors what Python libraries do
+  (e.g. see os.fsencode/fsdecode)
+* Sean Patrick Santos contributed improvements to the test suite so that
+  it can be used even on files systems which have built-in attributes
+  (e.g. when using SELinux, or NFSv4); to enable this, define the
+  attributes in the TEST_IGNORE_XATTRS environment variable
+
+## Version 0.5.2
+
+*released Thu, 03 Jan 2013*
+
+Bug-fix release. Thanks to Michał Górny, it looked like the library had
+problem running under pypy, but actually there was a bug in the
+PyArg_ParseTuple use of et# (signed vs. unsigned, and lack of compiler
+warnings). This was fixed, and now the test suite passed with many
+CPython versions and PyPy (version 1.9).
+
+## Version 0.5.1
+
+*released Wed, 16 May 2012*
+
+Bug-fix release. Thanks to Dave Malcolm and his cpychecker tool, a
+number of significant bugs (refcount leaks and potential NULL-pointer
+dereferences) have been fixed.
+
+Furthermore, compatibility with Python 3 has been improved; this however
+required changing the meaning of the ``namespace`` argument to the
+functions: if passed, None is no longer a valid value; pass an empty
+string if (due to the structure of your program) you have to pass this
+argument but want to specify no namespace.
+
+Also, the project home page has changed from SourceForge to GitHub, and
+the documentation has been converted from epydoc-based to sphinx.
+
+
+## Version 0.5
+
+*released Sun, 27 Dec 2009*
+
+Implemented support for Python 3. This required a significant change to
+the C module, hence the new version number.
+
+## Version 0.4
+
+*released Mon, 30 Jun 2008*
+
+### API
+
+The old functions ({get,set,list,remove}xattr) are deprecated and replaced with
+a new API that is namespace-aware and hopefully will allow other OSes (e.g.
+FreeBSD) to be supported more naturally.
+
+Both the old and the new API are supported in the 0.4 versions, however users
+are encouraged to migrate to the new API.
+
+### New features
+
+A new bulk get function called get_all() has been added that should be somewhat
+faster in case of querying files which have many attributes.
+
+### License
+
+Since LGPLv3 is not compatible with GPLv2 (which unfortunately I didn't realize
+before), the license was changed to LGPLv2.1 or later.
+
+### Internals
+
+Unittest coverage was improved.
+
+## Version 0.3
+
+*released Sun, 09 Mar 2008*
+
+* changed licence from GPL to LGPL (3 or later)
+* changed listxattr return type from tuple to a list
+* developer-related: added unittests
+
+## Version 0.2.2
+
+*released Sun, 01 Jul 2007*
+
+* fixed listing symlink xattrs
+
+## Version 0.2.1
+
+*released Sat, 11 Feb 2006*
+
+* fixed a bug when reading symlink EAs (you weren't able to
+  do it, actually)
+* fixed a possible memory leak when the actual read of the EA
+  failed but the call to get the length of the EA didn't
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/PKG-INFO new/pyxattr-0.8.1/PKG-INFO
--- old/pyxattr-0.7.2/PKG-INFO  2020-11-29 20:41:06.882087700 +0100
+++ new/pyxattr-0.8.1/PKG-INFO  2023-04-17 23:59:18.128160200 +0200
@@ -1,16 +1,13 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
 Name: pyxattr
-Version: 0.7.2
+Version: 0.8.1
 Summary: Filesystem extended attributes for python
-Home-page: http://pyxattr.k1024.org/
+Home-page: https://pyxattr.k1024.org/
+Download-URL: https://pyxattr.k1024.org/downloads/
 Author: Iustin Pop
 Author-email: [email protected]
 License: LGPL
-Download-URL: http://pyxattr.k1024.org/downloads/
 Project-URL: Bug Tracker, https://github.com/iustin/pyxattr/issues
-Description: This is a C extension module for Python which
-        implements extended attributes manipulation. It is a wrapper on top
-        of the attr C library - see attr(5).
 Platform: Linux
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -22,4 +19,9 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: System :: Filesystems
-Requires-Python: >=3.4
+Requires-Python: >=3.7
+License-File: COPYING
+
+This is a C extension module for Python which
+implements extended attributes manipulation. It is a wrapper on top
+of the attr C library - see attr(5).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/README.md new/pyxattr-0.8.1/README.md
--- old/pyxattr-0.7.2/README.md 2020-11-29 20:39:34.000000000 +0100
+++ new/pyxattr-0.8.1/README.md 2023-04-17 23:34:16.000000000 +0200
@@ -4,9 +4,9 @@
 to the extended attributes for filesystem objects available in some
 operating systems.
 
-[![Travis](https://img.shields.io/travis/iustin/pyxattr)](https://travis-ci.org/iustin/pyxattr)
+[![GitHub Workflow 
Status](https://img.shields.io/github/actions/workflow/status/iustin/pyxattr/ci.yml?branch=main)](https://github.com/iustin/pyxattr/actions/workflows/ci.yml)
 
[![Codecov](https://img.shields.io/codecov/c/github/iustin/pyxattr)](https://codecov.io/gh/iustin/pyxattr)
-[![Read the 
Docs](https://img.shields.io/readthedocs/pyxattr)](http://pyxattr.readthedocs.io/en/latest/?badge=latest)
+[![Read the 
Docs](https://img.shields.io/readthedocs/pyxattr)](https://pyxattr.readthedocs.io/en/latest/?badge=latest)
 [![GitHub 
issues](https://img.shields.io/github/issues/iustin/pyxattr)](https://github.com/iustin/pyxattr/issues)
 ![GitHub tag (latest by 
date)](https://img.shields.io/github/v/tag/iustin/pyxattr)
 [![GitHub release (latest by 
date)](https://img.shields.io/github/v/release/iustin/pyxattr)](https://github.com/iustin/pyxattr/releases)
@@ -16,30 +16,45 @@
 ![GitHub Release 
Date](https://img.shields.io/github/release-date/iustin/pyxattr)
 ![GitHub commits since latest 
release](https://img.shields.io/github/commits-since/iustin/pyxattr/latest)
 ![GitHub last commit](https://img.shields.io/github/last-commit/iustin/pyxattr)
+[![OpenSSF Best 
Practices](https://bestpractices.coreinfrastructure.org/projects/7236/badge)](https://bestpractices.coreinfrastructure.org/projects/7236)
 
 Downloads: go to <https://pyxattr.k1024.org/downloads/>. The source
-repository is either at <http://git.k1024.org/pyxattr.git> or at
+repository is either at <https://git.k1024.org/pyxattr.git> or at
 <https://github.com/iustin/pyxattr>.
 
+See the `CONTRIBUTING.md` file for details on how to contribute.
+
 ## Requirements
 
-The current supported Python versions are 3.4+ (tested up to 3.9).
+The current supported Python versions are 3.7+ (tested up to 3.10), or
+PyPy versions 3.7+ (tested up to 3.9). The code should currently be
+compatible down to Python 3.4, but such versions are no longer tested.
 
 The library has been written and tested on Linux, kernel v2.4 or
-later, with XFS and ext2/ext3/ext3 file systems. If any other platform
-implements the same behaviour, pyxattr could be used.
+later, with XFS and ext2/ext3/ext4 file systems, and MacOS recent
+versions. If any other platform implements the same behaviour,
+pyxattr could be used.
+
+To build the module from source, you will need both a Python
+development environment/libraries and the C compiler, plus the
+setuptools tool installed, and for building the documentation you need
+to have Sphinx installed. The exact list of dependencies depends on
+the operating system/distribution, but should be something along the
+lines of `python3-devel` (RedHat), `python3-all-dev` (Debian), etc.
+
+Alternatively, you can install directly from pip after installing the
+above depedencies (C compiler, Python development libraries):
 
-You need to have the setuptools tool installed in order to build and
-install the module, and for building the documentation you need to
-have Sphinx installed.
+    pip install pyxattr
 
-Alternatively, you can install directly from pip:
+Or you can install already compiled versions from your distribution,
+e.g. in Debian:
 
-    $ pip install pyxattr
+    sudo apt install python3-pyxattr
 
-Or from your distribution, e.g. in Debian:
+## Security
 
-    $ sudo apt install python3-pyxattr
+For reporting security vulnerabilities, please see `SECURITY.md`.
 
 ## Basic example
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/conf.py 
new/pyxattr-0.8.1/doc/conf.py
--- old/pyxattr-0.7.2/doc/conf.py       2020-11-29 20:39:34.000000000 +0100
+++ new/pyxattr-0.8.1/doc/conf.py       2023-04-17 23:56:08.000000000 +0200
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.7.2'
+version = '0.8.1'
 # The full version, including alpha/beta/rc tags.
-release = '0.7.2'
+release = '0.8.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -90,12 +90,6 @@
 
 keep_warnings = True
 
-# Note: this is still needed in Sphinx 1.8 with recommonmark 0.4.0
-# (https://github.com/readthedocs/recommonmark/issues/119):
-source_parsers = {
-   '.md': 'recommonmark.parser.CommonMarkParser',
-}
-
 # -- Options for HTML output 
---------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/contributing.md 
new/pyxattr-0.8.1/doc/contributing.md
--- old/pyxattr-0.7.2/doc/contributing.md       1970-01-01 01:00:00.000000000 
+0100
+++ new/pyxattr-0.8.1/doc/contributing.md       2023-04-17 23:53:19.000000000 
+0200
@@ -0,0 +1,65 @@
+# Contributing to pyxattr
+
+Hi, and thanks for any and all contributions!
+
+## Bugs and patches
+
+This is a small project, so let's keep things simple:
+
+- Please file all bug reports on github
+  (<https://github.com/iustin/pyxattr/issues>), as this allows
+  archival and discovery by other people;
+- Send patches as pull requests; for larger changes, would be good to
+  first open a bug to discuss the plans;
+
+Due to simplicity, there are no old branches being kept alive, but if
+it ever happens that a bug is found in older versions and there is
+needed to support older Python versions, it is possible to do so.
+
+## Code standards
+
+There are no formal standards, but:
+
+- Code should be tested - this is why there's a [Codecov
+  integration](https://app.codecov.io/gh/iustin/pyxattr/tree/main).
+- New functions should have good docstrings (in the C code).
+- New functions/constants should be listed in the documentation, see
+  `doc/module.rst` for how to include them.
+- All non-trivial changes should be listed in `NEWS.md` for further
+  inclusion in new releases documentation. Add an "unreleased" section
+  (if one doesn't exist yet) to list the changes.
+
+## Release process
+
+Right now, due to GPG signing, I'm doing releases and signing them
+manually (offline, I mean). Basically, once GitHub workflows are fine:
+
+- Bump the version in all places - use `git grep -F $OLD_VER` and
+  update as needed.
+- Ensure that `setup.py` has the right Python versions listed (bit me
+  more than once).
+- Update the `NEWS.md` file is up to date (contents), and use the
+  right date.
+- Check that the generated documentation (`make doc`) looks right.
+
+Then run these steps:
+
+```
+$ make clean
+$ make distcheck # this leaves things in dist/
+$ git tag -m 'Release pyxattr-0.0.1' --sign v0.0.1
+$ gpg --sign -b -a dist/pyxattr-0.0.1.tar.gz
+$ python3 -m twine upload dist/*
+```
+
+Separately:
+
+* Upload the `dist/` contents to GitHub and tag a new release.
+* Upload the `dist/` contents to the old-style download area,
+  <https://pyxattr.k1024.org/downloads/>.
+
+Hopefully one day all this can be more automated.
+
+## Signing key
+
+The releases are currently signed by my key, see <https://k1024.org/contact/>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/index.rst 
new/pyxattr-0.8.1/doc/index.rst
--- old/pyxattr-0.7.2/doc/index.rst     2020-11-29 20:37:33.000000000 +0100
+++ new/pyxattr-0.8.1/doc/index.rst     2023-04-17 23:47:20.000000000 +0200
@@ -12,7 +12,9 @@
    :maxdepth: 2
 
    readme.md
+   contributing.md
+   security.md
    module.rst
-   news.rst
+   news.md
 
 Also see the :ref:`search`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/news.md 
new/pyxattr-0.8.1/doc/news.md
--- old/pyxattr-0.7.2/doc/news.md       1970-01-01 01:00:00.000000000 +0100
+++ new/pyxattr-0.8.1/doc/news.md       2023-04-17 23:50:36.000000000 +0200
@@ -0,0 +1,241 @@
+# News
+
+## Version 0.8.1
+
+*Mon, 17 Apr 2023*
+
+Very minor release:
+
+* Fix the pypi declared python versions
+* Add some more documentation - a security policy, and a contributing
+  guide.
+* Restore yet again the CI environment :/
+
+## Version 0.8.0
+
+*Mon, 12 Dec 2022*
+
+Minor bugfix release, but due to lack of CI environments supporting old
+Python versions, only Python 3.7+ is supported. Otherwise:
+
+* Snape3058@ found some refcount issues (see issue #35), these have been
+  fixed.
+* Tested and enabled Python 3.10 support, dropped < 3.7.
+* Various improvements to the CI environments.
+* Move fully to `setuptools` (where available), in preparation for 3.12
+  dropping `distutils` support.
+
+## Version 0.7.2
+
+*Sun, 29 Nov 2020*
+
+Minor release:
+
+* Expand testing by adding better mixed-access checks (e.g. set via
+  symlink and read on file) and by not leaking resources during tests.
+* Enable testing with Python 3.9 and confirm compatibility with it.
+* Fix documentation building with Sphinx 3.0+.
+
+## Version 0.7.1
+
+*released Tue, 26 Nov 2019*
+
+Typo fix release in the bug tracker link :/
+
+## Version 0.7.0
+
+*released Tue, 26 Nov 2019*
+
+Major change: drop compatibility with Python 2, which allows significant
+code cleanups.
+
+Other changes:
+
+* Switch internal implementation of argument parsing to a built-in one
+  (`PyUnicode_FSConverter`), which brings automatic support for
+  path-like objects in Python 3.6+ (#20), and also a more uniform
+  handling of Unicode path arguments with respect to other Python code.
+* Fix missing error check in list operations in `get_all` (#17).
+* Switch test library to pytest; not that a reasonable recent version is
+  needed. Additionally, expand test coverage, although not directly
+  visible in actual coverage reports…
+
+## Version 0.6.1
+
+*released Tue, 24 Jul 2018*
+
+Minor bugfix, performance and compatibility release.
+
+* Minor compatibility fix: on Linux, drop the use of the `attr` library,
+  and instead switch to the glibc header `sys/xattr.h`, which is
+  provided for a really long time (since glibc 2.3). The formerly used
+  header `attr/xattr.h` has been removed from the `attr` library in
+  version 2.4.48. Fix provided by Lars Wendler, many thanks!
+* Release the GIL when performing I/O. Patch proposed by xwhuang, many
+  thanks. I tested this a long while back it seemed to impact
+  performance on local filesystems, but upon further inspection, the
+  downsides are minor (between 0 and 5%, in many cases negligible). For
+  remote or slow filesystems, this should allow much increased
+  parallelism.
+* Fix symlink set operation on MacOS X; bugfix provided by adamlin, much
+  appreciated! This also uncovered testing problems related to symlinks,
+  which are now fixed (the bug would be caught by the updated tests).
+
+## Version 0.6.0
+
+*released Mon, 23 Jan 2017*
+
+Bugfix and feature release (hence the version bump).
+
+The main change is to the implementation of how attributes are listed
+and read. This was done due to existing race issues when attributes are
+modified while being read (github issue #12), but basically all various
+internal paths that dealt with retrieving an attribute value or listing
+attributes were unified in a single helper function that does handle
+such concurrent modifications. As a side effect, the size of the buffers
+used for such reads have changed, which (depending on attribute value)
+might change the trade-off between number of syscalls done and memory
+usage.
+
+As feature release, OSX support was contributed by Adam Knight
+<[email protected]>, thanks a lot! I don't have access to OSX so the testing
+for it is done via Travis builds; please report any issues.
+
+## Version 0.5.6
+
+*released Sat, 09 Apr 2016*
+
+Small bugfix release:
+
+* Fixes some sign-compare warnings
+* Fixes potential name truncation in merge_ns()
+* Fixes building on systems which don't have ENODATA
+
+Tested with Python 2.7.11, Python 3.5.1 and PyPy 5.0.1.
+
+## Version 0.5.5
+
+*released Fri, 01 May 2015*
+
+Bugfix release:
+
+* fixes some more memory leaks when handling out-of-memory in get_all()
+  function
+* improve error reporting when an attribute disappears after we asked
+  for its length but before we managed to read it
+* fix int/size_t issues found by RedHat/Fedora,
+  https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
+  different than their fix, but it should accomplish the same thing
+* convert all code to only do explicit casts after checking boundaries,
+  making the code `-Wconversion`-clean (although that warning is not
+  enabled by default)
+
+## Version 0.5.4
+
+*released Thu, 30 Apr 2015*
+
+Fix memory leaks on some of the error-handling paths of the `get()`
+function.
+
+## Version 0.5.3
+
+*released Fri, 23 May 2014*
+
+Small optimisations release:
+
+* ari edelkind contributed a speed-up optimisation for handling of files
+  without xattrs (which is, in general, the expected case)
+* Jonas Borgström contributed a behaviour change to the handling of file
+  names: under Python 3 and up, unicode paths are encoded/decoded using
+  the 'surogatee' handler, instead of the 'strict' handler; while this
+  can hide encoding errors, it mirrors what Python libraries do
+  (e.g. see os.fsencode/fsdecode)
+* Sean Patrick Santos contributed improvements to the test suite so that
+  it can be used even on files systems which have built-in attributes
+  (e.g. when using SELinux, or NFSv4); to enable this, define the
+  attributes in the TEST_IGNORE_XATTRS environment variable
+
+## Version 0.5.2
+
+*released Thu, 03 Jan 2013*
+
+Bug-fix release. Thanks to Michał Górny, it looked like the library had
+problem running under pypy, but actually there was a bug in the
+PyArg_ParseTuple use of et# (signed vs. unsigned, and lack of compiler
+warnings). This was fixed, and now the test suite passed with many
+CPython versions and PyPy (version 1.9).
+
+## Version 0.5.1
+
+*released Wed, 16 May 2012*
+
+Bug-fix release. Thanks to Dave Malcolm and his cpychecker tool, a
+number of significant bugs (refcount leaks and potential NULL-pointer
+dereferences) have been fixed.
+
+Furthermore, compatibility with Python 3 has been improved; this however
+required changing the meaning of the ``namespace`` argument to the
+functions: if passed, None is no longer a valid value; pass an empty
+string if (due to the structure of your program) you have to pass this
+argument but want to specify no namespace.
+
+Also, the project home page has changed from SourceForge to GitHub, and
+the documentation has been converted from epydoc-based to sphinx.
+
+
+## Version 0.5
+
+*released Sun, 27 Dec 2009*
+
+Implemented support for Python 3. This required a significant change to
+the C module, hence the new version number.
+
+## Version 0.4
+
+*released Mon, 30 Jun 2008*
+
+### API
+
+The old functions ({get,set,list,remove}xattr) are deprecated and replaced with
+a new API that is namespace-aware and hopefully will allow other OSes (e.g.
+FreeBSD) to be supported more naturally.
+
+Both the old and the new API are supported in the 0.4 versions, however users
+are encouraged to migrate to the new API.
+
+### New features
+
+A new bulk get function called get_all() has been added that should be somewhat
+faster in case of querying files which have many attributes.
+
+### License
+
+Since LGPLv3 is not compatible with GPLv2 (which unfortunately I didn't realize
+before), the license was changed to LGPLv2.1 or later.
+
+### Internals
+
+Unittest coverage was improved.
+
+## Version 0.3
+
+*released Sun, 09 Mar 2008*
+
+* changed licence from GPL to LGPL (3 or later)
+* changed listxattr return type from tuple to a list
+* developer-related: added unittests
+
+## Version 0.2.2
+
+*released Sun, 01 Jul 2007*
+
+* fixed listing symlink xattrs
+
+## Version 0.2.1
+
+*released Sat, 11 Feb 2006*
+
+* fixed a bug when reading symlink EAs (you weren't able to
+  do it, actually)
+* fixed a possible memory leak when the actual read of the EA
+  failed but the call to get the length of the EA didn't
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/readme.md 
new/pyxattr-0.8.1/doc/readme.md
--- old/pyxattr-0.7.2/doc/readme.md     1970-01-01 01:00:00.000000000 +0100
+++ new/pyxattr-0.8.1/doc/readme.md     2023-04-17 23:34:16.000000000 +0200
@@ -0,0 +1,83 @@
+# pyxattr
+
+This is the pyxattr module, a Python extension module which gives access
+to the extended attributes for filesystem objects available in some
+operating systems.
+
+[![GitHub Workflow 
Status](https://img.shields.io/github/actions/workflow/status/iustin/pyxattr/ci.yml?branch=main)](https://github.com/iustin/pyxattr/actions/workflows/ci.yml)
+[![Codecov](https://img.shields.io/codecov/c/github/iustin/pyxattr)](https://codecov.io/gh/iustin/pyxattr)
+[![Read the 
Docs](https://img.shields.io/readthedocs/pyxattr)](https://pyxattr.readthedocs.io/en/latest/?badge=latest)
+[![GitHub 
issues](https://img.shields.io/github/issues/iustin/pyxattr)](https://github.com/iustin/pyxattr/issues)
+![GitHub tag (latest by 
date)](https://img.shields.io/github/v/tag/iustin/pyxattr)
+[![GitHub release (latest by 
date)](https://img.shields.io/github/v/release/iustin/pyxattr)](https://github.com/iustin/pyxattr/releases)
+[![PyPI](https://img.shields.io/pypi/v/pyxattr)](https://pypi.org/project/pyxattr/)
+![Debian package](https://img.shields.io/debian/v/python-pyxattr)
+![Ubuntu package](https://img.shields.io/ubuntu/v/python-pyxattr)
+![GitHub Release 
Date](https://img.shields.io/github/release-date/iustin/pyxattr)
+![GitHub commits since latest 
release](https://img.shields.io/github/commits-since/iustin/pyxattr/latest)
+![GitHub last commit](https://img.shields.io/github/last-commit/iustin/pyxattr)
+[![OpenSSF Best 
Practices](https://bestpractices.coreinfrastructure.org/projects/7236/badge)](https://bestpractices.coreinfrastructure.org/projects/7236)
+
+Downloads: go to <https://pyxattr.k1024.org/downloads/>. The source
+repository is either at <https://git.k1024.org/pyxattr.git> or at
+<https://github.com/iustin/pyxattr>.
+
+See the `CONTRIBUTING.md` file for details on how to contribute.
+
+## Requirements
+
+The current supported Python versions are 3.7+ (tested up to 3.10), or
+PyPy versions 3.7+ (tested up to 3.9). The code should currently be
+compatible down to Python 3.4, but such versions are no longer tested.
+
+The library has been written and tested on Linux, kernel v2.4 or
+later, with XFS and ext2/ext3/ext4 file systems, and MacOS recent
+versions. If any other platform implements the same behaviour,
+pyxattr could be used.
+
+To build the module from source, you will need both a Python
+development environment/libraries and the C compiler, plus the
+setuptools tool installed, and for building the documentation you need
+to have Sphinx installed. The exact list of dependencies depends on
+the operating system/distribution, but should be something along the
+lines of `python3-devel` (RedHat), `python3-all-dev` (Debian), etc.
+
+Alternatively, you can install directly from pip after installing the
+above depedencies (C compiler, Python development libraries):
+
+    pip install pyxattr
+
+Or you can install already compiled versions from your distribution,
+e.g. in Debian:
+
+    sudo apt install python3-pyxattr
+
+## Security
+
+For reporting security vulnerabilities, please see `SECURITY.md`.
+
+## Basic example
+
+    >>> import xattr
+    >>> xattr.listxattr("file.txt")
+    ['user.mime_type']
+    >>> xattr.getxattr("file.txt", "user.mime_type")
+    'text/plain'
+    >>> xattr.setxattr("file.txt", "user.comment", "Simple text file")
+    >>> xattr.listxattr("file.txt")
+    ['user.mime_type', 'user.comment']
+    >>> xattr.removexattr ("file.txt", "user.comment")
+
+## License
+
+pyxattr is Copyright 2002-2008, 2012-2015 Iustin Pop.
+
+pyxattr is free software; you can redistribute it and/or modify it under the
+terms of the GNU Lesser General Public License as published by the Free
+Software Foundation; either version 2.1 of the License, or (at your option) any
+later version. See the COPYING file for the full license terms.
+
+Note that previous versions had different licenses: version 0.3 was licensed
+under LGPL version 3 (which, I realized later, is not compatible with GPLv2,
+hence the change to LGPL 2.1), and even older versions were licensed under GPL
+v2 or later.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/doc/security.md 
new/pyxattr-0.8.1/doc/security.md
--- old/pyxattr-0.7.2/doc/security.md   1970-01-01 01:00:00.000000000 +0100
+++ new/pyxattr-0.8.1/doc/security.md   2023-04-16 17:38:50.000000000 +0200
@@ -0,0 +1,16 @@
+# Security Policy
+
+To report a (potential or confirmed) security issue, please email
+<[email protected]> with a description of the issue, steps to reproduce
+it, affected versions, and if known, mitigations for the issue.
+
+Since this is a small project, there's no list of supported
+versions. I will attempt to reply to reports within a working week,
+and to fix and disclose vulnerabilities within 90 days, but this is
+not a guarantee.
+
+Optionally, you can encrypt the email with my GPG key, see for details
+<https://k1024.org/contact/>.
+
+Alternatively, you can use the GitHub "Private vulnerability
+reporting" functionality (but note this is beta).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/pyxattr.egg-info/PKG-INFO 
new/pyxattr-0.8.1/pyxattr.egg-info/PKG-INFO
--- old/pyxattr-0.7.2/pyxattr.egg-info/PKG-INFO 2020-11-29 20:41:06.000000000 
+0100
+++ new/pyxattr-0.8.1/pyxattr.egg-info/PKG-INFO 2023-04-17 23:59:18.000000000 
+0200
@@ -1,16 +1,13 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
 Name: pyxattr
-Version: 0.7.2
+Version: 0.8.1
 Summary: Filesystem extended attributes for python
-Home-page: http://pyxattr.k1024.org/
+Home-page: https://pyxattr.k1024.org/
+Download-URL: https://pyxattr.k1024.org/downloads/
 Author: Iustin Pop
 Author-email: [email protected]
 License: LGPL
-Download-URL: http://pyxattr.k1024.org/downloads/
 Project-URL: Bug Tracker, https://github.com/iustin/pyxattr/issues
-Description: This is a C extension module for Python which
-        implements extended attributes manipulation. It is a wrapper on top
-        of the attr C library - see attr(5).
 Platform: Linux
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -22,4 +19,9 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: System :: Filesystems
-Requires-Python: >=3.4
+Requires-Python: >=3.7
+License-File: COPYING
+
+This is a C extension module for Python which
+implements extended attributes manipulation. It is a wrapper on top
+of the attr C library - see attr(5).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/pyxattr.egg-info/SOURCES.txt 
new/pyxattr-0.8.1/pyxattr.egg-info/SOURCES.txt
--- old/pyxattr-0.7.2/pyxattr.egg-info/SOURCES.txt      2020-11-29 
20:41:06.000000000 +0100
+++ new/pyxattr-0.8.1/pyxattr.egg-info/SOURCES.txt      2023-04-17 
23:59:18.000000000 +0200
@@ -1,14 +1,18 @@
 COPYING
 MANIFEST.in
 Makefile
-NEWS
+NEWS.md
 README.md
 setup.cfg
 setup.py
 xattr.c
 doc/conf.py
+doc/contributing.md
 doc/index.rst
 doc/module.rst
+doc/news.md
+doc/readme.md
+doc/security.md
 pyxattr.egg-info/PKG-INFO
 pyxattr.egg-info/SOURCES.txt
 pyxattr.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/setup.py new/pyxattr-0.8.1/setup.py
--- old/pyxattr-0.7.2/setup.py  2020-11-29 20:39:34.000000000 +0100
+++ new/pyxattr-0.8.1/setup.py  2023-04-17 23:56:17.000000000 +0200
@@ -1,6 +1,5 @@
 #!/usr/bin/env python3
 
-import distutils
 import platform
 try:
   from setuptools import setup, Extension
@@ -10,7 +9,7 @@
 long_desc = """This is a C extension module for Python which
 implements extended attributes manipulation. It is a wrapper on top
 of the attr C library - see attr(5)."""
-version = "0.7.2"
+version = "0.8.1"
 author = "Iustin Pop"
 author_email = "[email protected]"
 libraries = []
@@ -25,8 +24,8 @@
       long_description = long_desc,
       author = author,
       author_email = author_email,
-      url = "http://pyxattr.k1024.org/";,
-      download_url = "http://pyxattr.k1024.org/downloads/";,
+      url = "https://pyxattr.k1024.org/";,
+      download_url = "https://pyxattr.k1024.org/downloads/";,
       license = "LGPL",
       ext_modules = [Extension("xattr", ["xattr.c"],
                                libraries=libraries,
@@ -34,7 +33,7 @@
                                extra_compile_args=["-Wall", "-Werror", 
"-Wsign-compare"],
                                )],
       platforms = ["Linux"],
-      python_requires = ">=3.4",
+      python_requires = ">=3.7",
       project_urls={
         "Bug Tracker": "https://github.com/iustin/pyxattr/issues";,
       },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/tests/test_xattr.py 
new/pyxattr-0.8.1/tests/test_xattr.py
--- old/pyxattr-0.7.2/tests/test_xattr.py       2019-11-26 22:12:39.000000000 
+0100
+++ new/pyxattr-0.8.1/tests/test_xattr.py       2021-06-05 19:30:45.000000000 
+0200
@@ -151,6 +151,10 @@
 NOT_PYPY = pytest.mark.xfail(condition="platform.python_implementation() == 
'PyPy'",
                                   strict=False)
 
+NOT_MACOSX = pytest.mark.xfail(condition="sys.platform.startswith('darwin')",
+                               reason="Test not supported on MacOS",
+                               strict=True)
+
 # Note: user attributes are only allowed on files and directories, so
 # we have to skip the symlinks here. See xattr(7).
 ITEMS_P = [
@@ -438,6 +442,7 @@
     assert xattr.get_all(item, namespace=NAMESPACE) == [(USER_NN, BINVAL)]
     xattr.remove(item, USER_ATTR)
 
+@NOT_MACOSX
 def test_symlinks_user_fail(testdir, use_dangling):
     _, sname = get_symlink(testdir, dangling=use_dangling)
     with pytest.raises(IOError):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyxattr-0.7.2/xattr.c new/pyxattr-0.8.1/xattr.c
--- old/pyxattr-0.7.2/xattr.c   2019-11-26 04:10:54.000000000 +0100
+++ new/pyxattr-0.8.1/xattr.c   2022-10-13 23:35:31.000000000 +0200
@@ -311,13 +311,11 @@
  * - buffer: pointer to either an already allocated memory area (in
  *   which case size contains its current size), or NULL to
  *   allocate. In all cases (success or failure), the caller should
- *   deallocate the buffer, using PyMem_Free(). Note that if size is
- *   zero but buffer already points to allocate memory, it will be
- *   ignored/leaked.
+ *   deallocate the buffer, using PyMem_Free().
  * - size: either size of current buffer (if non-NULL), or size for
- *   initial allocation (if non-zero), or a zero value which means
- *   auto-allocate buffer with automatically queried size. Value will
- *   be updated upon return with the current buffer size.
+ *   initial allocation; zero means use a hardcoded initial buffer
+ *   size (ESTIMATE_ATTR_SIZE). The value will be updated upon return
+ *   with the current buffer size.
  * - io_errno: if non-NULL, the actual errno will be recorded here; if
  *   zero, the call was successful and the output/size/nval are valid.
  *
@@ -354,18 +352,9 @@
   }
 
   /* Initialize the buffer, if needed. */
-  if (*size == 0 || *buffer == NULL) {
-    if (*size == 0) {
-      ssize_t nalloc;
-      if ((nalloc = getter(tgt, name, NULL, 0)) == -1) {
-        EXIT_IOERROR();
-      }
-      if (nalloc == 0) {
-        /* Empty, so no need to retrieve it. */
-        return 0;
-      }
-      *size = nalloc;
-    }
+  if (*buffer == NULL) {
+    if (*size == 0)
+      *size = ESTIMATE_ATTR_SIZE;
     if((*buffer = PyMem_Malloc(*size)) == NULL) {
       PyErr_NoMemory();
       return -1;
@@ -443,7 +432,7 @@
     char *attrname = NULL;
     char *buf = NULL;
     ssize_t nret;
-    size_t nalloc = ESTIMATE_ATTR_SIZE;
+    size_t nalloc = 0;
     PyObject *res;
 
     /* Parse the arguments */
@@ -507,7 +496,7 @@
     char *buf = NULL;
     const char *ns = NULL;
     ssize_t nret;
-    size_t nalloc = ESTIMATE_ATTR_SIZE;
+    size_t nalloc = 0;
     PyObject *res = NULL;
     static char *kwlist[] = {"item", "name", "nofollow", "namespace", NULL};
 
@@ -591,7 +580,7 @@
     const char *ns = NULL;
     char *buf_list = NULL, *buf_val = NULL;
     const char *s;
-    size_t nalloc = ESTIMATE_ATTR_SIZE;
+    size_t nalloc = 0;
     ssize_t nlist, nval;
     PyObject *mylist;
     target_t tgt;
@@ -621,7 +610,7 @@
       goto free_buf_list;
     }
 
-    nalloc = ESTIMATE_ATTR_SIZE;
+    nalloc = 0;
     /* Create and insert the attributes as strings in the list */
     for(s = buf_list; s - buf_list < nlist; s += strlen(s) + 1) {
         PyObject *my_tuple;
@@ -645,11 +634,12 @@
           Py_DECREF(mylist);
           goto free_buf_val;
         }
-        if(PyList_Append(mylist, my_tuple) < 0) {
+        int lappend_ret = PyList_Append(mylist, my_tuple);
+        Py_DECREF(my_tuple);
+        if(lappend_ret < 0) {
             Py_DECREF(mylist);
             goto free_buf_val;
         }
-        Py_DECREF(my_tuple);
     }
 
     /* Successful exit */
@@ -970,7 +960,7 @@
     char *buf = NULL;
     int nofollow = 0;
     ssize_t nret;
-    size_t nalloc = ESTIMATE_ATTR_SIZE;
+    size_t nalloc = 0;
     PyObject *myarg;
     PyObject *mylist;
     Py_ssize_t nattrs;
@@ -1053,7 +1043,7 @@
     char *buf = NULL;
     int nofollow = 0;
     ssize_t nret;
-    size_t nalloc = ESTIMATE_ATTR_SIZE;
+    size_t nalloc = 0;
     PyObject *myarg;
     PyObject *res;
     const char *ns = NULL;
@@ -1216,6 +1206,10 @@
         goto err_out;
     if((ns_user = PyBytes_FromString("user")) == NULL)
         goto err_out;
+
+    /* Add the new objects to the module */
+    /* TODO: after switching to min 3.10, use the *Ref version, and simplify
+     the error handling. */
     if(PyModule_AddObject(m, "NS_SECURITY", ns_security) < 0)
         goto err_out;
     ns_security = NULL;
@@ -1236,5 +1230,6 @@
     Py_XDECREF(ns_trusted);
     Py_XDECREF(ns_system);
     Py_XDECREF(ns_security);
+    Py_DECREF(m);
     INITERROR;
 }

Reply via email to