7 *released Fri, 01 May 2015*
11 * fixes some more memory leaks when handling out-of-memory in get_all()
13 * improve error reporting when an attribute disappears after we asked
14 for its length but before we managed to read it
15 * fix int/size_t issues found by RedHat/Fedora,
16 https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
17 different than their fix, but it should accomplish the same thing
18 * convert all code to only do explicit casts after checking boundaries,
19 making the code `-Wconversion`-clean (although that warning is not
25 *released Thu, 30 Apr 2015*
27 Fix memory leaks on some of the error-handling paths of the `get()`
33 *released Fri, 23 May 2014*
35 Small optimisations release:
37 * ari edelkind contributed a speed-up optimisation for handling of files
38 without xattrs (which is, in general, the expected case)
39 * Jonas Borgström contributed a behaviour change to the handling of file
40 names: under Python 3 and up, unicode paths are encoded/decoded using
41 the 'surogatee' handler, instead of the 'strict' handler; while this
42 can hide encoding errors, it mirrors what Python libraries do
43 (e.g. see os.fsencode/fsdecode)
44 * Sean Patrick Santos contributed improvements to the test suite so that
45 it can be used even on files systems which have built-in attributes
46 (e.g. when using SELinux, or NFSv4); to enable this, define the
47 attributes in the TEST_IGNORE_XATTRS environment variable
52 *released Thu, 03 Jan 2013*
54 Bug-fix release. Thanks to Michał Górny, it looked like the library had
55 problem running under pypy, but actually there was a bug in the
56 PyArg_ParseTuple use of et# (signed vs. unsigned, and lack of compiler
57 warnings). This was fixed, and now the test suite passed with many
58 CPython versions and PyPy (version 1.9).
63 *released Wed, 16 May 2012*
65 Bug-fix release. Thanks to Dave Malcolm and his cpychecker tool, a
66 number of significant bugs (refcount leaks and potential NULL-pointer
67 dereferences) have been fixed.
69 Furthermore, compatibility with Python 3 has been improved; this however
70 required changing the meaning of the ``namespace`` argument to the
71 functions: if passed, None is no longer a valid value; pass an empty
72 string if (due to the structure of your program) you have to pass this
73 argument but want to specify no namespace.
75 Also, the project home page has changed from SourceForge to GitHub, and
76 the documentation has been converted from epydoc-based to sphinx.
82 *released Sun, 27 Dec 2009*
84 Implemented support for Python 3. This required a significant change to
85 the C module, hence the new version number.
90 *released Mon, 30 Jun 2008*
95 The old functions ({get,set,list,remove}xattr) are deprecated and replaced with
96 a new API that is namespace-aware and hopefully will allow other OSes (e.g.
97 FreeBSD) to be supported more naturally.
99 Both the old and the new API are supported in the 0.4 versions, however users
100 are encouraged to migrate to the new API.
105 A new bulk get function called get_all() has been added that should be somewhat
106 faster in case of querying files which have many attributes.
111 Since LGPLv3 is not compatible with GPLv2 (which unfortunately I didn't realize
112 before), the license was changed to LGPLv2.1 or later.
117 Unittest coverage was improved.
122 *released Sun, 09 Mar 2008*
124 * changed licence from GPL to LGPL (3 or later)
125 * changed listxattr return type from tuple to a list
126 * developer-related: added unittests
131 *released Sun, 01 Jul 2007*
133 * fixed listing symlink xattrs
138 *released Sat, 11 Feb 2006*
140 * fixed a bug when reading symlink EAs (you weren't able to
142 * fixed a possible memory leak when the actual read of the EA
143 failed but the call to get the length of the EA didn't