pyxattr.git
7 years agoFix tests when tmp files have attributes.
Sean Patrick Santos [Sun, 9 Mar 2014 02:17:26 +0000 (19:17 -0700)]
Fix tests when tmp files have attributes.

SELinux systems may have the security.selinux attribute defined for
temporary files upon creation. This can cause problems for the tests,
which assumed that new files have no attributes. Similar problems can
arise in other cases where temporary files created by python start out
with attributes.

To work around this, a comma-separated list of attributes to ignore can
be specified in the environment variable "TEST_IGNORE_XATTRS". Any
attributes specified in this way will be filtered out by tests.

8 years agoUpdate docs for the 0.5.2 release pyxattr-v0.5.2
Iustin Pop [Thu, 3 Jan 2013 21:27:40 +0000 (22:27 +0100)]
Update docs for the 0.5.2 release

Of course I forgot this, and as github has also deprecated downloads,
we should switch to something else…

8 years agoBump version and update NEWS for the 0.5.2 release
Iustin Pop [Thu, 3 Jan 2013 20:45:14 +0000 (21:45 +0100)]
Bump version and update NEWS for the 0.5.2 release

All tests pass, let's release!

8 years agoFix string/unicode buffer size parsing
Iustin Pop [Thu, 3 Jan 2013 20:36:36 +0000 (21:36 +0100)]
Fix string/unicode buffer size parsing

It seems that CPython allows passing "wrong" pointers for et#
(Py_ssize_t instead of int), but PyPy has problems with this, and
wrongly casts the pointers, leading to unsigned/signed conversion
failures.

This bug was introduced in commits 433c5852 and 8aa6fd81; I'm no
longer sure why bufsize was changed from int to Py_ssize_t as well,
but passing an int value to a C function expecting an ssize_t should
be safe as the compiler should do the required conversions behind the
scenes (as long as it has correct information about the types).

Closes gh-1.

8 years agoEnable testing with python 3.3 and pypy as well
Iustin Pop [Thu, 3 Jan 2013 20:35:44 +0000 (21:35 +0100)]
Enable testing with python 3.3 and pypy as well

The pypy test is not versioned, since Debian only provides a single
pypy binary, so I don't have an environment with multiple pypy
installations.

8 years agoEnable compiler warnings
Iustin Pop [Thu, 3 Jan 2013 20:27:03 +0000 (21:27 +0100)]
Enable compiler warnings

`-Wall -Werror` should make compiler warnings much more obvious,
hopefully catching more latent bugs.

8 years agoMake setup.py behave nicely without setuptools
Iustin Pop [Thu, 3 Jan 2013 20:26:15 +0000 (21:26 +0100)]
Make setup.py behave nicely without setuptools

Currently, it would fail hard, whereas we can at least build the
extension (even though the testsuite will not work) when setuptools is
missing.

8 years agoPython 2.5 can't parse byte literals, so use bytes() instead.
Mike Gilbert [Fri, 21 Dec 2012 21:33:18 +0000 (16:33 -0500)]
Python 2.5 can't parse byte literals, so use bytes() instead.

9 years agoFix title in index page
Iustin Pop [Tue, 15 May 2012 23:48:26 +0000 (01:48 +0200)]
Fix title in index page

9 years agoClarify the namespace type under Py3 pyxattr-v0.5.1
Iustin Pop [Tue, 15 May 2012 23:34:42 +0000 (01:34 +0200)]
Clarify the namespace type under Py3

9 years agoUpdate NEWS file for the 0.5.1 release
Iustin Pop [Tue, 15 May 2012 23:23:20 +0000 (01:23 +0200)]
Update NEWS file for the 0.5.1 release

9 years agoComplete the change of namespace handling
Iustin Pop [Tue, 15 May 2012 23:19:58 +0000 (01:19 +0200)]
Complete the change of namespace handling

This disables None as a valid namespace under Python 2.x too; now only
an empty string is accepted.

The patch also documents the change.

9 years agoFix bug in get_all for empty namespace handling
Iustin Pop [Tue, 15 May 2012 23:11:13 +0000 (01:11 +0200)]
Fix bug in get_all for empty namespace handling

