ver 4.16:
	Fix wrong parameter usage of watch callbacks.
	Fix parameters for callback upon path removal.
	Fix unloading of adapter drivers.

ver 4.15:
	Fix various A2DP state machine issues.
	Fix some issues with the Handsfree error reporting.
	Fix format string warnings with recent GCC versions.
	Remove dependency on GModule.

ver 4.14:
	Fix types of property arrays.
	Fix potential crash with input devices.
	Fix PS3 BD remote input event generation.
	Allow dynamic adapter driver registration.
	Update udev rules.

ver 4.13:
	Fix service discovery and UUID handling.
	Fix bonding issues with Simple Pairing.
	Fix file descriptor misuse of SCO connections.
	Fix various memory leaks in the device handling.
	Fix AVCTP disconnect handling.
	Fix GStreamer modes for MP3 encoding.
	Add operator selection to Handsfree support.

ver 4.12:
	Fix crash with missing icon value.
	Fix error checks of HAL plugin.
	Fix SCO server socket cleanup on exit.
	Fix memory leaks from DBusPendingCall.
	Fix handling of pending authorization requests.
	Fix missing protocol UUIDs in record pattern.

ver 4.11:
	Change SCO server socket into a generic one.
	Add test script for dummy telephony plugin.
	Fix uninitialized reply of multiple GetProperties methods.

ver 4.10:
	Fix memory leaks with HAL messages.
	Add more advanced handsfree features.
	Add properties to audio, input and network interfaces.
	Stop device discovery timer on device removal.

ver 4.9:
	Fix signals for Powered and Discoverable properties.
	Fix handling of Alias and Icon properties.
	Fix duplicate entries for service UUIDs.

ver 4.8:
	Fix retrieving of formfactor value.
	Fix retrieving of local and remote extended features.
	Fix potential NULL pointer dereference during pairing.
	Fix crash with browsing due to a remotely initated pairing.

ver 4.7:
	Fix pairing and service discovery logic.
	Fix crashes during suspend and resume.
	Fix race condition within devdown mode.
	Add RequestSession and ReleaseSession methods.
	Add Powered and Discoverable properties.
	Add Devices property and deprecate ListDevices.
	Add workaround for a broken carkit from Nokia.

ver 4.6:
	Fix Device ID record handling.
	Fix service browsing and storage.
	Fix authentication and encryption for input devices.
	Fix adapter name initialization.

ver 4.5:
	Fix initialization issue with new adapters.
	Send HID authentication request without blocking.
	Hide the verbose SDP debug behind SDP_DEBUG.
	Add extra UUIDs for service discovery.
	Add SCO server socket listener.
	Add authorization support to service plugin.

ver 4.4:
	Add temporary fix for the CUPS compile issue.
	Add service-api.txt to distribution.
	Mention the variable prefix of an object path

ver 4.3:
	Add dummy driver for telephony support.
	Add support for discovery sessions.
	Add service plugin for external services.
	Various cleanups.

ver 4.2:
	Avoid memory copies in A2DP write routine.
	Fix broken logic with Simple Pairing check and old kernels.
	Allow non-bondable and outgoing SDP without agent.
	Only remove the bonding for non-temporary devices.
	Cleanup various unnecessary includes.
	Make more unexported functions static.
	Add basic infrastructure for gtk-doc support.

ver 4.1:
	Add 30 seconds timeout to BNEP connection setup phase.
	Avoid memory copies in A2DP write routine for ALSA.
	Make sure to include compat/sdp.h in the distribution.

ver 4.0:
	Initial public release.

ver 3.36:
	Add init routines for TI BRF chips.
	Add extra attributes to the serial port record.
	Add example record for headset audio gateway record.
	Use Handsfree version 0x0105 for the gateway role.
	Fix SDP record registration with specific record handles.
	Fix BCSP sent/receive handling.
	Fix various includes for cross-compilation.
	Allow link mode settings for outgoing connections.
	Allow bonding during periodic inquiry.

