Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pylibacl for openSUSE:Factory 
checked in at 2025-02-22 19:04:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pylibacl (Old)
 and      /work/SRC/openSUSE:Factory/.python-pylibacl.new.1873 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pylibacl"

Sat Feb 22 19:04:53 2025 rev:8 rq:1247755 version:0.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pylibacl/python-pylibacl.changes  
2024-01-08 23:44:58.461683851 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pylibacl.new.1873/python-pylibacl.changes    
    2025-02-22 19:05:09.299296735 +0100
@@ -1,0 +2,8 @@
+Fri Feb 21 15:10:30 UTC 2025 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to 0.7.1
+  * Minor version, with a few test improvements, and updated
+    documentation building dependencies. No user-visible
+    changes otherwise.
+
+-------------------------------------------------------------------

Old:
----
  pylibacl-0.7.0.tar.gz

New:
----
  pylibacl-0.7.1.tar.gz

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

Other differences:
------------------
++++++ python-pylibacl.spec ++++++
--- /var/tmp/diff_new_pack.tPlhUx/_old  2025-02-22 19:05:11.035369033 +0100
+++ /var/tmp/diff_new_pack.tPlhUx/_new  2025-02-22 19:05:11.051369699 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pylibacl
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
 # Copyright (c) 2013-2020 LISA GmbH, Bingen, Germany
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pylibacl
-Version:        0.7.0
+Version:        0.7.1
 Release:        0
 Summary:        POSIX1e ACLs for python
 License:        LGPL-2.1-or-later

++++++ pylibacl-0.7.0.tar.gz -> pylibacl-0.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/CONTRIBUTING.md 
new/pylibacl-0.7.1/CONTRIBUTING.md
--- old/pylibacl-0.7.0/CONTRIBUTING.md  1970-01-01 01:00:00.000000000 +0100
+++ new/pylibacl-0.7.1/CONTRIBUTING.md  2023-04-23 22:11:13.000000000 +0200
@@ -0,0 +1,65 @@
+# Contributing to pylibacl
+
+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/pylibacl/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/pylibacl/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 pylibacl-0.0.1' --sign v0.0.1
+$ gpg --sign -b -a dist/pylibacl-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://pylibacl.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/pylibacl-0.7.0/MANIFEST.in 
new/pylibacl-0.7.1/MANIFEST.in
--- old/pylibacl-0.7.0/MANIFEST.in      2023-04-22 23:16:17.000000000 +0200
+++ new/pylibacl-0.7.1/MANIFEST.in      2023-04-23 22:41:56.000000000 +0200
@@ -1,7 +1,8 @@
 include COPYING
 include Makefile
 include NEWS.md
-include README.rst
+include README.md
+include CONTRIBUTING.md
 include SECURITY.md
 include acl.c
 include setup.cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/Makefile new/pylibacl-0.7.1/Makefile
--- old/pylibacl-0.7.0/Makefile 2023-04-23 22:06:01.000000000 +0200
+++ new/pylibacl-0.7.1/Makefile 2025-02-14 22:20:26.000000000 +0100
@@ -5,7 +5,7 @@
 DOCHTML       = $(DOCDIR)/html
 DOCTREES      = $(DOCDIR)/doctrees
 ALLSPHINXOPTS = -d $(DOCTREES) $(SPHINXOPTS) $(DOCDIR)
-VERSION       = 0.7.0
+VERSION       = 0.7.1
 FULLVER       = pylibacl-$(VERSION)
 DISTFILE      = $(FULLVER).tar.gz
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/NEWS.md new/pylibacl-0.7.1/NEWS.md
--- old/pylibacl-0.7.0/NEWS.md  2023-04-23 22:16:22.000000000 +0200
+++ new/pylibacl-0.7.1/NEWS.md  2025-02-14 22:19:29.000000000 +0100
@@ -1,5 +1,14 @@
 # News
 
+## Version 0.7.1
+
+*released Fri, 14 Feb 2025*
+
+Minor version, with a few test improvements, and updated documentation
+building dependencies. No user-visible changes otherwise.
+
+Tested with CPython versions 3.7-3.13, and PyPy 3.7-3.10.
+
 ## Version 0.7.0
 
 *released Sun, 23 Apr 2023*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/PKG-INFO new/pylibacl-0.7.1/PKG-INFO
--- old/pylibacl-0.7.0/PKG-INFO 2023-04-23 22:19:45.974786800 +0200
+++ new/pylibacl-0.7.1/PKG-INFO 2025-02-14 22:26:26.931795100 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pylibacl
-Version: 0.7.0
+Version: 0.7.1
 Summary: POSIX.1e ACLs for python
 Home-page: https://pylibacl.k1024.org/
 Author: Iustin Pop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/README.md new/pylibacl-0.7.1/README.md
--- old/pylibacl-0.7.0/README.md        2023-04-23 22:16:34.000000000 +0200
+++ new/pylibacl-0.7.1/README.md        2025-02-14 22:19:40.000000000 +0100
@@ -5,14 +5,15 @@
 combinations.
 
 Downloads: go to <https://pylibacl.k1024.org/downloads>. Latest
-version is 0.7.0. The source repository is either at
+version is 0.7.1. The source repository is either at
 <https://git.k1024.org/pylibacl.git> or at
 <https://github.com/iustin/pylibacl>.
 
 For any issues, please file bugs at
 <https://github.com/iustin/pylibacl/issues>.
 
-See the `CONTRIBUTING.md` file for details on how to contribute.
+See the `CONTRIBUTING.md` file for details on how to contribute, or
+support me on [ko-fi](https://ko-fi.com/iustin).
 
 [![GitHub Workflow 
Status](https://img.shields.io/github/actions/workflow/status/iustin/pylibacl/ci.yml?branch=main)](https://github.com/iustin/pylibacl/actions/workflows/ci.yml)
 
[![Codecov](https://img.shields.io/codecov/c/github/iustin/pylibacl)](https://codecov.io/gh/iustin/pylibacl)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/doc/conf.py 
new/pylibacl-0.7.1/doc/conf.py
--- old/pylibacl-0.7.0/doc/conf.py      2023-04-23 22:06:38.000000000 +0200
+++ new/pylibacl-0.7.1/doc/conf.py      2025-02-14 22:20:14.000000000 +0100
@@ -25,7 +25,7 @@
 
 # Add any Sphinx extension module names here, as strings. They can be 
extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'recommonmark']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'myst_parser']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.7.0'
+version = '0.7.1'
 # The full version, including alpha/beta/rc tags.
-release = '0.7.0'
+release = '0.7.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/doc/news.md 
new/pylibacl-0.7.1/doc/news.md
--- old/pylibacl-0.7.0/doc/news.md      2023-04-23 22:16:22.000000000 +0200
+++ new/pylibacl-0.7.1/doc/news.md      2025-02-14 22:19:29.000000000 +0100
@@ -1,5 +1,14 @@
 # News
 
+## Version 0.7.1
+
+*released Fri, 14 Feb 2025*
+
+Minor version, with a few test improvements, and updated documentation
+building dependencies. No user-visible changes otherwise.
+
+Tested with CPython versions 3.7-3.13, and PyPy 3.7-3.10.
+
 ## Version 0.7.0
 
 *released Sun, 23 Apr 2023*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/doc/readme.md 
new/pylibacl-0.7.1/doc/readme.md
--- old/pylibacl-0.7.0/doc/readme.md    2023-04-23 22:16:34.000000000 +0200
+++ new/pylibacl-0.7.1/doc/readme.md    2025-02-14 22:19:40.000000000 +0100
@@ -5,14 +5,15 @@
 combinations.
 
 Downloads: go to <https://pylibacl.k1024.org/downloads>. Latest
-version is 0.7.0. The source repository is either at
+version is 0.7.1. The source repository is either at
 <https://git.k1024.org/pylibacl.git> or at
 <https://github.com/iustin/pylibacl>.
 
 For any issues, please file bugs at
 <https://github.com/iustin/pylibacl/issues>.
 
-See the `CONTRIBUTING.md` file for details on how to contribute.
+See the `CONTRIBUTING.md` file for details on how to contribute, or
+support me on [ko-fi](https://ko-fi.com/iustin).
 
 [![GitHub Workflow 
Status](https://img.shields.io/github/actions/workflow/status/iustin/pylibacl/ci.yml?branch=main)](https://github.com/iustin/pylibacl/actions/workflows/ci.yml)
 
[![Codecov](https://img.shields.io/codecov/c/github/iustin/pylibacl)](https://codecov.io/gh/iustin/pylibacl)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/pylibacl.egg-info/PKG-INFO 
new/pylibacl-0.7.1/pylibacl.egg-info/PKG-INFO
--- old/pylibacl-0.7.0/pylibacl.egg-info/PKG-INFO       2023-04-23 
22:19:45.000000000 +0200
+++ new/pylibacl-0.7.1/pylibacl.egg-info/PKG-INFO       2025-02-14 
22:26:26.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pylibacl
-Version: 0.7.0
+Version: 0.7.1
 Summary: POSIX.1e ACLs for python
 Home-page: https://pylibacl.k1024.org/
 Author: Iustin Pop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/pylibacl.egg-info/SOURCES.txt 
new/pylibacl-0.7.1/pylibacl.egg-info/SOURCES.txt
--- old/pylibacl-0.7.0/pylibacl.egg-info/SOURCES.txt    2023-04-23 
22:19:45.000000000 +0200
+++ new/pylibacl-0.7.1/pylibacl.egg-info/SOURCES.txt    2025-02-14 
22:26:26.000000000 +0100
@@ -1,3 +1,4 @@
+CONTRIBUTING.md
 COPYING
 MANIFEST.in
 Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/setup.py new/pylibacl-0.7.1/setup.py
--- old/pylibacl-0.7.0/setup.py 2023-04-23 22:06:24.000000000 +0200
+++ new/pylibacl-0.7.1/setup.py 2025-02-14 22:20:35.000000000 +0100
@@ -31,7 +31,7 @@
 implements POSIX ACLs manipulation. It is a wrapper on top
 of the systems's acl C library - see acl(5)."""
 
-version = "0.7.0"
+version = "0.7.1"
 
 setup(name="pylibacl",
       version=version,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pylibacl-0.7.0/tests/test_acls.py 
new/pylibacl-0.7.1/tests/test_acls.py
--- old/pylibacl-0.7.0/tests/test_acls.py       2023-04-22 02:15:30.000000000 
+0200
+++ new/pylibacl-0.7.1/tests/test_acls.py       2023-04-24 22:04:38.000000000 
+0200
@@ -523,33 +523,45 @@
         assert a == b
         assert b != c
 
+    @staticmethod
+    def get_nulled_state(src=None):
+        """Generate a mostly-valid external serialization
+
+        Passing arbitrary state into acl_copy_int() is dangerous. That
+        C function gets a void * buffer, and then casts that to an ACL
+        structure, irrespective of buffer length; this can lead to
+        segfaults (via unallocated memory indexing). Depending on the
+        exact buffer, the same code might segfault on all
+        architectures, some architectures, all C compiler versions, or
+        some C compilers, or any combination of the above :(
+
+        To mitigate this, pass a much larger buffer size as returned
+        from the state, just nulled out - in the Linux version of the
+        library, the first byte is the structure size and is tested
+        for correct size, and a null byte will cause failure.
+
+        """
+        if src is None:
+            src = posix1e.ACL()
+        state = src.__getstate__()
+        nulled = b'\x00' * (10 * len(state))
+        return nulled
+
     @require_copy_ext
-    def test_acl_copy_ext_failure(self):
+    def test_acl_copy_int_failure(self):
         a = posix1e.ACL()
-        state = a.__getstate__()
-        # This is a dangerous test. The acl_copy_int() C function gets
-        # a void * buffer, and then casts that to an ACL structure,
-        # irrespective of buffer length; this can lead to segfaults
-        # (via unallocated memory indexing)
-        #
-        # To mitigate this, pass same buffer size as returned from the
-        # state, just nulled out - in the Linux version of the
-        # library, the first byte is the structure size and is tested
-        # for correct size, and a null byte will cause failure.
-        nulled = b'\x00' * len(state)
+        nulled = self.get_nulled_state(a)
         with pytest.raises(IOError):
             a.__setstate__(nulled)
 
     @require_copy_ext
-    def test_acl_copy_ext_failure(self):
+    def test_acl_copy_int_failure_is_noop(self):
         a = posix1e.ACL(text=BASIC_ACL_TEXT)
         b = posix1e.ACL()
         c = posix1e.ACL(acl=a)
         assert a == c
         assert a != b
-        state = b.__getstate__()
-        # See notes in the test_acl_copy_ext_failure() for how tricky this is.
-        nulled = b'\x00' * len(state)
+        nulled = self.get_nulled_state(b)
         with pytest.raises(IOError):
             a.__setstate__(nulled)
         # Assert that 'a' didn't change in the attempt to restore
@@ -557,13 +569,13 @@
         assert a == c
 
     @require_copy_ext
-    def test_acl_copy_ext_args(self):
+    def test_acl_copy_int_args(self):
         a = posix1e.ACL()
         with pytest.raises(TypeError):
             a.__setstate__(None)
 
     @require_copy_ext
-    def test_acl_init_copy_ext(self):
+    def test_acl_init_copy_int(self):
         a = posix1e.ACL(text=BASIC_ACL_TEXT)
         b = posix1e.ACL()
         c = posix1e.ACL(data=a.__getstate__())
@@ -571,9 +583,9 @@
         assert c == a
 
     @require_copy_ext
-    def test_acl_init_copy_ext_invalid(self):
+    def test_acl_init_copy_int_invalid(self):
         with pytest.raises(IOError):
-            posix1e.ACL(data=b"foobar")
+            posix1e.ACL(data=self.get_nulled_state())
 
 
 class TestWrite:

Reply via email to