Version 1.1.3
~~~~~~~~~~~~~

* Development release
* Changes:
  - Bump libusbmuxd dependency to 1.0.8
  - Fix reading from syslog_relay and remove null characters
  - Relicense ideviceimagemounter and idevicescreenshot to LGPL
  - Fix a crash when using restored_client_free()
  - API: Add sbservices_get_interface_orientation()
  - Update man pages and code comments for documentation
  - Minor cleanup
* API is UNSTABLE

Version 1.1.2
~~~~~~~~~~~~~

* Development release
* Changes:
  - Add Python bindings generated by Cython
  - Bump libplist requirement to latest 1.8
  - Add support for OpenSSL with fallback to GNUTLS
  - Improvements and various fixes for Win32 and OS X build
  - Remove glib dependency
  - Improve restored implementation
  - Fix various memory leaks
  - Fix support for iOS 5 and later
* SWIG Python Bindings are removed
* API is UNSTABLE

Version 1.1.1
~~~~~~~~~~~~~

* Development release
* Changes:
  - Add new idevicebackup2 tool for full backup and restore support on iOS 4+
  - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which
    most prominently affected libgpod, gvfs, ideviceinfo and some other tools
  - Read ProxyDeath message to preventing obsolete messages in device syslog
  - Rework SWIG detection and includes
  - Add new idevicedate tool to get or set the clock on iDevices
  - API: Add mobilesync_clear_all_records_on_device()
  - API: Change device_link_service_disconnect() to accept a message
  - Add manpages for ideviceenterrecovery, idevicepair, idevicebackup2 and
    idevicedate
  - Add missing libgen.h include to silence compiler warnings
  - Fix a segfault that might occour if locally stored certs could not be read
  - Fix various memory leaks
  - Update documentation
* Python Bindings will get refactored completely
* API is UNSTABLE

Version 1.1.0
~~~~~~~~~~~~~

* Development release
* Changes:
  - Implement restoring backups using idevicebackup
  - Allow connecting without pairing using "ideviceinfo -s"
  - Add ideviceenterrecovery tool
  - Add mobilesync service implementation
  - Add restored service implementation for restore mode
  - Add home_arrest service implementation for document sharing
  - Add API afc_client_new_from_connection()
  - Support to fetch wallpaper in sbservices
  - Support for formatVersion 2 of iOS 4+ in sbservices
  - Add new lockdownd domains to ideviceinfo
  - Give the device time to prepare backup data to prevent abort
  - Improve idevicebackup output
  - notification_proxy fixes and new notification type
  - Silence some 64bit compiler warnings
  - Fix various memory leaks
  - Update documentation
* Python Bindings will get refactored completely
* API is UNSTABLE

Version 1.0.7
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Fix SWIG 2.x detection
  - Fix support for iOS 5 and later
  - Flush output of idevicesyslog immediately
  - Replace deprecated GNUTLS functions properly
  - Fix segfaults in library and some tools
  - Fix memory leaks
  - Build fixes

Version 1.0.6
~~~~~~~~~~~~~

* Quick follow up release
* Changes:
  - Add ideviceenterrecovery which was missing in last release by accident

Version 1.0.5
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which
    most prominently affected libgpod, gvfs, ideviceinfo and some other tools
  - Read ProxyDeath message to preventing obsolete messages in device syslog
  - Rework SWIG detection and includes
  - Add manpages for ideviceenterrecovery and idevicepair
  - Add missing libgen.h include to silence compiler warnings

Version 1.0.4
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Fix a possible crash in lockdownd_client_new_with_handshake()
  - Do not not check for Swig/Python if --without-swig is set
  - Fail with an error message if libgcrypt is not found
  - Pass host certificate with GNUTLS correctly
  - Fix connecting to iOS 4.2.1+ devices

Version 1.0.3
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Terminate idevicesyslog on receive errors (like device unplug)
  - Bugfixes for idevicebackup tool
  - Hopefully the last fixes for big endian machines
  - Build fixes for FreeBSD Python support
  - Fix build on Mac OS X

Version 1.0.2
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Backport new idevicepair tool to manage pairings
  - Fix a bug causing bad backup data
  - Silence 64bit compiler warnings
  - Plug some memory leaks

Version 1.0.1
~~~~~~~~~~~~~

* Maintenance release of stable series
* Changes:
  - Cleanup includes of files
  - Use glib instead of netinet for endianess
  - Fix installation_proxy not adding client options correctly
  - idevicebackup: better handle broken or missing plist files
  - Fix some memory leaks in pairing/handshake process
  - Fix label not being used in lockdownd_client_new()
  - Update AUTHORS, README and installation instructions