ver 3.35:
	Add two additional company identifiers.
	Add UUID-128 support for service discovery.
	Fix usage of friendly names for service discovery.
	Fix authorization when experiemental is disabled.
	Fix uninitialized variable in passkey request handling.
	Enable output of timestamps for l2test and rctest.

ver 3.34:
	Replace various SDP functions with safe versions.
	Add additional length validation for incoming SDP packets.
	Use safe function versions for SDP client handling.
	Fix issue with RemoveDevice during discovery procedure.
	Fix collect for non-persistent service records.

ver 3.33:
	Add functions for reading and writing the link policy settings.
	Add definition for authentication requirements.
	Add support for handling Simple Pairing.
	Add Simple Pairing support to Agent interface.
	Add ReleaseMode method to Adapter interface.
	Add DiscoverServices method to Device interface.
	Remove obsolete code and cleanup the repository.
	Move over to use the libgdbus API.
	Enable PIE by default if supported.

ver 3.32:
	Add OCF constants for synchronous flow control enabling.
	Add support for switching HID proxy devices from Dell.
	Add more Bluetooth client/server helper functions.
	Add support for input service idle timeout option.
	Fix BNEP reconnection handling.
	Fix return value for snd_pcm_hw_params() calls.
	Use upper-case addresses for object paths.
	Remove HAL support helpers.
	Remove inotify support.
	Remove service daemon activation handling.
	Remove uneeded D-Bus API extension.

ver 3.31:
	Create device object for all pairing cases.
	Convert authorization to internal function calls.
	Add initial support for Headset Audio Gateway role.
	Add generic Bluetooth helper functions for GLib.
	Fix endiannes handling of connection handles.
	Don't optimize when debug is enabled.

ver 3.30:
	Convert audio service into a plugin.
	Convert input service into a plugin.
	Convert serial service into a plugin.
	Convert network service into a plugin.
	Emit old device signals when a property is changed.
	Fix missing DiscoverDevices and CancelDiscovery methods.
	Add another company identifier.
	Add basic support for Bluetooth sessions.
	Add avinfo utility for AVDTP/A2DP classification.
	Remove build option for deprecated sdpd binary.

ver 3.29:
	Introduce new D-Bus based API.
	Add more SBC optimizations.
	Add support for PS3 remote devices.
	Fix alignment trap in SDP server.
	Fix memory leak in sdp_get_uuidseq_attr function.

ver 3.28:
	Add support for MCAP UUIDs.
	Add support for role switch for audio service.
	Add disconnect timer for audio service.
	Add disconnect detection to ALSA plugin.
	Add more SBC optimizations.
	Fix alignment issue of SDP server.
	Remove support for SDP parsing via expat.

ver 3.27:
	Update uinput.h with extra key definitions.
	Add support for input connect/disconnect callbacks.
	Add ifdefs around some baud rate definitions.
	Add another company identifier.
	Add proper HFP service level connection handling.
	Add basic headset automatic disconnect support.
	Add support for new SBC API.
	Fix SBC decoder noise at high bitpools.
	Use 32-bit multipliers for further SBC optimization.
	Check for RFCOMM connection state in SCO connect callback.
	Make use of parameters selected in ALSA plugin.

ver 3.26:
	Fix compilation issues with UCHAR_MAX, USHRT_MAX and UINT_MAX.
	Improve handling of different audio transports.
	Enable services by default and keep old daemons disabled.

ver 3.25:
	Add limited support for Handsfree profile.
	Add limited support for MPEG12/MP3 codec.
	Add basic support for UNITINFO and SUBUNITINFO.
	Add more SBC optimizations.
	Fix external service (un)registration.
	Allow GetInfo and GetAddress to fail.

ver 3.24:
	Add definitions for MDP.
	Add TCP connection support for serial proxy.
	Add fix for Logitech HID proxy switching.
	Add missing macros, MIN, MAX, ABS and CLAMP.
	Add more SBC encoder optimizations.
	Add initial mechanism to handle headset commands.
	Fix connecting to handsfree profile headsets.
	Use proper function for checking signal name.