Also add an unit test for it.

9 years agoMore setup.py updates
Iustin Pop [Tue, 15 May 2012 22:58:24 +0000 (00:58 +0200)]
More setup.py updates

9 years agoAdd a download_url for pypi
Iustin Pop [Tue, 15 May 2012 22:46:42 +0000 (00:46 +0200)]
Add a download_url for pypi

9 years agoBump version number for new release
Iustin Pop [Tue, 15 May 2012 22:31:56 +0000 (00:31 +0200)]
Bump version number for new release

Also switch the homepage URL.

9 years agoUpdate gitignore file
Iustin Pop [Tue, 15 May 2012 22:25:12 +0000 (00:25 +0200)]
Update gitignore file

9 years agoMakefile improvements
Iustin Pop [Tue, 15 May 2012 22:23:43 +0000 (00:23 +0200)]
Makefile improvements

… and remove old run-tests file, obsoleted by the Makefile.

9 years agoUpdate manifest file
Iustin Pop [Tue, 15 May 2012 22:22:15 +0000 (00:22 +0200)]
Update manifest file

9 years agoUpdate README to include the old website info
Iustin Pop [Tue, 15 May 2012 22:16:03 +0000 (00:16 +0200)]
Update README to include the old website info

9 years agoConvert NEWS file
Iustin Pop [Tue, 15 May 2012 22:07:07 +0000 (00:07 +0200)]
Convert NEWS file

This allows it to be included in the doc nicely.

9 years agoSwitch documentation style to sphinx
Iustin Pop [Tue, 15 May 2012 22:03:47 +0000 (00:03 +0200)]
Switch documentation style to sphinx

Still work needed to transition this completely, but looks good so far.

9 years agoRename convertObj → convert_obj
Iustin Pop [Tue, 15 May 2012 20:03:55 +0000 (22:03 +0200)]
Rename convertObj → convert_obj

Makes the style more consistent with the rest of the file.

9 years agoFix two missing close() class in tests
Iustin Pop [Tue, 15 May 2012 20:01:53 +0000 (22:01 +0200)]
Fix two missing close() class in tests

Eliminates a warning during testing.

9 years agoRework parsing of the namespace argument
Iustin Pop [Tue, 15 May 2012 19:24:04 +0000 (21:24 +0200)]
Rework parsing of the namespace argument

In Python 3, we cannot accept (easily) bytes or None, so we have to
change how we accept the namespace argument.

Previously, if the argument was not passed or it was None, it was
considered missing. Since the None option is no longer possible, we
change it so that if not passed or passed as an empty string, it is
considered missing. This changes the behaviour somewhat, but I hope
that empty namespaces are not used (that's what I understand from
reading various pages on the internet).

9 years agoRemove use of deprecated fail* test functions
Iustin Pop [Tue, 15 May 2012 19:23:20 +0000 (21:23 +0200)]
Remove use of deprecated fail* test functions

9 years agoRework init sequence
Iustin Pop [Mon, 14 May 2012 22:38:56 +0000 (00:38 +0200)]
Rework init sequence

This makes it a bit more clean, and thus removes the last refcount
issue; however, the code itself is much uglier :(

9 years agoA few docstring fixes
Iustin Pop [Mon, 14 May 2012 22:23:12 +0000 (00:23 +0200)]
A few docstring fixes

9 years agoFix a (harmless) integer mismatch
Iustin Pop [Mon, 14 May 2012 22:20:35 +0000 (00:20 +0200)]
Fix a (harmless) integer mismatch

This is not critical, but let's not over-optimise and request a byte
when we store it anyway in an int…

9 years agoCheck merge_ns return value in all places
Iustin Pop [Mon, 14 May 2012 22:17:39 +0000 (00:17 +0200)]
Check merge_ns return value in all places

This eliminates another potential round of errors. Also add cpychecker
attribute for even less noise.

9 years agoRework merge_ns signature
Iustin Pop [Mon, 14 May 2012 22:12:30 +0000 (00:12 +0200)]
Rework merge_ns signature

This is also in order to clarify what is an "error" return for
cpychecker.

Note that most calls to this function do not have yet error checking,
will be fixed in separate patch.

9 years agoFix a case of missing exception on return NULL
Iustin Pop [Mon, 14 May 2012 22:04:54 +0000 (00:04 +0200)]
Fix a case of missing exception on return NULL

Now that the noise is gone, this is an actual error.

9 years agoRename a variable for more consistency
Iustin Pop [Mon, 14 May 2012 21:54:09 +0000 (23:54 +0200)]
Rename a variable for more consistency

At least, more consistency in the output of git grep convertObj :)