Version 1.0.0
~~~~~~~~~~~~~

* Changes:
  - Update and fix documentation for full coverage
  - Add man pages for tools
  - Extend mobilebackup interface
  - Add user data argument to notification callback function
  - Fix broken Python bindings
  - Add Python bindings for notification proxy interface
  - Add screenshotr interface and tool
  - Add mobile_image_mounter interface and tool
  - Remove HAL fdi rules

Version 0.9.7 (RC1)
~~~~~~~~~~~~~~~~~~~

* Project is now called libimobiledevice due to legal reasons
* Changes:
  - Project renamed to libimobiledevice
  - Add soname versioning for future releases
  - Fix regression causing never paired devices to not work by adding
    auto-pairing for devices in lockdownd_client_new_with_handshake
  - Add file_relay service implementation and dev test tool
  - Minor device link service fixes 
  - New idevicebackup tool with support for full and incremental backups
  - Add mobilebackup service implementation

Version 0.9.6
~~~~~~~~~~~~~

* Changes:
  - Minor public API changes to prepare for 1.0 release:
    * lockdownd_client_new -> lockdownd_client_new_with_handshake
    * fooservice_recv -> fooservice_receive
    * iphone_device_send/_recv -> iphone_connection_send/_receive
  - Rename some code for consistency
  - Refactor pairing to allow custom pair records
  - Move SSL handling out of lockdownd code
  - Refactor lockdown session handling code
  - Remove debug mask support
  - No longer do a full lockdown handshake on client_new
  - Refactor debug code to be consistent and easier to use
  - Run validate_pair by default during lockdown handshake
  - Allow retrieving the type for lockdown query_type request
  - Add new property_list_service and device_link_service abstractions
  - Detect pairing failure due to having a password set on the device
  - Implement lockdown phone activation and deactivation
  - Fix iphoneinfo not printing values in key/value mode
  - Implement lockdownd_unpair() request
  - Add more notification ids and lockdown domains
  - Implement label support for lockdown requests
  - Add new installation_proxy interface
  - Add new sbservices interface
  - Implement lockdownd_validate_pair() request
  - Add endian safety to AFC
  - Make lockdown sessions without SSL work
  - Fix linking on Mandriva Linux
  - Minor bugfixes and documentation updates

Version 0.9.5
~~~~~~~~~~~~~

* Changes:
  - Updated to the latest libplist 0.16 API
  - Fixed various minor leaks and issues
  - Updated Python bindings and module name

Version 0.9.4
~~~~~~~~~~~~~

* Changes:
  - Update to libplist 0.15 API rework
  - Update Python bindings
  - Bufixes around usbmuxd daemon usage
  - Use automake 1.11 silent rules if available
  - Various bugfixes

Version 0.9.3
~~~~~~~~~~~~~

* Changes:
  - Bump libplist requirement to 0.13 and remove deprecated code

Version 0.9.2
~~~~~~~~~~~~~

* Changes:
  - Migrate to use the new usbmuxd daemon
  - Refactor whole API
  - Add iPhone 3GS support
  - Add hard/symlink support for AFC
  - New iphone_id tool to list connected devices and get the device
    name
  - iphoneinfo now allows plist/xml output and queries by
    domain/key
  - Fix a lot of bugs/crashes, compiler warnings and comments

Version 0.9.1
~~~~~~~~~~~~~

* Changes:
  - Fix make distcheck
  - Bump libplist requirement to 0.12 and remove deprecated code
  - A bunch of autotools fixes

Version 0.9.0
~~~~~~~~~~~~~

* Changes:
  - Fix pkg-config dependancies
  - Fix Python binding generation
  - AFC cleanup and improved error handling
  - Add support for the notification proxy service
  - Add tools to show device information and relay syslog
  - More robust pairing implementation
  - Remove libiphone-initconf, SSL implementation handles it at
    runtime now
  - Fix receive of plists larger than a packet
  - Return an error if failed to start a service on the device
  - Fix usb enumeration
  - Fix udev rule to catch usb hubs, too
  - Add large file support
  - Move out plist handling into libplist and depend on it
  - Add Python bindings
  - Lots of bugfixes

Version 0.1.0
~~~~~~~~~~~~~

* Changes:
  - Use udev to set usb configuration; iphone kmod is obsolete now
  - Remove HAL mounting
  - Bugfixes