ver 3.23:
	Fix remote name request handling bug.
	Fix key search function to honor the mmap area size.
	Fix Avahi integration of network service.
	Add new plugin communication for audio service.
	Enable basic AVRCP support by default.
	More optimizations to the SBC library.
	Create common error definitions.

ver 3.22:
	Add missing include file from audio service.
	Add SBC conformance test utility.
	Add basic uinput support for AVRCP.
	Fix L2CAP socket leak in audio service.
	Fix buffer usage in GStreamer plugin.
	Fix remote name request event handling.

ver 3.21:
	Add constant for Bluetooth socket options level.
	Add initial AVRCP support.
	Add A2DP sink support to GStreamer plugin.
	Fix interoperability with A2DP suspend.
	Fix sign error in 8-subband encoder.
	Fix handling of service classes length size.
	Store Extended Inquiry Response data information.
	Publish device id information through EIR.
	Support higher baud rates for Ericcson based chips.

ver 3.20:
	Fix GStreamer plugin file type detection.
	Fix potential infinite loop in inotify support.
	Fix D-Bus signatures for dict handling.
	Fix issues with service activation.
	Fix SDP failure handling of audio service.
	Fix various memory leaks in input service.
	Add secure device creation method to input service.
	Add service information methods to serial service.
	Add config file support to network service.
	Add scripting capability to network service.
	Add special on-mode handling.
	Add optimization for SBC encoder.
	Add tweaks for D-Bus 1.1.x libraries.
	Add support for inquiry transmit power level.

ver 3.19:
	Limit range of bitpool announced while in ACP side.
	Use poll instead of usleep to wait for worker thread.
	Use default event mask from the specification.
	Add L2CAP mode constants.
	Add HID proxy support for Logitech diNovo Edge dongle.
	Add refresh option to re-request device names.
	Show correct connection link type.

ver 3.18:
	Don't allocate memory for the Bluetooth base UUID.
	Implement proper locking for headsets.
	Fix various A2DP SEP locking issues.
	Fix and cleanup audio stream handling.
	Fix stream starting if suspend request is pending.
	Fix A2DP and AVDTP endianess problems.
	Add network timeout and retransmission support.
	Add more detailed decoding of EIR elements.

ver 3.17:
	Fix supported commands bit calculation.
	Fix crashes in audio and network services.
	Check PAN source and destination roles.
	Only export the needed symbols for the plugins.

ver 3.16:
	Update company identifier list.
	Add support for headsets with SCO audio over HCI.
	Add support for auto-create through ALSA plugin.
	Add support for ALSA plugin parameters.
	Add GStreamer plugin with SBC decoder and encoder.
	Fix network service NAP, GN and PANU servers.
	Set EIR information from SDP database.

ver 3.15:
	Add A2DP support to the audio service.
	Add proxy support to the serial service.
	Extract main service class for later use.
	Set service classes value from SDP database.

ver 3.14:
	Add missing signals for the adapter interface.
	Add definitions and functions for Simple Pairing.
	Add basic commands for Simple Pairing.
	Add correct Simple Pairing and EIR interaction.
	Add missing properties for remote information.
	Add EPoX endian quirk to the input service.
	Fix HID descriptor import and storage functions.
	Fix handling of adapters in raw mode.
	Fix remote device listing methods.

ver 3.13:
	Fix some issues with the headset support.
	Fix concurrent pending connection attempts.
	Fix usage of devname instead of netdev.
	Add identifier for Nokia SyncML records.
	Add command for reading the CSR chip revision.
	Add generic CSR radio test support.
	Update HCI command table.

ver 3.12:
	Add missing HCI command text descriptions
	Add missing HCI commands structures.
	Add missing HCI event structures.
	Add common bachk() function.
	Add support for limited discovery mode.
	Add support for setting of event mask.
	Add GetRemoteServiceIdentifiers method.
	Add skeleton for local D-Bus server.
	Add headset gain control methods.
	Fix various headset implementation issues.
	Fix various serial port service issues.
	Fix various input service issues.
	Let CUPS plugin discover printers in range.
	Improve the BCM2035 UART init routine.
	Ignore connection events for non-ACL links.

