cb4e6291147df8f873934576db4cfb45e27e68ea
[collab-maint/gupnp.git] / NEWS
1 0.14.0
2 ======
3
4 Changes since 0.13.5:
5
6 - Don't use deprecated glib, gobject and libsoup APIs.
7 - Check for libuuid only on platforms where we need it.
8 - Explicitly link example apps to needed libraries.
9 - Fix some potential crashes and leaks.
10 - Fix pointer to/from integer conversion on 64-bit machines.
11 - Fix parsing of unsigned integers.
12 - Use locale-independent float <-> string conversions.
13 - Remove some redundant functions and variables.
14 - Remove some unused variables noticed.
15 - Use correct mime-type for XML data.
16 - Various non-functional improvements.
17
18 Bugs fixed in this release:
19
20 2192 - 64bit portability issue with *_register_*_type functions
21 2190 - Build fails because explicit linking is missing
22 2188 - configure.ac should leave out the uuid module check on OSX
23
24 All contributors:
25
26 Ross Burton <ross@linux.intel.com>
27 Sven Neumann <s.neumann@raumfeld.com>
28 Jens Georg <mail@jensge.org>
29 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
30 Nader Morshed <morshed.nader@gmail.com>
31
32 0.13.5
33 ======
34
35 Changes since 0.13.4:
36
37 - Chain up in GUPnPXMLDoc's finalize().
38 - Correct transfer annotation for gupnp_context_get_session().
39 - Prefer g_strcmp0() over strcmp().
40 - Check for body length rather than Content-Length in SOAP requests so we
41   can satsify DLNA CTT test 7.2.5.7.
42 - Explicitly link test apps to needed libraries.
43
44 Bugs fixed in this release:
45
46 2186 - Missing annotation for context_get_session
47
48 All contributors:
49
50 Sven Neumann <s.neumann@raumfeld.com>
51 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
52 Zach Goldberg <zgold@corvette.(none)>
53
54 0.13.4
55 ======
56
57 Changes since 0.13.3:
58
59 - GUPnPService should remove all handlers installed on the shared SoupServer
60   instance when it is disposed.
61 - Fixate subscription timeout to be 300s as per DLNA requirement (7.2.22.1).
62 - Correct type of action argument of GUPnPService::action-invoked.
63 - Remove redundant copying of GValue content in a few places.
64 - Handle multiple variables inside property node in event notifications to be
65   compatible with server-side implementations using older GUPnP
66 - Fix syntax of event notifications with multiple properties.
67 - Add/fix gobject-introspection annotations for various functions.
68 - Some non-functional improvements.
69
70 Bugs fixed in this release:
71
72 2084 - Add scope annotations to various functions
73 2131 - GUPnPServiceAction is a boxed, not a pointer
74 2086 - Fix gtk-doc format on all functions in public GUPnP API
75
76 All contributors:
77
78 Sven Neumann <s.neumann@raumfeld.com>
79 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
80 Zach Goldberg <zgold@corvette.(none)>
81
82 0.13.3
83 ======
84
85 Changes since 0.13.2:
86
87 - Include the Content-Type header in the HTTP messages. This satisfies DLNA
88   CTT test cases 7.2.5.9 and 7.2.29.1.
89 - Use g_message instead of g_warning if we can't connect to DBus.
90 - Make the HTTP server listen on the context's interface only.
91 - Fix some potential crashes in GUPnPServiceProxy and GUPnPContextManager code.
92 - Fix build issues in jhbuild environment.
93 - Fix some gcc warnings.
94 - Add new API to host path for specific user-agent(s).
95 - Add gobject-introspection support:
96   - Provide gobject-introspection GIR and typelib.
97   - Add needed annotations to doc comments.
98   - Add GList variants of action-related functions to satisfy PyGI.
99 - A few non-functional improvments.
100
101 Dependency related changes:
102
103 - gssdp >= 0.7.1
104
105 Bugs fixed in this release:
106
107 2054 - Xbox hacks
108 1965 - gcc warning fixes
109 2039 - GUPnP is hard to use with jhbuild
110 1948 - Signal handler are not disconnected when ContextManager is disposed
111 2030 - gupnp context listens on 0.0.0.0 instead of the context's ip
112 1924 - Content-Type header must contain charset="utf-8" in all HTTP transactions
113 2006 - Implement 3 new functions for language bindings (begin_action_list,
114        end_action_list, gupnp_service_action_get_value_type)
115 1919 - Add GObject Introspection Annotations and Makefile
116 1979 - g_warning make gupnp-igd test fails
117 1906 - Tests failed with gupnp 0.13
118
119 All contributors:
120
121 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
122 Zach Goldberg <zgold@corvette.(none)>
123 Ross Burton <ross@linux.intel.com>
124 Olivier Crête <olivier.crete@collabora.co.uk>
125 Neil Roberts <neil@linux.intel.com>
126 Sven Neumann <s.neumann@raumfeld.com>
127 Jens Georg <mail@jensge.org>
128 Yakup Akbay <yakbay@ubicom.com>
129
130 0.13.2
131 ======
132
133 Changes since 0.13.1:
134
135 - Utilize libconic (Maemo5) if available.
136 - Unix context manager must signal the unavailibility of all contexts when
137   disposed.
138 - Enable silent build rules if they are available.
139 - Fix race-conditions in client-side notification handling.
140 - Unix context manager ignores point-to-point interfaces.
141 - Context manager ignores interfaces without IP addresses.
142 - Don't require timeouts to be specified in subscription requests.
143 - Fix build against gcc 4.[1,2].
144 - Make network manager thread-safe.
145 - Remove idle source on dispose in context manager implementations.
146 - Warn in docs that gupnp_service_info_get_introspection() is evil and why.
147 - Service retrieves introspection data in truly async way.
148 - Fix some leaks.
149 - A bunch of code clean-ups.
150
151 All contributors:
152
153 Olivier Crête <olivier.crete@collabora.co.uk>
154 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
155 Ross Burton <ross@linux.intel.com>
156 Jens Georg <mail@jensge.org>
157 Cem Eliguzel <celiguzel@ubicom.com>
158
159 Bugs fixed:
160
161 1890 - Timeout parsing problem with SUBSCRIBE method
162 1880 - subscription/notification handling is racy
163 1906 - Tests failed with gupnp 0.13
164 1849 - Compile error when using gcc 4.[1,2] and strict aliasing
165 1494 - Ability to deal with multiple network interfaces
166 1881 - networkmanager interaction should use its own dbus connection
167
168 0.13.1
169 ======
170
171 Changes since 0.13:
172
173 - Use unix context manager if NetworkManager service is not available.
174 - Fix some minor leaks.
175
176 All contributors:
177
178 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
179 Ross Burton <ross@linux.intel.com>
180
181 0.13
182 ====
183
184 Changes since 0.12.8:
185
186 - Print reason when fail to fetch description doc
187 - Support for dynamic/multiple networks through a new class, ContextManager.
188   This class creates/destroys new context as new network interfaces go up/down.
189   It also provides two convenient methods to take care of control point and
190   device reference managment for you. Currently we have two implementations of
191   context manager:
192   * unix: The static but guaranteed to work on Unix, implementation. This is the
193           default if none chosen at configure-time.
194   * network-manager: A NetworkManager based implementation.
195 - Idle handlers should use the assigned GMainContext.
196 - Gracefully handle 'no root element in description' scenerio.
197 - "host-ip" property moved from GUPnPContext to parent GSSDPClient.
198 - ControlPoint set itself inactive before getting disposed.
199 - New function to retrieve the capabilities of a DLNA device as announced in
200   the device description.
201 - New function to retrieve the content of arbitrary elements in the device
202   description.
203 - Fixed a crash that happens when service-proxy goes down before subscribtion to
204   it completes.
205 - Correct condition for SID being NULL.
206 - Don't create redundant proxies.
207 - Must not announce earlier versions of resources. This is strictly forbidden
208   according to the latest UPnP specs. Instead GSSDP now handles M-SEARCH
209   requests independent of version requested.
210 - Free app developer from hosting of description documents.
211 - New API to get SoupMessage associated with ServiceAction.
212 - Handle the SOAPAction header being missing.
213 - Fixed strrchr result checking.
214 - Provide and use a wrapper class for xmlDoc objects, GUPnPXMLDoc that is a
215   first-class gobject.
216 - New domains for XML errors.
217 - Many other minor fixes.
218
219 Bugs fixed:
220
221 1626 - Print reason when fail to fetch description doc
222 1769 - audit issues
223 1760 - missing/invalid SOAPAction header crashes gupnp
224 1705 - Provide a public API to get information about a GUPnPServiceAction's HTTP
225        request
226
227 Dependencies changed:
228
229 - gssdp >= 0.7
230
231 All contributors:
232
233 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
234 Ross Burton <ross@linux.intel.com>
235 Sven Neumann <s.neumann@raumfeld.com>
236 Jens Georg <mail@jensge.org>
237 Steven Dorigotti <steven.dorigotti@tvblob.com>
238
239 WARNING: This release is API and ABI incompatible with previous releases.
240
241 0.12.8
242 ======
243
244 Changes since 0.12.7
245
246 - Don't crash if device descriptions don't contain a root element.
247 - Fix pkg-config paths.
248 - Avoid using asserts.
249 - Use the closest match instead of using the icon that was last checked.
250 - Expect xmlRecoverMemory to fail.
251 - Reject action messages with zero content length.
252 - Change version in action answer.
253
254 Bug fixes in this release:
255
256 - bug#1570: gupnp doesn't set the pkgconfig lib dir correctly in 64 bit env.
257 - bug#1574: Avoid using asserts.
258 - bug#1592: gupnp_device_info_get_icon_url() does not return the closest match.
259 - bug#1604: Crash on action without any content.
260
261 All contributors to this release:
262
263 Ross Burton <ross@linux.intel.com>
264 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
265 Steven Dorigotti <steven.dorigotti@tvblob.com>
266 Sven Neumann <s.neumann@raumfeld.com>
267 Jens Georg <mail@jensge.org>
268
269 0.12.7
270 ======
271
272 - Chain up dispose and finalize in GUPnPDeviceInfo [Sven Neumann]
273 - Use a dedicated SoupSession [Sven Neumann]
274 - Fix device icon fallback logic [Ross Burton]
275 - Fix user agent string [Sven Neumann]
276 - Sanity check UDN while parsing [Zeeshan Ali]
277
278 0.12.6
279 ======
280
281 - Port to FreeBSD. [Romain Tartière]
282 - Ship the XML files needed for example app. [Romain Tartière]
283 - Keep a reference on the control-point during signal emission. [Sven Neumann]
284 - Allow passing NULL to ControlPoint constructor, for default resource factory.
285   [Sven Neumann]
286 - Remove debug output that accidentally went in with the last commit.
287   [Sven Neumann]
288
289 0.12.5
290 ======
291
292 - Improved error handling. [Sven Neumann, Jorn Baayen]
293 - Specify character set (UTF-8) in NOTIFY messages. [Jorn Baayen]
294 - Don't export internal functions. [Jorn Baayen]
295 - Fix some crasher bugs. [Zeeshan Ali]
296 - More lenient handling of xml from external sources. [Jorn Baayen,
297   Jussi Kukkonen]
298 - Fix possible reference cycles. [Zeeshan Ali, Jorn Baayen]
299 - Better handling of event subscription timeouts. [Zeeshan Ali]
300
301 0.12.4
302 ======
303
304 - Set Content Type header correctly in soap messages [Zeeshan Ali]
305 - Don't pass arbitrary strings to printf() for security [Sven Neumann]
306 - Handle fscanf failing in get_default_host_ip() [Sven Neumann]
307
308 0.12.3
309 ======
310
311 - Greatly improved client-side bindings [Jussi Kukkonen]
312 - Server-side bindings [JK]
313 - Don't use NULL return values from g_get_application_name [Ross Burton]
314 - Make gupnp_context_get_session public [Jorn Baayen]
315 - Use the specified GMainContext for timeouts [Olivier Crete, Jorn Baayen]
316
317 0.12.2
318 ======
319
320 - Support returning actions outside of the 'action-invoked' signal handler
321   in service implementations. [Zeeshan Ali, Jorn Baayen]
322 - Add explicit dependency on gthread. [Zeeshan Ali, Jorn Baayen]
323
324 0.12.1
325 ======
326
327 - Support Range headers without upper bound. [Jorn Baayen]
328 - Fixed memory management in HTTP GET handler. [Jorn Baayen]
329
330 0.12
331 ====
332
333 - Add tool for generating convenience C wrappers for GUPnP service definitions.
334   [Ross Burton]
335 - Remove xmlDoc argument from gupnp_root_device_new() for simplicity.
336   (xmlDocs can still be passed to gupnp_root_device_new_full())
337   [Jorn Baayen]
338 - Better documentation, new tutorials and sample code. [Ross Burton]
339 - Improved support for Accept-Language header. [Jorn Baayen]
340 - Various internal improvements. [Zeeshan Ali, Jorn Baayen]
341
342 0.10.1
343 ======
344
345 - Bump soname.
346
347 0.10
348 ====
349
350 - Use libsoup 2.4. [Zeeshan Ali Khattak, Jorn Baayen]
351 - Use g_timeout_add_seconds(). [Jorn Baayen]
352 - Use GIO instead of xdgmime. [Jorn Baayen]
353 - Support HTTP Range header in the HTTP server. [Jorn Baayen]
354 - Use GMappedFile to mmap served files of read()ing them. [Jorn Baayen]
355 - Improved documentation. [Ross Burton]
356 - Spew HTTP messages to console when GUPNP_DEBUG is set. [Ross Burton]
357 - Various other fixes. [Ross Burton, Zeeshan Ali Khattak, Jorn Baayen]
358
359 0.8
360 ===
361
362 - New API allowing for subclassing of resource types. 
363   [Zeeshan Ali, Jorn Baayen]
364 - GUPnPDeviceInfo returns subresources with version greater or equal than
365   requested version. [Jorn Baayen]
366 - Servers announce versions less or equal than implemented version.
367   [Jorn Baayen]
368 - Make gupnp_context_get_server() public. [Jorn Baayen]
369 - GError arguments added to all error signals. [Jorn Baayen]
370 - Improved resubscription handling. [Jorn Baayen]
371 - Various other fixes and internal improvements
372   [Ross Burton, Zeeshan Ali, Jorn Baayen].
373
374 0.6
375 ===
376
377 - Added service signal autoconnection feature in the spirit of
378   glade_xml_signal_autoconnect(). [Zeeshan Ali]
379 - Fixed various bugs related to object destruction. Fixes #500, 503.
380   [Jorn Baayen]
381 - Accept 'yes' and 'no' boolean values. [Zeeshan Ali]
382 - More information in error messages. [Zeeshan Ali, Jorn Baayen]
383 - Mark GUPnPServiceIntrospectionCallback() 'error' argument as 'const'.
384   [Jorn Baayen]
385 - Fixed gupnp_device_info_get_model_number() to return the right value.
386   [Zeeshan Ali]
387 - Moved the uuid dependency to Requires.Private, and removed the
388   shared-mime-data build dependency. [Jorn Baayen]
389 - Various other minor fixes. [Zeeshan Ali, Jorn Baayen]
390
391 Special thanks to Stéphane Loeuillet for stress-testing the library and
392 discovering many bugs. (Which are all fixed in this release. :) )
393
394 0.4
395 ===
396
397 - A new series of functions for sending actions taking hash tables of parameter
398   name-GValue pairs. [Jorn Baayen]
399 - New introspection methods for state variable and action retrieval by name.
400   [Zeeshan Ali]
401 - New pkg-config file for building against an uninstalled libgupnp.
402   [Zeeshan Ali]
403 - Improved conversion between GValues and UPnP value types. [Jorn Baayen]
404 - Only include evented state variables in initial event message.
405   [Jorn Baayen]
406
407 0.3
408 ===
409
410 - Allow embedded devices to have their own UDNs. [Jorn Baayen]
411 - Portability fix. [Priit Laes]
412
413 0.2
414 ===
415
416 - Fully implemented server-side API. [Jorn Baayen]
417 - New service introspection support through SCPD documents. [Zeeshan Ali]
418 - M-POST support. [Jorn Baayen]
419 - More error codes split out into several error domains. [Jorn Baayen]
420 - Use Accept-Language header for internationalisation. [Jorn Baayen]
421 - Subresource retreival moved from DeviceProxy to DeviceInfo. [Jorn Baayen]
422 - Bug fixes.
423
424 GUPnP is now feature complete.
425
426 0.1
427 ===
428
429 Initial release. Full client-side API, server side not done yet.