Qt 5.9.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.9.0.

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

http://doc.qt.io/qt-5/index.html

The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          Library                                         *
****************************************************************************

QtBluetooth
-----------

 - Fixed several compiler warnings through the code base adopting new compilers
   such as GCC 7.
 - Added better documentation of GPL license usage via sdpscanner on BLueZ.
   The GPL license usage is limited to separate process and does not taint
   QtBluetooth users.
 - Added limitation to do classic device discovery only inside
   QBLuetoothServiceDiscoveryAgent. Prior to this change
   QBLuetoothServiceDiscoveryAgent always performed a search for Low Energy
   devices too. This is not necessary and reduces the time for SDP
   discoveries.

****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

Android
-------

 - [QTBUG-61392] Added workaround for swapped uuids obtained when doing SDP
   discovery on Android 6.0.1 or later systems.
 - Removed workaround for QBluetoothSocket that uses the private
   BluetoothDevice.getServiceChannel() API from Android 6.0+ platforms.
   The private API was removed in Android 6.0.
 - [QTBUG-61321] Added code handler to catch BluetoothGatt.GATT_FAILURE.
 - Fixed an issue where a QBLuetoothServiceDiscoveryAgent run would fail
   to find any service because the last device for which the service discovery
   was done failed.

Linux/Bluez
-----------

 - [QTBUG-58941] Fixed failure to re-advertise peripheral after
   QLowEnergyController disconnect and restart.
 - [QTBUG-55150] Fixed handling of concurrent BTLE connections via QtBluetooth
   and for example BlueZ tools like bluetoothctl. There can only be one connection
   at a given time. Under the new behavior the current process closes every
   BTLE connection not managed by itself.
 - Fixed buffer overrun when handling GATT Blob read requests.
 - [QTBUG-46776] Added code to detect whether a found Bluetooth address is random
   or public. The standard BlueZ DBus interface does not expose this flag.
   This requires CAP_NET_ADMIN permissions though.