ver 3.11:
	Update API documentation.
	Minimize SDP root records and browse groups.
	Use same decoder for text and URL strings.
	Fix URL data size handling.
	Fix SDP pattern extraction for XML.
	Fix network connection persistent state.
	Add network connection helper methods.
	Add initial version of serial port support.
	Add class of device tracking.

ver 3.10.1:
	Add option to disable installation of manual pages.
	Fix input service encryption setup.
	Fix serial service methods.
	Fix network service connection handling.
	Provide a simple init script.

ver 3.10:
	Add initial version of network service.
	Add initial version of serial service.
	Add initial version of input service.
	Add initial version of audio service.
	Add authorization framework.
	Add integer based SBC library.
	Add version code for Bluetooth 2.1 specification.
	Add ESCO_LINK connection type constant.
	Export sdp_uuid32_to_uuid128() function.

ver 3.9:
	Add RemoteDeviceDisconnectRequested signal.
	Add updated service framework.
	Add embedded GLib library.
	Add support for using system GLib library.
	Create internal SDP server library.

ver 3.8:
	Sort discovered devices list based on their RSSI.
	Send DiscoverableTimeoutChanged signal.
	Fix local and remote name validity checking.
	Add ListRemoteDevices and ListRecentRemoteDevices methods.
	Add basic integration of confirmation concept.
	Add support for service record description via XML.
	Add support for external commands to the RFCOMM utility.
	Add experimental service and authorization API.
	Add functions for registering binary records.

ver 3.7:
	Fix class of device handling.
	Fix error replies with pairing and security mode 3.
	Fix disconnect method for RFCOMM connections.
	Add match pattern for service searches.
	Add support for prioritized watches.
	Add additional PDU length checks.
	Fix CSRC value for partial responses.

ver 3.6.1:
	Fix IO channel race conditions.
	Fix pairing issues on big endian systems.
	Fix pairing issues with page timeout errors.
	Fix pairing state for security mode 3 requests.
	Switch to user as default security manager mode.

ver 3.6:
	Update D-Bus based RFCOMM interface support.
	Use L2CAP raw sockets for HCI connection creation.
	Add periodic discovery support to the D-Bus interface.
	Add initial support for device names via EIR.
	Add proper UTF-8 validation of device names.
	Add support for the J-Three keyboard.
	Fix issues with the asynchronous API for SDP.

ver 3.5:
	Fix and cleanup watch functionality.
	Add support for periodic inquiry mode.
	Add support for asynchronous SDP requests.
	Add more request owner tracking.
	Add asynchronous API for SDP.
	Document pageto and discovto options.

ver 3.4:
	Improve error reporting for failed HCI commands.
	Improve handling of CancelBonding.
	Fixed bonding reply message when disconnected.
	Fix UUID128 string lookup handling.
	Fix malloc() versus bt_malloc() usage.

ver 3.3:
	Don't change inquiry mode for Bluetooth 1.1 adapters.
	Add udev rules for Bluetooth serial PCMCIA cards.
	Add Cancel and Release methods for passkey agents.
	Add GetRemoteClass method.
	Convert to using ppoll() and pselect().
	Initialize allocated memory to zero.
	Remove bcm203x firmware loader.
	Remove kernel specific timeouts.
	Add additional private data field for SDP sessions.
	Add host controller to host flow control defines.
	Add host number of completed packets defines.
	Initialize various memory to zero before usage.

ver 3.2:
	Only check for the low-level D-Bus library.
	Update possible device minor classes.
	Fix timeout for pending reply.
	Add more Inquiry with RSSI quirks.
	Sleep only 100 msecs for device detection.
	Don't send BondingCreated on link key renewal.
	Allow storing of all UTF-8 remote device names.
	Create storage filenames with a generic function.
	Fix handling of SDP strings.
	Add adapter type for SDIO cards.
	Add features bit for link supervision timeout.

ver 3.1:
	Add missing placeholders for feature bits.
	Fix handling of raw mode devices.
	Fix busy loop in UUID extraction routine.
	Remove inquiry mode setting.
	Remove auth and encrypt settings.