9 years agoMark convertObj as setting the exception on errors
Iustin Pop [Mon, 14 May 2012 21:53:40 +0000 (23:53 +0200)]
Mark convertObj as setting the exception on errors

This eliminates lots of clutter from the cpychecker output, yay!

9 years agoSwitch converObj to negative error return
Iustin Pop [Mon, 14 May 2012 21:48:12 +0000 (23:48 +0200)]
Switch converObj to negative error return

This will allow cpychecker to know that this function has set the
exception already, eliminating false positives.

9 years agoFix some const char* pointers
Iustin Pop [Mon, 14 May 2012 21:40:35 +0000 (23:40 +0200)]
Fix some const char* pointers

This reduces the warnings, and it's a good thing to do.

9 years agoSwitch to setuptools
Iustin Pop [Mon, 14 May 2012 20:50:43 +0000 (22:50 +0200)]
Switch to setuptools

For proper testsuite support.

9 years agoFix small typo
Iustin Pop [Mon, 14 May 2012 20:48:40 +0000 (22:48 +0200)]
Fix small typo

9 years agoFix some potential issues if PyBytes_FromString fails
Iustin Pop [Mon, 14 May 2012 20:37:56 +0000 (22:37 +0200)]
Fix some potential issues if PyBytes_FromString fails

This is unlikely, but if it happens it's ugly.

9 years agoFix bugs reported by cpychecker
Iustin Pop [Mon, 14 May 2012 20:32:07 +0000 (22:32 +0200)]
Fix bugs reported by cpychecker

Thanks to Dave Malcolm's cpychecker tool, this patch fixes a number of
serious issues. All issues that were not deemed false-positives were
fixed; some other issues in the same category that were found only by
a high number of refcount checks are also fixed (I should
split/simplify some parts of the code…).

11 years agoIncrease version to 0.5.0 v0.5.0
Iustin Pop [Sun, 27 Dec 2009 13:30:14 +0000 (14:30 +0100)]
Increase version to 0.5.0

11 years agoImprove the unittest runner
Iustin Pop [Sun, 27 Dec 2009 13:13:58 +0000 (14:13 +0100)]
Improve the unittest runner

This uses only existing python interpreters and does a cleanup before
building the unittest, to help with stale objects.

12 years agoFix a size_t/ssize_t mismatch
Iustin Pop [Sun, 14 Dec 2008 20:12:43 +0000 (21:12 +0100)]
Fix a size_t/ssize_t mismatch

ACL library functions return a ssize_t, so all variables that hold
return values from such return types must be ssize_t, otherwise
comparisons with -1 will fail.

12 years agoSmall style fixes
Iustin Pop [Sun, 14 Dec 2008 18:11:30 +0000 (19:11 +0100)]
Small style fixes

12 years agoAdd python 3 support
Iustin Pop [Sun, 14 Dec 2008 17:47:51 +0000 (18:47 +0100)]
Add python 3 support

This big patch does a few things (which are hard to split):
  - uniformize all function w.r.t. the error exit path (all functions
    now use only one exit point)
  - move from 's' to 'et' format in ParseArgs so that we can accept both
    binary and text, in both 2.x and 3.0
  - update the unittest for py3k

12 years agoInitialize local variables
Iustin Pop [Sun, 14 Dec 2008 17:46:01 +0000 (18:46 +0100)]
Initialize local variables

