* Wed Sep 19 2018 Antonio Larrosa <firstname.lastname@example.org>
- Update to version 1.3.5
* Add `handle_signals` option to `llfuse.main`
* Several fixes to `examples/passthroughfs.py`
* Now compatible with Python 3.7
- Remove patch already in upstream.
* Mon Aug 13 2018 email@example.com
- Add patch to build with new attr:
- Drop contextlib2 dependency
- Run tests unconditionally
* Mon Jun 18 2018 firstname.lastname@example.org
- Update to version 1.3.4
* No-change rebuild with Cython 0.28.2.
- Update to version 1.3.3
* Dropped pytest-catchlog dependency and add support for Pytest 3.3.0.
* Minor bugfixes.
- Add fix-char-cast-to-unsigned-int.patch to fix a compiler error when
casting from char to Py_UNICODE (unsigned int) due to a possible change
- Add fix-test-for-fusermount.patch to skip the tests that rely on
fusermount since it doesn't work in OBS's chroot.
- Add %check section back. It's not possible to check all tests since for
that, the user that runs the test should be in the trusted group, but
at least some tests are run.
* Tue Jan 09 2018 email@example.com
- Remove %check section since it's not checking anything
* Fri Jan 05 2018 firstname.lastname@example.org
- Update to version 1.3.2
* Minor bugfixes.
- Update to version 1.3.1
* The main loop now terminates properly again when terminated by a signal.
- Update to version 1.3
* The StatvfsData class now has an !~StatvfsData.f_namemax attribute.
* EntryAttributes and StatvfsData instances can now be pickled and copied.
Other llfuse classes now raise an exception when the do not support
* Wed Sep 06 2017 email@example.com
- Split documentation into a new python-llfuse-docs package.
- Added full changelog in the previous changelog entry
* Thu Aug 24 2017 firstname.lastname@example.org
- change spec-file for multi-python build
- Update to version 1.2
* The attr argument of the ~Operations.setattr handler now contains
valid values only for the attributes that are to be set.
* Previously, the documentation assorted that other attributes would
be set to the original (unchanged) values. However, that was actually
never the case.
- Release 1.1.1 (2016-07-27)
* Fixed the description of the ~Operations.lookup handler (should
return zero if there is no such entry, not a negative value).
* Fixed the description of the EntryAttributes structure (descriptions
of ~EntryAttributes.attr_timeout and ~EntryAttributes.entry_timeout
- Release 1.1 (2016-05-23)
* Added support for nanosecond resolution time-stamps in GNU/kFreeBSD.
* Fixed another set of build issues on FreeBSD.
- Release 1.0 (2016-03-08)
* Note: The 1.0 version number does not imply any special stability or
an API freeze. It's a consequence of switching to semantic versioning,
where backwards incompatible changes will always result in increased
* Fixed an overflow when accessing the *st_xtime_ns attributes of the
~llfuse.EntryAttributes class from Python on 32-bit systems.
* POTENTIAL COMPATIBILITY BREAK: The ~Operations.destroy handler is
now called with the global lock acquired.
- Release 0.43 (2016-02-23)
* Fixed build-failure under OS-X.
* Fixed some build failures under FreeBSD (hopefully all of them,
but no testers were available before the release).
* The workers parameter to llfuse.main may now be None.
- Release 0.42.1 (2016-02-01)
* Include HTML documentation.
- Release 0.42 (2016-01-30)
* The documentation has been clarified and extended - please take
a look even if you're already familiar with Python-LLFUSE.
* Extended coverage of unit tests.
* Fixed a compile error under OS-X.
* Added notify_store function.
* Added get_sup_groups function.
* The ~Operations.read handler may now return arbitrary objects that
as long as they implement the buffer protocol.
* Implemented a forget_multi handler (used behind the scenes).
* Many classes were rewritten in Cython for improved performance.
* Python thread-specific data is now initialized only once rather
than every time a handler is called.
* SIGINT (Ctrl-C) now properly terminates llfuse.main also when
running with multiple workers.
* The return value of llfuse.main now indicates if the loop was
terminated due to an unmount request or due to a signal.
* BACKWARDS INCOMPATIBLE CHANGES:
* Ducktyping the EntryAttributes class is no longer allowed, Operations
methods must return instances of this class (rather than any object
that provides the neccessary attributes).
* The !st_Xtime attributes of the EntryAttributes have been dropped
in favor of the !st_Xtime_ns attributes.
* The setattr method now always receives a completely filled
EntryAttributes instance. To determine which attributes should be
changed, a new fields argument has been introduced.
* The ~Operations.setattr method now also receives an fh parameter.
* The llfuse.main function now has a workers parameter, and the
single parameter was dropped.
* Almost all request handlers now receive a RequestContext instance
in an additional parameter.
- Release 0.41.1 (2015-08-22)
* Added some files in :file:`test/` that were missing in the
0.41 tarball. Tests now support the --installed option, produce
prettier output, and check for error messages printed to stderr
* Python-LLFUSE can now also be built on NetBSD.
* Added support for FUSE_SET_ATTR_ATIME_NOW and
FUSE_SET_ATTR_MTIME_NOW setattr flags. Previosly, these would be
* Fixed an AssertionError in :file:`examples/passthroughfs.py`
- Release 0.41 (2015-08-20)
* Fixed a syntax error in contrib/tmpfs.py
* Introduced an !llfuse.__version__ attribute.
* Added more reasonable default values for llfuse.EntryAttributes.
* Added new minimal example, :file:`examples/lltest.py`.
* Added unit tests.
* Added an example for a pass-through file system,
* Sun Dec 08 2013 email@example.com
- Update to version 0.40
* Re-raising an exception from a request handler now works
correctly under Python 3. Problems were caused by a Cython bug,
but llfuse now works around the issue.
* File atime, ctime and mtime can now also be represented as
nanosecond integer values for increased resolution.
* Python-llfuse no longer includes the setuptools/distribute
bootstrap script. This module thus has to be installed manually
if not already present on the system.
* Duck-typing of the Operations instance is now supported.
* Python-llfuse no longer requires a re-compilation of the
Cython code (setup.py build_cython step) when compiling for MacOS
* Extended attributes are now properly supported under FreeBSD.
- General spec file clean-up
* Thu Oct 24 2013 firstname.lastname@example.org
- Require python-setuptools instead of distribute (upstreams merged)
* Sun Dec 11 2011 email@example.com
- update to 0.37.1
* Fixed a segfault-causing race condition in Lock.acquire() and
- 2011-12-05, llfuse 0.37
* Explicitly call fuse_chan_destroy() in llfuse.close(), so
that the mountpoint becomes inaccessible right away, even
while the process is still running.
* Added get_ino_t_bytes() and get_off_t_bytes() that return
the number of bytes used for representing inode numbers
and file offsets.
* The yield_() method of the global lock now takes an additional
* count* argument that can be used to yield the lock more than
* Changed implementation of global lock. The global lock is
no longer a mutex, but a boolean variable protected by a mutex,
and changes are tracked with a condition object. This allows
lock.yield() to work properly: if there are other threads waiting
for the lock, they are guaranteed to run. If there are no other
threads waiting for the lock, execution of the active thread
The previous implementation using sched_yield() was mostly
broken: threads trying to acquire the global lock were calling
pthread_mutex_lock, so they got removed from the kernels
runqueue. However, calls to sched_yield() would just put the
active thread into the expired runqueue, and calls to
pthread_mutex_unlock apparently do not synchronously move the
threads waiting for the lock back to a runqueue. Therefore, most
of the time the active thread would be the only thread in any
runqueue and thus continue to run.
* The Operations.forget() method now receives a list of
(inode, nlookup) tuples rather than just one such tuple.
* invalidate_entry() and invalidate_inode() no longer work
synchronously. Instead, the message is put in a queue and send by
a background thread.
* The acquire() method of the global lock now has an optional
* timeout* parameter.
* The create() request handler now receives the open flags
as an additional parameter.
- for more info please see Changes.txt
* Fri May 13 2011 firstname.lastname@example.org
- update to 0.31
* Fri Dec 31 2010 email@example.com
- initial version (0.29.4)