ver 3.0:
	Implement the new BlueZ D-Bus API.
	Fix broken behavior with EVT_CMD_STATUS.
	Add features bit for pause encryption.
	Add additional EIR error code.
	Add more company identifiers.
	Add another Phonebook Access identifier.
	Update sniff subrating data structures.

ver 2.25:
	Use %jx instead of %llx for uint64_t and int64_t.
	Allow null-terminated text strings.
	Add UUID for N-Gage games.
	Add UUID for Apple Macintosh Attributes.
	Add Apple attributes and iSync records.
	Add definitions for Apple Agent.
	Add support for the Handsfree Audio Gateway service.
	Add support for choosing a specific record handle.
	Add support for dialup/telephone connections.
	Add definitions for Apple Agent.
	Add support for record handle on service registration.

ver 2.24:
	Fix display of SDP text and data strings.
	Add support for device scan property.
	Add support for additional access protocols.
	Update the D-Bus policy configuration file.

ver 2.23:
	Update the new D-Bus interface.
	Make dfutool ready for big endian architectures.
	Add support for AVRCP specific service records.
	Add support for writing complex BCCMD commands.
	Add the new BCCMD interface utility.
	Add MicroBCSP implementation from CSR.
	Add constants and definitions for sniff subrating.
	Add support for allocation of binary text elements.
	Add HCI emulation tool.
	Add fake HID support for old EPoX presenters.
	Reject connections from unknown HID devices.
	Fix service discovery deadlocks with Samsung D600 phones.

ver 2.22:
	Remove D-Bus 0.23 support.
	Add initial version of the new D-Bus interface.
	Add support for extended inquiry response commands.
	Add support for the Logitech diNovo Media Desktop Laser.
	Add compile time buffer checks (FORTIFY SOURCE).
	Decode reserved LMP feature bits.
	Fix errno overwrite problems.
	Fix profile descriptor problem with Samsung phones.

ver 2.21:
	Move create_dirs() and create_file() into the textfile library.
	Let textfile_put() also replace the last key value pair.
	Fix memory leaks with textfile_get() usage.
	Fix infinite loops and false positive matches.
	Don't retrieve stored link keys for RAW devices.
	Document the putkey and delkey commands.
	Show supported commands also in clear text.
	Support volatile changes of the BD_ADDR for CSR chips.
	Add support for identification of supported commands.
	Add missing OCF declarations for the security filter.
	Add two new company identifiers.

ver 2.20:
	Add UUIDs for video distribution profile.
	Add UUIDs for phonebook access profile.
	Add attribute identifier for supported repositories.
	Add definitions for extended inquiry response.
	Add functions for extended inquiry response.
	Add support for extended inquiry response.
	Add support for HotSync service record.
	Add support for ActiveSync service record.
	Add ActiveSync networking support.
	Fix D-Bus crashes with new API versions.

ver 2.19:
	Fix the GCC 4.0 warnings.
	Fix the routing for dealing with raw devices.
	Fix off by one memory allocation error.
	Fix security problem with escape characters in device name.
	Add per device service record functions.
	Send D-Bus signals for inquiry results and remote name resolves.
	Add support for device specific SDP records.

ver 2.18:
	Support D-Bus 0.23 and 0.33 API versions.
	Support reading of complex BCCMD values.
	Support minimum and maximum encryption key length.
	Add support for reading and writing the inquiry scan type.
	Add definitions for connection accept timeout and scan enable.
	Add support for inquiry scan type.
	Add tool for the CSR BCCMD interface.
	Add first draft of the Audio/Video control utility.
	Add disconnect timer support for the A2DP ALSA plugin.
	Make SBC parameters configurable.
	Replace non-printable characters in device names.
	Remove hci_vhci.h header file.
	Remove hci_uart.h header file.