This patch prepares for the "et" format conversion by initializing the
local variables; it also adds a new "res" object for returns and adds a
few style fixes.

12 years agoAdd a new field to the target_t structure
Iustin Pop [Sun, 14 Dec 2008 17:41:34 +0000 (18:41 +0100)]
Add a new field to the target_t structure

The patch extends the target_t structure with a new PyObject field and
adds a cleanup function for it. This field is needed for properly
handling unicode input arguments with Py3K.

12 years agoMake the module setup py3k-compatible
Iustin Pop [Thu, 11 Dec 2008 09:16:55 +0000 (10:16 +0100)]
Make the module setup py3k-compatible

This patch converts the initialization of the module to work with both
2.x and 3.0.

12 years agoAdd script to run tests
Iustin Pop [Thu, 11 Dec 2008 09:12:54 +0000 (10:12 +0100)]
Add script to run tests

Since we don't have setuptools for now, we add a script to run tests and
modify the test script to work without setuptools.

12 years agoSwitch back to distutils
Iustin Pop [Thu, 11 Dec 2008 09:10:53 +0000 (10:10 +0100)]
Switch back to distutils

Python 3.0 doesn't yet have setuptools, so temporarily we switch back to
distutils.

13 years agoAdd license information to source file
Iustin Pop [Sun, 6 Jul 2008 08:37:43 +0000 (10:37 +0200)]
Add license information to source file

13 years agoIncrease version to 0.4.0 v0.4.0
Iustin Pop [Mon, 30 Jun 2008 20:07:06 +0000 (22:07 +0200)]
Increase version to 0.4.0

13 years agoUpdate MANIFEST.in file for the release
Iustin Pop [Mon, 30 Jun 2008 20:14:50 +0000 (22:14 +0200)]
Update MANIFEST.in file for the release

13 years agoSome final docstring touches before release
Iustin Pop [Mon, 30 Jun 2008 20:04:50 +0000 (22:04 +0200)]
Some final docstring touches before release

13 years agoUpdate license to LGPLv2.1 or later
Iustin Pop [Mon, 30 Jun 2008 19:58:51 +0000 (21:58 +0200)]
Update license to LGPLv2.1 or later

13 years agounittests: enhance symlink tests
Iustin Pop [Mon, 30 Jun 2008 19:17:08 +0000 (21:17 +0200)]
unittests: enhance symlink tests

The patch adds support for testing the behaviour of non-dangling
symlinks; we test that indeed attributes set on the target file are not
visible on the symlink when using nofollow.

13 years agoSome more docstring updates
Iustin Pop [Mon, 30 Jun 2008 18:42:55 +0000 (20:42 +0200)]
Some more docstring updates

13 years agoDocstring updates
Iustin Pop [Mon, 30 Jun 2008 07:08:45 +0000 (09:08 +0200)]
Docstring updates

More epydoc features are now used for prettier output.

13 years agoMore PEP 353 compliancy (new-style functions)
Iustin Pop [Mon, 30 Jun 2008 06:06:00 +0000 (08:06 +0200)]
More PEP 353 compliancy (new-style functions)

13 years agoReorder some declarations
Iustin Pop [Mon, 30 Jun 2008 05:33:27 +0000 (07:33 +0200)]
Reorder some declarations

It's better to have the 'system' defs before our user defs.

13 years agoUpdate .gitignore
Iustin Pop [Mon, 30 Jun 2008 05:32:30 +0000 (07:32 +0200)]
Update .gitignore

13 years agoMerge branch 'fixes' into new_style
Iustin Pop [Mon, 30 Jun 2008 05:20:25 +0000 (07:20 +0200)]
Merge branch 'fixes' into new_style

Fixed conflicts in:

xattr.c

13 years agoImplement changes needed for PEP 353 compliance
Iustin Pop [Mon, 30 Jun 2008 05:16:53 +0000 (07:16 +0200)]
Implement changes needed for PEP 353 compliance

It seems the coded wrongly mixed ssize_t and ints in a couple of places,
plus not properly using Py_ssize_t as needed. Fix these and ensure
backwards compat with python 2.4.

