diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 449 |
1 files changed, 449 insertions, 0 deletions
@@ -0,0 +1,449 @@ +D-Bus Python Bindings 1.0.0 (UNRELEASED) +======================================== + +The "never trust a .0 release?" release. + +Dependencies: + +* libdbus 1.4 or later is now required. + +* Python 2.6 or later is now required. If Python 3 is used, it must be + version 3.2 or later. + +* GNU make (or, at your own risk, another make with the GNU $(patsubst) + extension) is now required. + +API changes: + +* dbus_bindings, which was never meant to be public API and has been + deprecated for nearly 5 years, has finally been removed. + +* The repr() of every dbus-python object is now unicode. + +* The Python 3 API is not the same as the Python 2 API; see PY3PORT.rst + for details. + +Enhancements: + +* Python 3 compatibility (fd.o #26420, Barry Warsaw) + +* MethodCallMessage and SignalMessage now have a more useful repr() + (Barry Warsaw) + +Fixes: + +* OOM while appending a unicode object to a message no longer leaks a string + (Barry Warsaw) + +* If libdbus somehow gives us invalid UTF-8, don't crash (Barry Warsaw) + +* Fix rst2html failure in non-UTF-8 locales (Alexandre Rostovtsev) + +D-Bus Python Bindings 0.84.0 (2011-05-25) +========================================= + +The "Comrade Bill Bartram's Egalitarian Anti-Imperialist Soviet Stout" release. + +Enhancements: + +* fd.o #30812: add the UnixFd type, and support Unix fd passing if + compiled against a new enough libdbus (Elvis Pfützenreuter) + +* fd.o #34342: add Connection.set_allow_anonymous(bool) (Scott Tsai) + +* fd.o #21017: add configure arguments PYTHON_INCLUDES and PYTHON_LIBS which + can be used to override $PYTHON-config (Simon McVittie, based on a patch from + Robert Schwebel) + +Fixes: + +* fd.o #35626: clear ProxyObject's pending introspection queue after + execution (Scott Tsai) + +* fd.o #22560: remove duplicate code from example-async-client (Simon McVittie) + +* fd.o #36206: allow signature='x' among ProxyObject method arguments + (Simon McVittie) + +D-Bus Python Bindings 0.83.2 (2010-12-02) +========================================= + +Dependencies: + +* libdbus 1.2 is still supported, but libdbus >= 1.4 is recommended. + +Fixes: + +* Make BusConnection.list_activatable_names actually call ListActivatableNames, + not ListNames (Johan Sandelin) + +* Don't override CFLAGS when adding compiler warnings + (Louis-Francis Ratté-Boulianne) + +* Fix compilation on platforms where Py_ssize_t is larger than int, like x86-64 + (Elvis Pfützenreuter) + +* fd.o #21831: deserialize empty byte arrays with byte_arrays=True as + ByteArray(''), not ByteArray('None') (Simon McVittie) + +* fd.o #23278, #25105: fix crashes when trying to append more struct entries + than the signature allows with libdbus 1.4 (Simon McVittie) + +* fd.o #23831: fix crashes when an embedded Python interpreter imports dbus, + is finalized, is re-initialized, and re-imports dbus (Simon McVittie) + +D-Bus Python Bindings 0.83.1 (2010-02-18) +========================================= + +Fixes: + +* fd.o #21172: avoid some deprecation warnings in Python 2.6 + +* fd.o #15013: add dbus.lowlevel.MESSAGE_TYPE_SIGNAL etc., for those who care + about message types at a low level + +* When removing signal matches, clean up internal state, avoiding a memory + leak in long-lived Python processes that connect to signals from arbitrarily + many object paths (fd.o #17551, thanks to Marco Pesenti Gritti) + +* When setting the sender of a message, allow it to be org.freedesktop.DBus + so you can implement a D-Bus daemon in pure Python (patch from Huang Peng) + +D-Bus Python Bindings 0.83.0 (2008-07-23) +========================================= + +Features: + +* Add bindings for DBusServer (thanks to Mathias Hasselmann, Huang Peng; + fd.o #14322, #15514). + +* Omit the service's traceback from certain D-Bus errors: specifically, those + that were probably deliberately raised as part of an API. Subclasses + of DBusException that indicate programmer error can turn the traceback + back on if it seems likely to be useful. + +Fixes: + +* Don't emit spurious Error messages if libdbus gives object-path handlers + a message that isn't a method call (most likely because of binding to a + locally emitted signal, as in fd.o #14199). + +* Make multiple filters added by Connection.add_message_filter work + (fd.o #15547, thanks to Huang Peng). + +* Make the API docs build correctly when out-of-tree + +* Require dbus 1.0 so we can get rid of DBUS_API_SUBJECT_TO_CHANGE + +D-Bus Python Bindings 0.82.4 (2007-12-10) +========================================= + +Fixes: + +* supplying reply_handler but not error_handler raises + MissingReplyHandlerException instead of MissingErrorHandlerException, + and vice versa (fd.o #12304, patch from René Neumann) +* Using non-recursive make for dbus/ directory should fix builds in some + environments (fd.o #12741) + +Licensing: + +* Everything is now under the same MIT/X11 license used for Collabora code in + the previous release +* Added copyright headers to some files that were still missing them + +D-Bus Python Bindings 0.82.3 (2007-09-27) +========================================= + +Fixes: + +* Out-of-tree builds with an absolute $(srcdir) can now build docs and run tests +* Closing private dbus.Bus no longer raises KeyError (fd.o #12096) +* async_err_cb(MyException()) now works (fd.o #12403) +* dbus.service.Object.remove_from_connection no longer claims that multiple + exports aren't possible (fd.o #12432) +* Setting _dbus_error_name as a class attribute of DBusException subclasses + works again + +Deprecations: + +* dbus.Bus(private=True) (use dbus.bus.BusConnection in new code, dbus.Bus + basically just adds the shared-connection behaviour) + +Licensing: + +* Code for which Collabora is the only copyright holder is now under the + same permissive MIT/X11 license under which dbus core is being relicensed + (this allows everything the old license would have allowed, and more) + +D-Bus Python Bindings 0.82.2 (2007-08-01) +========================================= + +Incompatibility with 0.82.1: + +* If you pass the timeout argument to call_async or an asynchronous proxy + method call and expect it to be in milliseconds, you should change the + argument to be in seconds, and require dbus-python >= 0.82.2. + + This feature didn't work at all in versions prior to 0.82.1, so any code + that works with 0.82.0 or earlier is unaffected. + +Features: + +* @dbus.service.method supports a rel_path_keyword argument for the benefit + of fallback objects, which provides the method implementation with the path + of the object within the exported subtree. For instance, if you have a + fallback object exported at /Fallback, and you call a method that has + rel_path_keyword='rel_path' on /Fallback and on /Fallback/Some/Where, the + method implementation will be called with rel_path='/' and with + rel_path='/Some/Where' respectively. (fd.o #11623) + +* If you have epydoc version 3 (currently in beta), API documention is now + generated by default. + +Fixes: + +* As mentioned under "Incompatibilities" above, Connection.call_async() + measures timeouts in seconds, as was always intended. + This means that calls through a proxy object with a reply_handler and + error_handler will measure the timeout in seconds too. + +* Introspect() now works on objects exported in more than one location. + (fd.o #11794) + +* Building against Python 2.4 on non-Debian-derived distributions, or a + non-default Python version on Gentoo, should work again (revenge + of fd.o #11282, thanks Eyal Ben David). + +D-Bus Python Bindings 0.82.1 (2007-07-11) +========================================= + +The "double precision" release. + +Fixes: + +* Parse the timeout correctly in send_message_with_reply() and + send_message_with_reply_and_block(), fixing the use of non-default timeouts + (bugs.fd.o #11489) +* The tutorial no longer uses interactive-Python syntax, as it confused users. + (bugs.fd.o #11209) +* When making a call via a proxy object with ignore_reply=True, also get the + necessary introspection data asynchronously. This can avoid deadlocks in + some cases, such as calling methods in the same process (though this is not + recommended, for efficiency and sanity reasons). +* dbus.lowlevel exposes enough constants to write correct filter functions. +* We don't use dbus_watch_get_fd() (deprecated in libdbus) unless our libdbus + is too old to have the modern replacement, dbus_watch_get_unix_fd(). + +Deprecations: + +* Omitting the bus argument in the BusName constructor is deprecated. + The fact that it uses the globally shared connection to the session bus by + default is uncomfortably subtle. + +D-Bus Python Bindings 0.82.0 (2007-06-19) +========================================= + +Features: + +* dbus.service.Object can start off with no Connection or object path, and + become exported later. If suitable class attributes are set, objects can + even be exported on multiple connections, or with multiple object-paths, + or both. + +* dbus.service.FallbackObject implements a whole subtree of object-path space + (fd.o #9295). + +* ``@method`` accepts a parameter ``connection_keyword`` so methods can find + out which connection to use for any follow-up actions. + +* ``@signal`` has a new parameter ``rel_path_keyword`` which gets the path at + which to emit the signal, relative to the path of the FallbackObject. + ``path_keyword`` is now deprecated, and will raise an exception if used + on an object with ``SUPPORTS_MULTIPLE_OBJECT_PATHS``, including any + ``FallbackObject``. + +Fixes: + +* In watch_name_owner, only the desired name is watched! + +* When cleaning up signal matches, errors are ignored. This avoids using up + scarce pending-call allowance on dbus-daemon < 1.1, and emitting error + messages if we get disconnected. + +* Signal handlers which are bound to a unique name are automatically + disconnected when the unique name goes away, reducing the likelihood that + applications will leak signal matches. + +* Some corrections were made to the tutorial (@service and @method take a + parameter dbus_interface, not just interface; fd.o #11209). + +* ${PYTHON}-config is used to get the Python include path (patch from + Sebastien Bacher/Ubuntu, fd.o #11282). + +D-Bus Python Bindings 0.81.1 (4 June 2007) +========================================== + +Features: + +* When an Error message on the bus is represented as a DBusException, the + error name is copied into the exception and can be retrieved by + get_dbus_name(). Exception handlers should use this instead of looking at + the stringified form of the exception, unless backwards compatibility + is needed. +* DBusException objects now get all arguments from the Error message, not + just the first (although there will usually only be one). Use the 'args' + attribute if you need to retrieve them. +* The Connection, BusConnection and Bus classes have a method + list_exported_child_objects(path: str) -> list of str, which wraps + dbus_connection_list_registered() +* You can remove objects from D-Bus before they become unreferenced, by + using dbus.service.Object.remove_from_connection() + (https://bugs.freedesktop.org/show_bug.cgi?id=10457) + +Bug fixes: + +* Don't deadlock when removing a signal match that tracks name-owner changes. + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=426412) +* Include child nodes in introspection using list_exported_child_objects() + +D-Bus Python Bindings 0.81.0 (9 May 2007) +========================================= + +The 'series of tubes' release +----------------------------- + +This is a feature release with support for non-bus-daemon connections +and improved GObject integration. + +Features: + +* Bus has a superclass dbus.bus.BusConnection (a connection to a bus daemon, + but without the shared-connection semantics or any deprecated API) + for the benefit of those wanting to subclass bus daemon connections + +* BusConnection has a superclass dbus.connection.Connection (a + connection without a bus daemon) for use in peer-to-peer situations, + or distributed pseudo-bus situations without a bus daemon such as + Telepathy's Tubes API + +* dbus.gobject_service.ExportedGObject is like dbus.service.Object, but + is also a subclass of GObject (with the necessary metaclass magic to + make this work). Until someone has verified that the GObject side of + things works as expected too, I consider this API to be potentially + subject to change! + +* Connection and BusConnection have gained a number of useful methods, + including watch_name_owner (track name owner changes asynchronously, + avoiding race conditions), call_blocking and call_async (blocking and + asynchronous method calls without going via a proxy - note that these + are semi-low-level interfaces which don't do introspection), and + list_names, list_activatable_names and get_name_owner which are + simple wrappers for the corresponding org.freedesktop.DBus methods + +* dbus.Interface (now also available at dbus.proxies.Interface) + and dbus.proxies.ProxyObject now have some reasonably obvious properties. + +Deprecations: + +* All keyword arguments called named_service are deprecated in favour of an + argument called bus_name (to be compatible with both older and newer + dbus-python, you should pass these positional arguments). + +* The bus keyword argument to dbus.proxies.ProxyObject is deprecated in + favour of an argument called conn, because proxies will work on non-bus + connections now (again, for maximum compatibility you should use a + positional argument for this). + +* No warning is raised for this, but I consider calling any remote method + on a ProxyObject or Interface whose name is either alllowercase or + lower_case_with_underscores to be deprecated, and reserve the right + to add properties or methods of this form in future releases - use + ProxyObject.get_dbus_method if you must call a remote method named in + this way. Methods named following TheUsualDBusConvention or + theJavaConvention are safe. + +Bugfixes: + +* Exceptions in signal handlers print a stack trace to stderr (this can + be redirected elsewhere with Python's logging framework). Partially + addresses fd.o #9980. + +* The reserved local interface and object path are properly checked for. + +* When you return a tuple that is not a Struct from a method with no + out_signature, it's interpreted as multiple return values, not a + single Struct (closes fd.o #10174). + +* If send_with_reply() returns TRUE but with pending call NULL, dbus-python + no longer crashes. This can happen when unexpectedly disconnected. + +* Arguments are not examined for functions declared METH_NOARGS (this is + unnecessary and can cause a crash). + +Other notable changes: + +* dbus-python uses the standard Python logging framework throughout. + The first time a WARNING or ERROR is generated, it will configure the + logging framework to output to stderr, unless you have already + configured logging in your application. + +* The tutorial now advocates the use of add_signal_receiver if all you + want to do is listen for signals: this avoids undesired activation, + e.g. of Listen or Rhythmbox (!). Addresses fd.o #10743, fd.o #10568. + +D-Bus Python Bindings 0.80.2 (13 February 2007) +=============================================== +- Fix numerous memory and reference leaks +- Only use -Werror if the user specifically asks for it +- Audit tp_dealloc callbacks to make sure they correctly preserve the + exception state +- Relicense files solely owned by Collabora Ltd. more permissively (LGPL/AFL + rather than GPL/AFL) - this includes the tutorial and all the C code + +D-Bus Python Bindings 0.80.1 (24 January 2007) +============================================== +- The "oops" release +- Install dbus/_version.py, so dbus.__version__ exists again + +D-Bus Python Bindings 0.80.0 (24 January 2007) +============================================== +- The "everything changes" release +- Rewrite dbus_bindings (Pyrex) as _dbus_bindings (C) - API changes! +- Define what's public API +- Move low-level but still public API to dbus.lowlevel +- Remove Variant class, add variant_level property on all D-Bus types +- Make signal matching keep working as expected when name ownership changes +- Use unambiguous D-Bus types when transferring from D-Bus to Python +- Follow well-defined rules when transferring from Python to D-Bus +- Add utf8_strings and byte_arrays options in various places, so a user + can tweak the calling conventions to be more efficient +- Raise RuntimeError if user tries to use a connection with no main loop + to do something that won't work without one +- Make asynchronous method calls actually asynchronous when made before + introspection results come back +- Redo main loop machinery so we can add pure-Python main loops later without + API breakage +- Allow construction of a dbus.service.Object if you don't have a BusName + (or even a Bus) +- Port introspection XML parser from libxml2 (external package) to expat + (included with Python) +- Port build system from distutils to autoconf/automake/libtool +- Install a header file for third-party main loop integration +- Make compatible with Python 2.5, including on 64-bit platforms +- Add docstrings throughout +- Add more tests and examples +- Add interoperability tests (which interoperate with Java) +- Add copyright notices! + +D-Bus Python Bindings 0.71 (24 July 2006) +============================================================== +- Binary modules are now installed in the correct directory +- Distutils exports the dbus and dbus-glib cflags + +D-Bus Python Bindings 0.70 (17 July 2006) +============================================================== +- First release of bindings split +- Move to a distutils build enviornment +- It is possible to now specify sender_keyword="foo", path_keyword="bar" when + adding a signal listener |