ver 2.17:
	Set the storage directory through ${localstatedir}.
	Add the textfile library for ASCII based file access.
	Add support for return link keys event.
	Add support for voice setting configuration.
	Add support for page scan timeout configuration.
	Add support for storing and deleting of stored link keys.
	Add support for searching for services with UUID-128.
	Add support for retrieving all possible service records.
	Add support for a raw mode view of service records.
	Add support for HID information caching in hidd.
	Add support for authentication in pand and dund.
	Add support for changing BD_ADDR of CSR chips.
	Add pskey utility for changing CSR persistent storage values.
	Add the firmware upgrade utility.
	Add connection caching for the A2DP ALSA plugin.
	Add functions for stored link keys.
	Add definitions for PIN type and unit key.
	Add SDP_WAIT_ON_CLOSE flag for sdp_connect().
	Include stdio.h in bluetooth.h header file.
	Include sys/socket.h in the header files.

ver 2.16:
	Store link keys in ASCII based file format.
	Support device name caching.
	Support zero length data sizes in l2test.
	Change default l2ping data size to 44 bytes.
	Hide the server record and the public browse group root.
	Read BD_ADDR if not set and if it is a raw device.
	Add SDP language attributes.
	Add support for browsing the L2CAP group.
	Add support for stored pin codes for outgoing connections.
	Add support for local commands and extended features.
	Add support for reading CSR panic and fault codes.
	Add config option for setting the inquiry mode.
	Add OUI decoding support.
	Use unlimited inquiry responses as default.
	Use cached device names for PIN request.
	Use the clock offset when getting the remote names.
	Add function for reading local supported commands.
	Add function for reading local extended features.
	Add function for reading remote extended features.
	Add function for getting the remote name with a clock offset.
	Add function for extracting the OUI from a BD_ADDR.
	Add inquiry info structure with RSSI and page scan mode.
	Fix buffer allocation for features to string conversion.
	Support inquiry with unlimited number of responses.

ver 2.15:
	Enable the RFCOMM service level security.
	Add deprecated functions for reading the name.
	Add command for reading the clock offset.
	Add command for reading the clock.
	Add function for reading the clock.
	Add function for reading the local Bluetooth address.
	Add function for reading the local supported features.
	Don't configure raw devices.
	Don't set inquiry scan or page scan on raw devices.
	Don't show extended information for raw devices.
	Support L2CAP signal sizes bigger than 2048 bytes.
	Cleanup of the socket handling code of the test programs.
	Use better way for unaligned access.
	Remove sdp_internal.h and its usage.

ver 2.14:
	Make use of additional connection information.
	Use library function for reading the RSSI.
	Use library function for reading the link quality.
	Use library function for reading the transmit power level.
	Use library functions for the link supervision timeout.
	Add tool for changing the device address.
	Add function for reading the RSSI.
	Add function for reading the link quality.
	Add function for reading the transmit power level.
	Add functions for the link supervision timeout.
	Remove deprecated functions.
	Update AM_PATH_BLUEZ macro.

ver 2.13:
	Use file permission 0600 for the link key file.
	Add support for HID attribute descriptions.
	Add support for Device ID attributes.
	Add Device ID and HID attribute definitions.
	Update the UUID constants and its translations.
	Update L2CAP socket option definitions.
	Update connection information definitions.
	Various whitespace cleanups.

ver 2.12:
	Inherit the device specific options from the default.
	Use --device for selecting the source device.
	Add --nosdp option for devices with resource limitation.
	Add support and parameter option for secure mode.
	Add a lot of build ids and hardware revisions.
	Add service classes and profile ids for WAP.
	Add simple AM_PATH_BLUEZ macro.
	Update UUID translation tables.
	Correct kernel interface for CMTP and HIDP support.