13 years agounittests: add many checks for namespace ops
Iustin Pop [Sun, 29 Jun 2008 22:13:38 +0000 (00:13 +0200)]
unittests: add many checks for namespace ops

The patch adds in many places checks for result correctness when using
namespaces, and for the equality of non-ns versus ns usage.

13 years agoChange the get_all function when using namespaces
Iustin Pop [Sun, 29 Jun 2008 21:35:36 +0000 (23:35 +0200)]
Change the get_all function when using namespaces

This patch changes the returned names from get_all() so that if a
namespace was passed, it and the prefix will be stripped from the names.

Also the docstring for list() was changed to have the same wording as
this one with regard to the names returned.

13 years agoChange the match_ns function syntax
Iustin Pop [Sun, 29 Jun 2008 21:26:10 +0000 (23:26 +0200)]
Change the match_ns function syntax

This patch changes the order of the two arguments and makes the function
return either NULL (failure) or a pointer to the (possibly shortened)
name, so that getting the short name is easier.

13 years agoDocstring updates
Iustin Pop [Sun, 29 Jun 2008 21:21:00 +0000 (23:21 +0200)]
Docstring updates

13 years agoAdd new-style list function
Iustin Pop [Sun, 29 Jun 2008 21:01:04 +0000 (23:01 +0200)]
Add new-style list function

13 years agounittests: allow changing the test dir
Iustin Pop [Sun, 29 Jun 2008 20:50:59 +0000 (22:50 +0200)]
unittests: allow changing the test dir

13 years agoAdd new-style remove function
Iustin Pop [Sun, 29 Jun 2008 20:45:54 +0000 (22:45 +0200)]
Add new-style remove function

13 years agoAdd the new-style get function
Iustin Pop [Sun, 29 Jun 2008 20:33:12 +0000 (22:33 +0200)]
Add the new-style get function

13 years agoCorrect the signature of the generic tgt methods
Iustin Pop [Sun, 29 Jun 2008 20:30:21 +0000 (22:30 +0200)]
Correct the signature of the generic tgt methods

13 years agoAdd new-style set() function
Iustin Pop [Sun, 29 Jun 2008 18:24:35 +0000 (20:24 +0200)]
Add new-style set() function

This patch adds a new style set function and a generic merge_ns function
for combining a namespace string and an attribute name into the final
name.

The patch also duplicates all test methods for dual testing of new-style
and deprecated functions.

13 years agoSome small fixes in get_all
Iustin Pop [Sun, 29 Jun 2008 17:46:03 +0000 (19:46 +0200)]
Some small fixes in get_all

13 years agoAdd unittests for the get_all function
Iustin Pop [Sun, 29 Jun 2008 17:43:57 +0000 (19:43 +0200)]
Add unittests for the get_all function

13 years agoMerge branch 'fixes' into multiget
Iustin Pop [Sun, 29 Jun 2008 17:37:11 +0000 (19:37 +0200)]
Merge branch 'fixes' into multiget

13 years agoSimplify the return None cases
Iustin Pop [Sun, 29 Jun 2008 17:36:24 +0000 (19:36 +0200)]
Simplify the return None cases

13 years agoMerge branch 'fixes' into multiget
Iustin Pop [Sun, 29 Jun 2008 17:31:04 +0000 (19:31 +0200)]
Merge branch 'fixes' into multiget

13 years agoRename dolink to nofollow
Iustin Pop [Sun, 29 Jun 2008 17:30:32 +0000 (19:30 +0200)]
Rename dolink to nofollow

This name makes more sense.

13 years agoMerge branch 'fixes' into multiget
Iustin Pop [Sun, 29 Jun 2008 17:28:10 +0000 (19:28 +0200)]
Merge branch 'fixes' into multiget

13 years agoConvert to object protocol
Iustin Pop [Sun, 29 Jun 2008 17:00:42 +0000 (19:00 +0200)]
Convert to object protocol

This patch changes the hardcoded if-then-else constructs for selecting
the type of function (file-descriptor, symlink, normal path) into a
generic framework.

