File: NEWS.md

package info (click to toggle)
python-pylibacl 0.7.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 372 kB
  • sloc: ansic: 1,443; python: 913; makefile: 86; sh: 16
file content (211 lines) | stat: -rw-r--r-- 7,037 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
# News

## Version 0.7.2

*released Sun, 23 Feb 2025*

Single-bugfix release: fixed the typing stub module. Nothing exercised
it, and having been generated with pre-3.6 stubgen, it failed to work
on modern versions. No tests failed (should add some), but the doc
build by Sphinx failed accidentally since the failure to import (which
was ignored) led to a missing title for the module, which Sphinx
complained about. Quite funny :)

## 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*

Important: Python 3.7 is the minimum supported version, due to
difficulty of testing old releases, and the fact that everything older
has been deprecated a long time ago (e.g. 3.6 at the end of 2021).

Otherwise, a minor release:

- Improve error handling in some corner cases (not expected to have
  any real-life impact, but who knows).
- Improved testing coverage and test infrastructure.
- Modernise parts of the C code based on recent Python version
  guidelines.
- Add a simple security policy and contribution guidelines.

## Version 0.6.0

*released Sun, 29 Nov 2020*

Major release removing Python 2 support. This allow both code cleanup
and new features, such as:

- Support for pathlib objects in `apply_to` and `has_extended`
  functions when running with Python 3.6 and newer.
- Use of built-in C API functions for bytes/unicode/pathlib conversion
  when dealing with file names, removing custom code (with the
  associated benefits).

Important API changes/bug fixes:

- Initialisation protocol has been changed, to disallow uninitialised
  objects; this means that `__new__` will always create valid objects,
  to prevent the need for checking initialisation status in all code
  paths; this also (implicitly) fixes memory leaks on re-initialisation
  (calling `__init__(…)` on an existing object) and segfaults (!) on
  non-initialised object attribute access. Note ACL re-initialisation is
  tricky and (still) leads to undefined behaviour of existing Entry
  objects pointing to it.
- Fix another bug in ACL re-initialisation where failures would result
  in invalid objects; now failed re-initialisation does not touch the
  original object.
- Restore `__setstate__`/`__getstate__` support on Linux; this was
  inadvertently removed due a typo(!) when adding support for it in
  FreeBSD. Pickle should work again for ACL instances, although not sure
  how stable this serialisation format actually is.
- Additionally, slightly change `__setstate__()` input to not allow
  Unicode, since the serialisation format is an opaque binary format.
- Fix (and change) entry qualifier (which is a user/group ID) behaviour:
  assume/require that uid_t/gid_t are unsigned types (they are with
  glibc, MacOS and FreeBSD at least; the standard doesn't document the
  signedness), and convert parsing and returning the qualifier to behave
  accordingly. The breakage was most apparent on 32-bit architectures,
  in which context the problem was originally reported (see issue #13).

Minor improvements:

- Added a `data` keyword argument to `ACL()`, which allows restoring an
  ACL directly from a serialised form (as given by `__getstate__()`),
  which should simplify some uses cases (`a = ACL(); a.__set
  state__(…)`).
- When available, add the file path to I/O error messages, which should
  lead to easier debugging.
- The test suite has changed to `pytest`, which allows increased
  coverage via parameterisation.

## Version 0.5.4

*released Thu, 14 Nov 2019*

Maintenance release:

- Switch build system to Python 3 by default (can be overridden if
  needed).
- Internal improvements for better cpychecker support.
- Fix compatibility with PyPy.
- Test improvements (both local and on Travis), testing more variations
  (debug, PyPy).
- Improve test coverage, and allow gathering test coverage results.
- Drop support (well, drop testing) for Python lower than 2.7.
- Minor documentation improvements (closes #9, #12).

## Version 0.5.3

*released Thu, 30 Apr 2015*

FreeBSD fixes:

- Enable all FreeBSD versions after 7.x at level 2 (thanks to Garrett
  Cooper).
- Make test suite pass under FreeBSD, which has a stricter behaviour
  with regards to invalid ACLs (which we do exercise in the test suite),
  thanks again to Garret for the bug reports.

## Version 0.5.2

*released Sat, 24 May 2014*

No visible changes release: just fix tests when running under pypy.

## Version 0.5.1

*released Sun, 13 May 2012*

A bug-fix only release. Critical bugs (memory leaks and possible
segmentation faults) have been fixed thanks to Dave Malcolm and his
``cpychecker`` tool. Additionally, some compatibility issues with Python
3.x have been fixed (str() methods returning bytes).

The documentation has been improved and changed from epydoc to sphinx;
note however that the documentation is still auto-generated from the
docstrings.

Project reorganisation: the project home page has been moved from
SourceForge to GitHub.

## Version 0.5

*released Sun, 27 Dec 2009*

Added support for Python 3.x and improved support for Unicode filenames.

## Version 0.4

*released Sat, 28 Jun 2008*

### License


Starting with this version, pylibacl is licensed under LGPL 2.1,
Febryary 1999 or any later versions (see README.rst and COPYING).

### Linux support

A few more Linux-specific functions:

- add the ACL.equiv_mode() method, which will return the equivalent
  octal mode if this is a basic ACL and raise an IOError exception
  otherwise

- add the acl_extended(...) function, which will check if an fd or path
  has an extended ACL

### FreeBSD support

FreeBSD 7.x will have almost all the acl manipulation functions that
Linux has, with the exception of __getstate__/__setstate__. As a
workaround, use the str() and ACL(text=...) methods to pass around
textual representations.

### Interface

At module level there are now a few constants exported for easy-checking
at runtime what features have been compiled in:

- `HAS_ACL_FROM_MODE`, denoting whether the ACL constructor supports
  the `mode=0xxx` parameter

- `HAS_ACL_CHECK`, denoting whether ACL instances support the
  `check()` method

- `HAS_ACL_ENTRY`, denoting whether ACL manipulation is possible and
  the Entry and Permset classes are available

- `HAS_EXTENEDED_CHECK`, denoting whether the `acl_extended()`
  function is supported

- `HAS_EQUIV_MODE`, denoting whether ACL instances support the
  `equiv_mode()` method

### Internals

Many functions have now unittests, which is a good thing.


## Version 0.3

*released Sun, 21 Oct 2007*

### Linux support

Under Linux, implement more functions from libacl:

- add `ACL(mode=...)`, implementing `acl_from_mode`.
- add `ACL.to_any_text()`, implementing `acl_to_any_text`.
- add ACL comparison, using `acl_cmp`.
- add `ACL.check()`, which is a more descriptive function than
  validate.