ver 2.11:
	Initial support for the kernel security manager.
	Various cleanups to avoid inclusion of kernel headers.
	Fix output when the CUPS backend is called without arguments.
	Fix problems with a 64 bit userland.
	Use Bluetooth library functions if available.
	Use standard numbering scheme of SDP record handles.
	Use bit zero for vendor packets in the filter type bitmask.
	Add SIM Access types for service discovery.
	Add more audio/video profile translations.
	Add another company identifier.
	Add the missing HCI error codes.
	Add RFCOMM socket options.
	Add definition for the SECURE link mode.
	Add functions for reading and writing the inquiry mode.
	Add functions for AFH related settings and information.
	Add version identifier for the Bluetooth 2.0 specification.
	Add a master option to the hidd.
	Add support for changing the link key of a connection.
	Add support for requesting encryption on keyboards.
	Add support for revision information of Digianswer devices.
	Add support for the Zoom, IBM and TDK PCMCIA cards.
	Add checks for the OpenOBEX and the ALSA libraries.
	Add experimental mRouter support.

ver 2.10:
	Use a define for the configuration directory.
	Fix string initialization for flags translation.
	Fix and extend the unaligned access macros.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.
	Check for usb_get_busses() and usb_interrupt_read().
	Add optional support for compiling with PIE.
	Make installation of the init scripts optional.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.

ver 2.9:
	Retry SDP connect if busy in the CUPS backend.
	Use packet type and allow role switch in hcitool.
	Use the functions from the USB library for hid2hci.
	Add Broadcom firmware loader.
	Add EPoX endian quirk for buggy keyboards.
	Add L2CAP info type and info result definitions.
	Add value for L2CAP_CONF_RFC_MODE.
	Change RSSI value to signed instead of unsigned.
	Allow UUID32 values as protocol identifiers.
	Update the autoconf/automake scripts.

ver 2.8:
	Use LIBS and LDADD instead of LDFLAGS.
	Use HIDP subclass field for HID boot protocol.
	Set olen before calling getsockopt() in pand.
	Restore signals for dev-up script.
	Add PID file support for pand.
	Add size parameter to expand_name() in hcid.
	Add support for audio source and audio sink SDP records.
	Add support for HID virtual cable unplug.
	Add support for AmbiCom BT2000C card.
	Add defines and UUID's for audio/video profiles.
	Add AVDTP protocol identifier.
	Add HIDP subclass field.
	Add PKGConfig support.
	Fix the event code of inquiry with RSSI.
	Remove dummy SDP library.

ver 2.7:
	Fix display of decoded LMP features.
	Update company identifiers.
	Add AFH related types.
	Add first bits from EDR prototyping specification.
	Add support for inquiry with RSSI.
	Add HCRP related SDP functions.
	Add HIDP header file.
	Add support for getting the AFH channel map.
	Add support for AFH mode.
	Add support for inquiry mode.
	Add Bluetooth backend for CUPS.
	Add the hid2hci utility.
	Add the hidd utility.
	Add the pand utility.
	Add the dund utility.
	More endian bug fixes.
	Give udev some time to create the RFCOMM device nodes.
	Release the TTY if no device node is found.
	New startup script for the Bluetooth subsystem.
	Update to the autoconf stuff.

ver 2.6:
	Change default prefix to /usr.
	Add manpages for hcid and hcid.conf.
	Add the sdpd server daemon.
	Add the sdptool utility.
	Add the ciptool utility.
	Add new company identifiers.
	Add BNEP and CMTP header files.
	Add the SDP library.
	Use R2 for default value of pscan_rep_mode.

ver 2.5:
	Add decoding of Bluetooth 1.2 features.
	Add link manager version parameter for Bluetooth 1.2.
	Add new company identifiers.
	Add D-Bus support for PIN request.
	Support for transmit power level.
	Support for park, sniff and hold mode.
	Support for role switch.
	Support for reading the clock offset.
	Support for requesting authentication.
	Support for setting connection encryption.
	Show revision information for Broadcom devices.
	Replace unprintable characters in device name.
	Use R1 for default value of pscan_rep_mode.
	Fix some 64-bit problems.
	Fix some endian problems.
	Report an error on PIN helper failure.
	Update bluepin script for GTK2.

ver 2.4:
	Increase number of inquiry responses.
	Support for transmit power level.
	Display all 8 bytes of the features.
	Add support for reading and writing of IAC.
	Correct decoding class of device.
	Use Ericsson revision command for ST Microelectronics devices.
	Display AVM firmware version with 'revision' command.
	New code for CSR specific revision information.
	Support for ST Microelectronics specific initialization.
	Support for 3Com card version 3.0.
	Support for TDK, IBM and Socket cards.
	Support for initial baud rate.
	Update man pages.
	Fixes for some memory leaks.

