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).
[](https://github.com/iustin/pylibacl/actions/workflows/ci.yml)
[](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).
[](https://github.com/iustin/pylibacl/actions/workflows/ci.yml)
[](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: