4 - Updated to require minimum dbus >= 1.0.0
5 - Automatically track change in ownership of bus names
7 - Strict validation of method invocation against introspection
8 data on exported objects
9 - Improved error messages for invalid interfaces
10 - Add API for disconnecting an object from a signal
11 - Implement GetAll methods on properties interface
12 - Allow leading _ in interface names
17 - Fix introspection XML handling when exporting objects with child
20 - Improve output of Net::DBus::Dumper
22 - Add support for providing parameter & return value names in
25 - Fixes to marshalling of variants
27 - Fix handling of compound data types within object properties
29 - Remove non-portable makefile rules
31 - Fix ref counting bugs in error path.
35 - Added support for getting private bus connections for apps which
36 don't want to deal with a shared bus
38 - Fix test case to use a private connection
40 - On Perl builds where integers are 32-bits, the DBus 64 bit integer
41 types will be serialized to/from the Perl String type instead of
44 - Fix signature when marshalling dicts on newer DBus builds
46 - Fix calling of disconnect wrt to newer DBus semantics
48 - Make introspection much more tolerant of missing information
49 about methods/properties/signals.
51 - Fix use of magic values & added tests
53 - Export the Net::DBus::Dumper methods correctly.
57 - Fixed service owner used for org.freedesktop.DBus object
58 to make signal handling on the bus work again
60 - Pass return value for signal handling callbacks all the
63 - Fix multiple problems with marshalling of variant data
66 - Replace use of dbus_connection_disconnect with _close
67 when compiling against dbus >= 0.90
69 - Call dbus_connection_unref in the DESTROY method of
72 - Fix reference counting in connection & pending call
75 - Added example of galago desktop notifications
77 - Fix test suite errors
79 - Added missing import statement
81 - Throw Net::DBus::Error if an async call fails
85 - Fixed parsing of introspection data if there are processing
86 instructions, or other non-data nodes before the root element.
88 - Replace use of XML::Grove with XML::Twig when parsing the
89 introspection XML documents, since the former has not had any
90 updates / bug fixes since 1999(!), and several people have
91 reported problems using it on Perl 5.8.x
93 - Made all Perl scripts / modules / tests use 'strict' and
96 - Turn Net::DBus::Error into fully fledged object which services
97 can sub-class to allow explicit error handling by clients.
99 - In _dispatch method of Net::DBus::Object ensure that any
100 instances of Net::DBus::Error thrown by the method call
101 are explicitly serialized into DBus errors, rather than
102 a generic 'org.freedesktop.DBus.Failed'.
104 - Change re-distribution license from GPL, to GPL / Perl Artistic,
105 matching the terms of Perl itself.
107 - Add support for registering a callback on Net::DBus::ASyncReply
108 objects to allow notification of completion for asynchronous
113 - Fixed handling of variants in introspection data
115 - Added binding for the DBusPendingCall C object
117 - Added some missing RPM dependancies on XML libs, and on minimum
118 required dbus version
120 - Added support for doing asynchronous method calls, and fire-and-
121 forgot calls for methods whose return status is not desired. Use
122 the constants in Net::DBus::Annotation module to indicate desired
123 call mode. Default is to do synchronous blocking calls.
125 - Added support for the 16-bit integer, signature and object path
128 - Made introspection of root objects compliant with upsteam spec,
129 by calling introspect on the root object, "/", rather than a
130 Perl specific magic object path.
134 - Constructor for Net::DBus::Object allows another Net::DBus::Object
135 to be passed instead of the Net::DBus::Service, to create child
136 objects specifying only a relative path.
138 - Updated minimum required DBus version to be 0.33 to gain access
139 to the unregister_object_path API
141 - Add a disconnect() method to Net::DBus::Object to make it possible
142 to unregister object from the bus & thus make it possible to destroy
143 objects which are no longer required / relevant.
145 - Unregister all child objects if we are unregistered ourselves
147 - Fix numerous POD errors identified by Test::Pod and podchecker
149 - Increase POD documentation to get 100% coverage of all APIs,
150 verified by Test::Pod::Coverage
154 - Introspection data is used only as hint, so if an object
155 exports many methods, but only provides partial introspection
156 data, remote calls fallback to regular typing rules
158 - Re-add dbus_XXX convenience methods to Net::DBus to allow
159 clients to do explicit type casting. Must be requested at
160 export time, using 'Net::DBus qw(:typing)'.
162 - Update all example programs to run against session bus,
163 since there are no security rules to enable them to work
166 - Print out warning upon use, if a method, signal, or property
167 is annotated with the 'org.freedesktop.DBus.Deprecated' flag.
169 - Do not wait for a method reply if the method is annotated
170 with the 'org.freedesktop.DBus.Method.NoReply' flag.
172 - Extend Net::DBus::Exporter to enable methods, signals, and
173 properties to be annotated.
175 - Add support for 'org.freedesktop.DBus.Method.NoReply' and
176 'org.freedesktop.DBus.Deprecated' annotations when exporting
179 - Add a pure in-memory bus implementation for facilitating
180 creation of unit tests which would otherwise require making
181 a connection to a 'live' message bus. Can be accessed via:
185 - Add an *EXPERIMENTAL* mock object to faciltate creation of
186 unit tests which need to communicate with other objects on
187 the bus. See Net::DBus::Test::MockObject for further info.
191 - Fix unit tests broken in previous build
193 - Added patch to avoid leaking memory when throwing dbus
194 errors from the XS layer
196 - Added support for org.freedesktop.DBus.Properties
197 in exported & remote objects.
199 - Added support for getting the unique name of the client's
200 connection to the bus
202 - Added support for getting the unique name of the client
203 owning a service on the bus
205 - RemoteService object constructor gains an extra parameter
206 for the owner of the service at the time it was aquired to
207 deal with issues where a service is replaced.
209 - Cache RemoteService objects to avoid creating multiple
210 instances for the same service name.
212 - Fix caching of objects by the service to avoid caching
213 objects cast to a specific interface
215 - Make add_signal_receiver method on Net::DBus private
217 - Use introspection data for hinting only, not absolute truth
218 since Python bindings don't provide complete data.
220 - Adding correct handling for (de)marshalling variant data
221 type to fix interaction with python bindings
223 - Added magic 'caller' and 'serial' data types for requesting
224 that data about method caller be passed into a method
226 - Lots more POD documentation
228 - Added 'lshal.pl' demo script for listing HAL devices
230 - Made example scripts interoperate correctly with example
231 scripts from Python & GLib bindings
235 - The order of 'service_name' and 'bus' parameter to the
236 Net::DBus::Service constructor is reversed to match
237 that of Net::DBus::RemoteService
239 - The order of 'service' and 'object_path' parameter to the
240 Net::DBus::Object constructor is reversed to match
241 that of Net::DBus::RemoteObject
243 - No longer neccessary to construct an explicit Net::DBus::Service
244 object - one is constructed & returned by the 'export_service'
247 - The 'find' method on Net::DBus will search for & attach to
248 a suitable bus, so no longer neccessary to hard code either
249 system or session bus
251 - Introspection data is no longer provided via the
252 Net::DBus::Object constructor. Consult the manual pages
253 for Net::DBus::OBject and Net::DBus::Exporter for details
254 of new approach to defining introspection data.
256 - The Net::DBus::Introspector class is no longer for public
259 - The Net::DBus::Dumper class can be used to display a dump
260 of an object's exported API cf examples/dump-object.pl
262 - Signal handler callbacks now get the actual signal params
263 passed in, rather than low level bind info
265 - The Net::DBus objects are automatically registered with
266 the default reactor mainloop, unless 'nomainloop => 1'
267 is passed into constructor