ver 2.3:
	Added const qualifiers to appropriate function arguments.
	Minor fixes.
	CSR firmware version is now displayed by 'revision' command.
	Voice command is working properly on big endian machines.
	Added support for Texas Bluetooth modules.
	Added support for high UART baud rates on Ericsson modules.
	BCSP initialization fixes.
	Support for role switch command (hcitool).
	RFCOMM config file parser fixes.
	Update man pages.
	Removed GLib dependency.

ver 2.2:
	Updated RFCOMM header file.
	Additional HCI command and event defines.
	Support for voice settings (hciconfig).
	Minor hcitool fixes.
	Improved configure script.
	Added Headset testing tool.
	Updated man pages.
	RPM package.

ver 2.1.1:
	Resurrect hci_remote_name.

ver 2.1:
	Added hci_{read, write}_class_of_dev().
	Added hci_{read, write}_current_iac_lap().
	Added hci_write_local_name().
	Added RFCOMM header file.
	Minor fixes.
	Improved BCSP initialization (hciattach).
	Support for displaying link quality (hcitool).
	Support for changing link supervision timeout (hcitool).
	New RFCOMM TTY configuration tool (rfcomm).
	Minor fixes and updates.

ver 2.0:
	Additional company IDs.
	BCSP initialization (hciattach).
	Minor hciconfig fixes.

ver 2.0-pr13:
	Support for multiple pairing modes.
	Link key database handling fixes.

ver 2.0-pre12:
	Removed max link key limit. Keys never expire.
	Link key database is always updated. Reread PIN on SIGHUP (hcid).
	Bluetooth script starts SDPd, if installed.
	Other minor fixes.

ver 2.0-pre11:
	Improved link key management and more verbose logging (hcid).
	Fixed scan command (hcitool).

ver 2.0-pre10:
	Fix hci_inquiry function to return errors and accept user buffers.
	New functions hci_devba, hci_devid, hci_for_each_dev and hci_get_route.
	Additional company IDs.
	Makefile and other minor fixes.
	Support for reading RSSI, remote name and changing
	connection type (hcitool). 
	Device initialization fixes (hcid).
	Other minor fixes and improvements.
	Build environment cleanup and fixes.

ver 2.0-pre9:
	Improved bluepin. Working X authentication.
	Improved hcitool. New flexible cmd syntax, additional commands.
	Human readable display of the device features.
	LMP features to string translation support.
	Additional HCI command and event defines.
	Extended hci_filter API.

ver 2.0-pre8:
	Additional HCI ioctls and defines.
	All strings and buffers are allocated dynamically.
	ba2str, str2ba automatically swap bdaddress.
	Additional hciconfig commands. Support for ACL and SCO MTU ioctls.
	Support for Inventel and COM1 UART based devices.
	Minor hcitool fixes.
	Improved l2test. New L2CAP test modes.
	Minor fixes and cleanup.

ver 2.0-pre7:
	Bluetooth libraries and header files is now a separate package.
	New build environment uses automake and libtool.
	Massive header files cleanup.
	Bluetooth utilities is now a separate package.
	New build environment uses automake.
	Moved all config files and security data to /etc/bluetooth.
	Various cleanups.

ver 2.0-pre6:
	API cleanup and additions.
	Improved hcitool.
	l2test minor output fixes.
	hciattach opt to display list of supported devices.

ver 2.0-pre4:
	HCI filter enhancements.

ver 2.0-pre3:
	Cleanup.

ver 2.0-pre2:
	Additional HCI library functions.
	Improved CSR baud rate initialization.
	PCMCIA scripts fixes and enhancements.
	Documentation update.

ver 2.0-pre1:
	New UART initialization utility.
	Hot plugging support for UART based PCMCIA devices.
	SCO testing utility.
	New authentication utility (bluepin).
	Minor fixes and improvements.
