08a16f725538760ab5e486a8f0c239bad70e9bd7
[profile/ivi/GUPnP.git] / NEWS
1 0.19.1
2 ======
3 Changes since 0.19.0:
4 - Include m4 macro for finding vapigen.
5 - Run introspection with make distcheck.
6 - Lower G-I requirement again.
7 - Add gupnp_context_manager_get_port.
8 - Don't stop configure if vapigen can't be found.
9 - Drop some deprecated stuff from VAPI.
10
11 All contributors to this release:
12   Jens Georg <mail@jensge.org>
13
14 0.19.0
15 ======
16
17 Changes since 0.18.4:
18
19 - Add an abstract base class for simple context managers.
20 - Clean-up pkg-config files to not leak libraries.
21 - Generate VAPI from GIR file.
22
23 Dependency-related changes:
24  - Require gssdp >= 0.13.0
25
26 All contributors:
27  Jens Georg <mail@jensge.org>
28  Andreas Henriksson <andreas@fatal.se>
29
30 0.18.0
31 ======
32
33 Changes since 0.17.2:
34
35 - Fix a crash in Linux context manager if the USB cable is unplugged from a
36   USB network device interface.
37
38 All contributors:
39 Jens Georg <mail@jensge.org>
40
41 0.17.2
42 ======
43
44 Changes since 0.17.1:
45
46 - Drop main-context property
47 - Fix a small leak from the default-language property.
48 - Refactor and clean-up internals of GUPnPContextManager.
49
50 Dependency-related changes:
51  - Require gssdp >= 0.11.2.
52
53 All contributors:
54 Jens Georg <mail@jensge.org>
55
56 0.17.1
57 ======
58
59 Changes since 0.17.1:
60
61 - Drop deprecated conic support.
62 - A Linux context manager. Unlinke the generic static unix context-manger,
63   the Linux context-manager can dynamically react to device and address
64   changes, similar to the NetworkManager-based context-manager, but without
65   depending on DBus or NetworkManager.
66 - Fix for a SOAP action parameter validation regression.
67 - Updates to the build system such as:
68   - Modernized autotools.
69   - xz tarballs as default.
70 - Improved OpenBSD support.
71 - More stable RootDevice URIs.
72
73 All contributors:
74
75 Jens Georg <mail@jensge.org>
76 Jasper Lievisse Adriaanse <jasper@humppa.nl>
77 Javier Jardón <jjardon@gnome.org>
78 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
79
80 0.17.0
81 ======
82
83 Changes since 0.16.1:
84
85 - Fix several crashes during initial introspection.
86 - Several fixes regarding SOAP action parameter validation.
87 - Always append a Content-Language header if the client has an Accept-Language
88   header.
89 - Always append an Ext header in SOAP responses.
90 - Improve introspection support:
91   * Classes that throw an error during construction implement GInitable.
92   * Update gobject-introspection autotools integration.
93   * Many annotation fixes.
94 - Tutorial improvements.
95
96 Dependency-related changes:
97  - Require gssdp >= 0.11.0.
98
99 All contributors:
100
101 Jens Georg <mail@jensge.org>
102 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
103 Sven Neumann <s.neumann@raumfeld.com>
104 Santakivi Topi <Topi.Santakivi@digia.com>
105
106 0.16.1
107 ======
108
109 Changes since 0.16.0:
110
111 - Port to new (0.9) NetworkManager APIs.
112 - Correction to 'Content-Type' HTTP header values.
113 - Satisfy strict compiler checks.
114
115 All contributors:
116
117 Dan Williams <dcbw@redhat.com>
118 Sven Neumann <s.neumann@raumfeld.com>
119 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
120
121 0.16.0
122 ======
123
124 Changes since 0.15.1:
125
126 - Set the thread context before doing GDBus operations.
127 - Use the default timeout on DBus calls.
128 - Fix documentation of gupnp_context_manager_new().
129 - Remove redundant code.
130 - Clear the (obsolete) ChangeLog file.
131 - Add some checks on variants.
132 - Don't use uninitialized pointer.
133 - Some coding-style fixes.
134
135 Bugs fixed in this release:
136
137 2224 - GUPnP accesses dbus properties without checking that they exist
138 2223 - Missing handling of gio-style multi-main-context in GUPnPNetworkManager
139
140 All contributors:
141
142 Olivier Crête <olivier.crete@collabora.co.uk>
143 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
144 Sven Neumann <s.neumann@raumfeld.com>
145 Jens Georg <mail@jensge.org>
146 Ross Burton <ross@linux.intel.com>
147 Luis de Bethencourt <luis@debethencourt.com>
148
149 0.15.1
150 ======
151
152 Changes since 0.15.0:
153
154 - Set 'ESSID' on WiFi contexts.
155 - Fix a crasher bug.
156 - Fix some leaks.
157 - Remove a cyclic-reference
158 - Fix logic to find service from list and therefore the issue of wrongly
159   ignoring new services.
160 - Remove all hosted paths from SoupServer before unrefing it.
161
162 Dependency related changes:
163
164 - Require gssdp >= 0.9.2.
165
166 Bugs fixed in this release:
167
168 2212 - Leak in gupnp_root_device_construct
169 2215 - gupnp-control-point ignores services at startup
170 2216 - Leak in gupnp_resource_factory
171 2217 - gupnp-unix-context-manager leaks contexts if interfaces are not up
172 2218 - gupnp-context creates new SoupServers on shutdown
173
174 All contributors:
175
176 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
177 Jens Georg <mail@jensge.org>
178
179 0.15.0
180 ======
181
182 Changes since 0.14.0 not included in 0.14.1:
183
184 - Port from dbus-glib to GDBus.
185 - Enable gzip compression for large action response bodies.
186 - Fix gupnp-binding-tool to generate headers usable in C++.
187
188 Dependency related changes:
189
190 - Require glib >= 2.24.0.
191 - Require libsoup >= 2.28.2.
192 - Require gio >= 2.26 (new dependency).
193 - Drop dependency on dbus-glib.
194
195 Bugs fixed in this release:
196
197 2184 - Migrate from dbus-glib to glib's GDBus
198
199 All contributors:
200
201 Ross Burton <ross@linux.intel.com>
202 Sven Neumann <s.neumann@raumfeld.com>
203 Henry Hoegelow <h.hoegelow@raumfeld.com>
204 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
205 Fargier Sylvain <fargier.sylvain@free.fr>
206
207 0.14.0
208 ======
209
210 Changes since 0.13.5:
211
212 - Don't use deprecated glib, gobject and libsoup APIs.
213 - Check for libuuid only on platforms where we need it.
214 - Explicitly link example apps to needed libraries.
215 - Fix some potential crashes and leaks.
216 - Fix pointer to/from integer conversion on 64-bit machines.
217 - Fix parsing of unsigned integers.
218 - Use locale-independent float <-> string conversions.
219 - Remove some redundant functions and variables.
220 - Remove some unused variables noticed.
221 - Use correct mime-type for XML data.
222 - Various non-functional improvements.
223
224 Bugs fixed in this release:
225
226 2192 - 64bit portability issue with *_register_*_type functions
227 2190 - Build fails because explicit linking is missing
228 2188 - configure.ac should leave out the uuid module check on OSX
229
230 All contributors:
231
232 Ross Burton <ross@linux.intel.com>
233 Sven Neumann <s.neumann@raumfeld.com>
234 Jens Georg <mail@jensge.org>
235 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
236 Nader Morshed <morshed.nader@gmail.com>
237
238 0.13.5
239 ======
240
241 Changes since 0.13.4:
242
243 - Chain up in GUPnPXMLDoc's finalize().
244 - Correct transfer annotation for gupnp_context_get_session().
245 - Prefer g_strcmp0() over strcmp().
246 - Check for body length rather than Content-Length in SOAP requests so we
247   can satsify DLNA CTT test 7.2.5.7.
248 - Explicitly link test apps to needed libraries.
249
250 Bugs fixed in this release:
251
252 2186 - Missing annotation for context_get_session
253
254 All contributors:
255
256 Sven Neumann <s.neumann@raumfeld.com>
257 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
258 Zach Goldberg <zgold@corvette.(none)>
259
260 0.13.4
261 ======
262
263 Changes since 0.13.3:
264
265 - GUPnPService should remove all handlers installed on the shared SoupServer
266   instance when it is disposed.
267 - Fixate subscription timeout to be 300s as per DLNA requirement (7.2.22.1).
268 - Correct type of action argument of GUPnPService::action-invoked.
269 - Remove redundant copying of GValue content in a few places.
270 - Handle multiple variables inside property node in event notifications to be
271   compatible with server-side implementations using older GUPnP
272 - Fix syntax of event notifications with multiple properties.
273 - Add/fix gobject-introspection annotations for various functions.
274 - Some non-functional improvements.
275
276 Bugs fixed in this release:
277
278 2084 - Add scope annotations to various functions
279 2131 - GUPnPServiceAction is a boxed, not a pointer
280 2086 - Fix gtk-doc format on all functions in public GUPnP API
281
282 All contributors:
283
284 Sven Neumann <s.neumann@raumfeld.com>
285 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
286 Zach Goldberg <zgold@corvette.(none)>
287
288 0.13.3
289 ======
290
291 Changes since 0.13.2:
292
293 - Include the Content-Type header in the HTTP messages. This satisfies DLNA
294   CTT test cases 7.2.5.9 and 7.2.29.1.
295 - Use g_message instead of g_warning if we can't connect to DBus.
296 - Make the HTTP server listen on the context's interface only.
297 - Fix some potential crashes in GUPnPServiceProxy and GUPnPContextManager code.
298 - Fix build issues in jhbuild environment.
299 - Fix some gcc warnings.
300 - Add new API to host path for specific user-agent(s).
301 - Add gobject-introspection support:
302   - Provide gobject-introspection GIR and typelib.
303   - Add needed annotations to doc comments.
304   - Add GList variants of action-related functions to satisfy PyGI.
305 - A few non-functional improvments.
306
307 Dependency related changes:
308
309 - gssdp >= 0.7.1
310
311 Bugs fixed in this release:
312
313 2054 - Xbox hacks
314 1965 - gcc warning fixes
315 2039 - GUPnP is hard to use with jhbuild
316 1948 - Signal handler are not disconnected when ContextManager is disposed
317 2030 - gupnp context listens on 0.0.0.0 instead of the context's ip
318 1924 - Content-Type header must contain charset="utf-8" in all HTTP transactions
319 2006 - Implement 3 new functions for language bindings (begin_action_list,
320        end_action_list, gupnp_service_action_get_value_type)
321 1919 - Add GObject Introspection Annotations and Makefile
322 1979 - g_warning make gupnp-igd test fails
323 1906 - Tests failed with gupnp 0.13
324
325 All contributors:
326
327 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
328 Zach Goldberg <zgold@corvette.(none)>
329 Ross Burton <ross@linux.intel.com>
330 Olivier Crête <olivier.crete@collabora.co.uk>
331 Neil Roberts <neil@linux.intel.com>
332 Sven Neumann <s.neumann@raumfeld.com>
333 Jens Georg <mail@jensge.org>
334 Yakup Akbay <yakbay@ubicom.com>
335
336 0.13.2
337 ======
338
339 Changes since 0.13.1:
340
341 - Utilize libconic (Maemo5) if available.
342 - Unix context manager must signal the unavailibility of all contexts when
343   disposed.
344 - Enable silent build rules if they are available.
345 - Fix race-conditions in client-side notification handling.
346 - Unix context manager ignores point-to-point interfaces.
347 - Context manager ignores interfaces without IP addresses.
348 - Don't require timeouts to be specified in subscription requests.
349 - Fix build against gcc 4.[1,2].
350 - Make network manager thread-safe.
351 - Remove idle source on dispose in context manager implementations.
352 - Warn in docs that gupnp_service_info_get_introspection() is evil and why.
353 - Service retrieves introspection data in truly async way.
354 - Fix some leaks.
355 - A bunch of code clean-ups.
356
357 All contributors:
358
359 Olivier Crête <olivier.crete@collabora.co.uk>
360 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
361 Ross Burton <ross@linux.intel.com>
362 Jens Georg <mail@jensge.org>
363 Cem Eliguzel <celiguzel@ubicom.com>
364
365 Bugs fixed:
366
367 1890 - Timeout parsing problem with SUBSCRIBE method
368 1880 - subscription/notification handling is racy
369 1906 - Tests failed with gupnp 0.13
370 1849 - Compile error when using gcc 4.[1,2] and strict aliasing
371 1494 - Ability to deal with multiple network interfaces
372 1881 - networkmanager interaction should use its own dbus connection
373
374 0.13.1
375 ======
376
377 Changes since 0.13:
378
379 - Use unix context manager if NetworkManager service is not available.
380 - Fix some minor leaks.
381
382 All contributors:
383
384 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
385 Ross Burton <ross@linux.intel.com>
386
387 0.13
388 ====
389
390 Changes since 0.12.8:
391
392 - Print reason when fail to fetch description doc
393 - Support for dynamic/multiple networks through a new class, ContextManager.
394   This class creates/destroys new context as new network interfaces go up/down.
395   It also provides two convenient methods to take care of control point and
396   device reference managment for you. Currently we have two implementations of
397   context manager:
398   * unix: The static but guaranteed to work on Unix, implementation. This is the
399           default if none chosen at configure-time.
400   * network-manager: A NetworkManager based implementation.
401 - Idle handlers should use the assigned GMainContext.
402 - Gracefully handle 'no root element in description' scenerio.
403 - "host-ip" property moved from GUPnPContext to parent GSSDPClient.
404 - ControlPoint set itself inactive before getting disposed.
405 - New function to retrieve the capabilities of a DLNA device as announced in
406   the device description.
407 - New function to retrieve the content of arbitrary elements in the device
408   description.
409 - Fixed a crash that happens when service-proxy goes down before subscribtion to
410   it completes.
411 - Correct condition for SID being NULL.
412 - Don't create redundant proxies.
413 - Must not announce earlier versions of resources. This is strictly forbidden
414   according to the latest UPnP specs. Instead GSSDP now handles M-SEARCH
415   requests independent of version requested.
416 - Free app developer from hosting of description documents.
417 - New API to get SoupMessage associated with ServiceAction.
418 - Handle the SOAPAction header being missing.
419 - Fixed strrchr result checking.
420 - Provide and use a wrapper class for xmlDoc objects, GUPnPXMLDoc that is a
421   first-class gobject.
422 - New domains for XML errors.
423 - Many other minor fixes.
424
425 Bugs fixed:
426
427 1626 - Print reason when fail to fetch description doc
428 1769 - audit issues
429 1760 - missing/invalid SOAPAction header crashes gupnp
430 1705 - Provide a public API to get information about a GUPnPServiceAction's HTTP
431        request
432
433 Dependencies changed:
434
435 - gssdp >= 0.7
436
437 All contributors:
438
439 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
440 Ross Burton <ross@linux.intel.com>
441 Sven Neumann <s.neumann@raumfeld.com>
442 Jens Georg <mail@jensge.org>
443 Steven Dorigotti <steven.dorigotti@tvblob.com>
444
445 WARNING: This release is API and ABI incompatible with previous releases.
446
447 0.12.8
448 ======
449
450 Changes since 0.12.7
451
452 - Don't crash if device descriptions don't contain a root element.
453 - Fix pkg-config paths.
454 - Avoid using asserts.
455 - Use the closest match instead of using the icon that was last checked.
456 - Expect xmlRecoverMemory to fail.
457 - Reject action messages with zero content length.
458 - Change version in action answer.
459
460 Bug fixes in this release:
461
462 - bug#1570: gupnp doesn't set the pkgconfig lib dir correctly in 64 bit env.
463 - bug#1574: Avoid using asserts.
464 - bug#1592: gupnp_device_info_get_icon_url() does not return the closest match.
465 - bug#1604: Crash on action without any content.
466
467 All contributors to this release:
468
469 Ross Burton <ross@linux.intel.com>
470 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
471 Steven Dorigotti <steven.dorigotti@tvblob.com>
472 Sven Neumann <s.neumann@raumfeld.com>
473 Jens Georg <mail@jensge.org>
474
475 0.12.7
476 ======
477
478 - Chain up dispose and finalize in GUPnPDeviceInfo [Sven Neumann]
479 - Use a dedicated SoupSession [Sven Neumann]
480 - Fix device icon fallback logic [Ross Burton]
481 - Fix user agent string [Sven Neumann]
482 - Sanity check UDN while parsing [Zeeshan Ali]
483
484 0.12.6
485 ======
486
487 - Port to FreeBSD. [Romain Tartière]
488 - Ship the XML files needed for example app. [Romain Tartière]
489 - Keep a reference on the control-point during signal emission. [Sven Neumann]
490 - Allow passing NULL to ControlPoint constructor, for default resource factory.
491   [Sven Neumann]
492 - Remove debug output that accidentally went in with the last commit.
493   [Sven Neumann]
494
495 0.12.5
496 ======
497
498 - Improved error handling. [Sven Neumann, Jorn Baayen]
499 - Specify character set (UTF-8) in NOTIFY messages. [Jorn Baayen]
500 - Don't export internal functions. [Jorn Baayen]
501 - Fix some crasher bugs. [Zeeshan Ali]
502 - More lenient handling of xml from external sources. [Jorn Baayen,
503   Jussi Kukkonen]
504 - Fix possible reference cycles. [Zeeshan Ali, Jorn Baayen]
505 - Better handling of event subscription timeouts. [Zeeshan Ali]
506
507 0.12.4
508 ======
509
510 - Set Content Type header correctly in soap messages [Zeeshan Ali]
511 - Don't pass arbitrary strings to printf() for security [Sven Neumann]
512 - Handle fscanf failing in get_default_host_ip() [Sven Neumann]
513
514 0.12.3
515 ======
516
517 - Greatly improved client-side bindings [Jussi Kukkonen]
518 - Server-side bindings [JK]
519 - Don't use NULL return values from g_get_application_name [Ross Burton]
520 - Make gupnp_context_get_session public [Jorn Baayen]
521 - Use the specified GMainContext for timeouts [Olivier Crete, Jorn Baayen]
522
523 0.12.2
524 ======
525
526 - Support returning actions outside of the 'action-invoked' signal handler
527   in service implementations. [Zeeshan Ali, Jorn Baayen]
528 - Add explicit dependency on gthread. [Zeeshan Ali, Jorn Baayen]
529
530 0.12.1
531 ======
532
533 - Support Range headers without upper bound. [Jorn Baayen]
534 - Fixed memory management in HTTP GET handler. [Jorn Baayen]
535
536 0.12
537 ====
538
539 - Add tool for generating convenience C wrappers for GUPnP service definitions.
540   [Ross Burton]
541 - Remove xmlDoc argument from gupnp_root_device_new() for simplicity.
542   (xmlDocs can still be passed to gupnp_root_device_new_full())
543   [Jorn Baayen]
544 - Better documentation, new tutorials and sample code. [Ross Burton]
545 - Improved support for Accept-Language header. [Jorn Baayen]
546 - Various internal improvements. [Zeeshan Ali, Jorn Baayen]
547
548 0.10.1
549 ======
550
551 - Bump soname.
552
553 0.10
554 ====
555
556 - Use libsoup 2.4. [Zeeshan Ali Khattak, Jorn Baayen]
557 - Use g_timeout_add_seconds(). [Jorn Baayen]
558 - Use GIO instead of xdgmime. [Jorn Baayen]
559 - Support HTTP Range header in the HTTP server. [Jorn Baayen]
560 - Use GMappedFile to mmap served files of read()ing them. [Jorn Baayen]
561 - Improved documentation. [Ross Burton]
562 - Spew HTTP messages to console when GUPNP_DEBUG is set. [Ross Burton]
563 - Various other fixes. [Ross Burton, Zeeshan Ali Khattak, Jorn Baayen]
564
565 0.8
566 ===
567
568 - New API allowing for subclassing of resource types. 
569   [Zeeshan Ali, Jorn Baayen]
570 - GUPnPDeviceInfo returns subresources with version greater or equal than
571   requested version. [Jorn Baayen]
572 - Servers announce versions less or equal than implemented version.
573   [Jorn Baayen]
574 - Make gupnp_context_get_server() public. [Jorn Baayen]
575 - GError arguments added to all error signals. [Jorn Baayen]
576 - Improved resubscription handling. [Jorn Baayen]
577 - Various other fixes and internal improvements
578   [Ross Burton, Zeeshan Ali, Jorn Baayen].
579
580 0.6
581 ===
582
583 - Added service signal autoconnection feature in the spirit of
584   glade_xml_signal_autoconnect(). [Zeeshan Ali]
585 - Fixed various bugs related to object destruction. Fixes #500, 503.
586   [Jorn Baayen]
587 - Accept 'yes' and 'no' boolean values. [Zeeshan Ali]
588 - More information in error messages. [Zeeshan Ali, Jorn Baayen]
589 - Mark GUPnPServiceIntrospectionCallback() 'error' argument as 'const'.
590   [Jorn Baayen]
591 - Fixed gupnp_device_info_get_model_number() to return the right value.
592   [Zeeshan Ali]
593 - Moved the uuid dependency to Requires.Private, and removed the
594   shared-mime-data build dependency. [Jorn Baayen]
595 - Various other minor fixes. [Zeeshan Ali, Jorn Baayen]
596
597 Special thanks to Stéphane Loeuillet for stress-testing the library and
598 discovering many bugs. (Which are all fixed in this release. :) )
599
600 0.4
601 ===
602
603 - A new series of functions for sending actions taking hash tables of parameter
604   name-GValue pairs. [Jorn Baayen]
605 - New introspection methods for state variable and action retrieval by name.
606   [Zeeshan Ali]
607 - New pkg-config file for building against an uninstalled libgupnp.
608   [Zeeshan Ali]
609 - Improved conversion between GValues and UPnP value types. [Jorn Baayen]
610 - Only include evented state variables in initial event message.
611   [Jorn Baayen]
612
613 0.3
614 ===
615
616 - Allow embedded devices to have their own UDNs. [Jorn Baayen]
617 - Portability fix. [Priit Laes]
618
619 0.2
620 ===
621
622 - Fully implemented server-side API. [Jorn Baayen]
623 - New service introspection support through SCPD documents. [Zeeshan Ali]
624 - M-POST support. [Jorn Baayen]
625 - More error codes split out into several error domains. [Jorn Baayen]
626 - Use Accept-Language header for internationalisation. [Jorn Baayen]
627 - Subresource retreival moved from DeviceProxy to DeviceInfo. [Jorn Baayen]
628 - Bug fixes.
629
630 GUPnP is now feature complete.
631
632 0.1
633 ===
634
635 Initial release. Full client-side API, server side not done yet.