13 years agoFix a memory leak in an error handling path
Iustin Pop [Sun, 29 Jun 2008 17:02:16 +0000 (19:02 +0200)]
Fix a memory leak in an error handling path

13 years agoConvert to object protocol
Iustin Pop [Sun, 29 Jun 2008 17:00:42 +0000 (19:00 +0200)]
Convert to object protocol

13 years agoMove to goto-style error exit
Iustin Pop [Sun, 29 Jun 2008 16:08:31 +0000 (18:08 +0200)]
Move to goto-style error exit

13 years agoUpdate the dolink parameter name
Iustin Pop [Sun, 29 Jun 2008 16:01:09 +0000 (18:01 +0200)]
Update the dolink parameter name

13 years agoCleanup leftovers from pre-allocated list
Iustin Pop [Sun, 29 Jun 2008 16:00:12 +0000 (18:00 +0200)]
Cleanup leftovers from pre-allocated list

13 years agoMove to fixed buf_val implementation
Iustin Pop [Sun, 29 Jun 2008 15:57:56 +0000 (17:57 +0200)]
Move to fixed buf_val implementation

13 years agoEpydoc conversion of get_all docstring
Iustin Pop [Sun, 29 Jun 2008 15:55:58 +0000 (17:55 +0200)]
Epydoc conversion of get_all docstring

13 years agoFirst iversion get_all
Iustin Pop [Sun, 29 Jun 2008 14:02:52 +0000 (16:02 +0200)]
First iversion get_all

13 years agoAdd module constants for the standard namespaces
Iustin Pop [Sun, 29 Jun 2008 10:06:31 +0000 (12:06 +0200)]
Add module constants for the standard namespaces

13 years agoDocstring updates
Iustin Pop [Sun, 29 Jun 2008 08:20:59 +0000 (10:20 +0200)]
Docstring updates

This patch changes the docstring not to use tabs any longer (they make
pydoc output look not very nice) and changes the top-level example to
show that listxattr now returns a list not a tuple.

13 years agoAdd the license file to MANIFEST.in v0.3.0
Iustin Pop [Sun, 9 Mar 2008 16:37:55 +0000 (17:37 +0100)]
Add the license file to MANIFEST.in

13 years agoUpdate version to 0.3.0
Iustin Pop [Sun, 9 Mar 2008 16:35:31 +0000 (17:35 +0100)]
Update version to 0.3.0

13 years agoUpdated NEWS file for the upcoming 0.3.0 release
Iustin Pop [Sun, 9 Mar 2008 16:29:11 +0000 (17:29 +0100)]
Updated NEWS file for the upcoming 0.3.0 release

13 years agoSwitch from distutils to setuptools
Iustin Pop [Sun, 9 Mar 2008 10:15:13 +0000 (11:15 +0100)]
Switch from distutils to setuptools

13 years agoUpdate gitignore
Iustin Pop [Sun, 9 Mar 2008 10:15:06 +0000 (11:15 +0100)]
Update gitignore

13 years agoAdd some unittests
Iustin Pop [Sun, 9 Mar 2008 10:14:05 +0000 (11:14 +0100)]
Add some unittests

13 years agoChange return value of listxattr from tuple to list
Iustin Pop [Sun, 9 Mar 2008 10:12:53 +0000 (11:12 +0100)]
Change return value of listxattr from tuple to list

A tuple doesn't make much sense - it was initially chosen because it a
tuple is read-only, but that is a bad reason to choose it. This patch
changes the return value to a list.

13 years agoChange the license to LGPL
Iustin Pop [Sun, 9 Mar 2008 10:07:57 +0000 (11:07 +0100)]
Change the license to LGPL

This patch adds the LGPL-3 file and documents the license change in
README.

13 years agoRemove the Makefile and documentation build rules
Iustin Pop [Sat, 8 Mar 2008 16:05:41 +0000 (17:05 +0100)]
Remove the Makefile and documentation build rules

Since the way we built documentation was not nice, remove it instead.
Users can read the documentation using pydoc itself.