[Pkg-gtkpod-devel] Bug#726133: NMU for 1.1.5-0.1 (was: libimobildevice - how about syncing from Ubuntu?)

Andrei POPESCU andreimpopescu at gmail.com
Sun Oct 13 16:57:52 UTC 2013


Control: reassign -1 libimobiledevice2 1.1.1-4

On Sb, 12 oct 13, 19:37:27, Andreas Metzler wrote:
> Package: libimobildevice
> Version: 1.1.1-4
> 
> On 2013-10-05 Andreas Metzler <ametzler at bebt.de> wrote:
> > While libimobiledevice has been seriously broken in Debian for at
> > least 4 months Ubuntu's version closes 5 out of 7 open Debian bugs.
> > How about merging from Ubuntu?
> 
> > I would rather not do NMU since I do not use the package. However I am
> > interested in having a buildable libimobiledevice since it is a
> > libtasn reverse dependeny.
> 
> Hello,
> I have uploaded 1.1.5-0.1 as NMU to experimental to at least check
> whether it builds on all architectures. It will need to go through
> NEW, though.
> 
> rdeps build, except for clementine (support dropped upstream, Ubuntu
> has the patch) and ideviceinstaller (Ubuntu has newer upstream and a
> patch to fix this).
> 
> cu Andreas
> 
> -- 
> `What a good friend you are to him, Dr. Maturin. His other friends are
> so grateful to you.'
> `I sew his ears on from time to time, sure'

> diff -NurBbp libimobiledevice-1.1.1/debian/changelog libimobiledevice-1.1.5/debian/changelog
> --- libimobiledevice-1.1.1/debian/changelog	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/changelog	2013-10-12 19:12:45.000000000 +0200
> @@ -1,3 +1,128 @@
> +libimobiledevice (1.1.5-0.1) experimental; urgency=low
> +
> +  * Non-maintainer upload.
> +  * Sync from Ubuntu.
> +    + New upstream version. Closes: #709369
> +    + Includes fix for CVE-2013-2142: insecure /tmp usage. Closes: #710885
> +    + Compatible with newer libusbmuxd. Closes: #682275
> +    + New upstream version does not use gnutls_*_set_priority functions
> +      anymore. Closes: #624066
> +    + Package builds. Closes: #713689
> +    + Does not depend on libusbmuxd1. Closes: #725637
> +  * configure with --disable-silent-rules
> +  * Delete ubuntu-revision on symbol string_concat at Base in 
> +    debian/libimobiledevice4.symbols.
> +  * Update authors and download location in debian/copyright.
> +
> + -- Andreas Metzler <ametzler at debian.org>  Sat, 12 Oct 2013 18:49:30 +0200
> +
> +libimobiledevice (1.1.5-0ubuntu2) saucy; urgency=low
> +
> +  * SECURITY UPDATE: insecure /tmp usage (LP: #1164263)
> +    - debian/patches/CVE-2013-2142.patch: fall back to getpwuid_r instead
> +      of using /tmp in src/userpref.c. Added string_concat() function in
> +      src/Makefile.am, src/utils.c, src/utils.h.
> +    - added new symbol to debian/libimobiledevice4.symbols.
> +    - CVE-2013-2142
> +
> + -- Marc Deslauriers <marc.deslauriers at ubuntu.com>  Wed, 14 Aug 2013 12:43:31 -0400
> +
> +libimobiledevice (1.1.5-0ubuntu1) saucy; urgency=low
> +
> +  * New upstream release. (LP: #1207038)
> +    - soname was bumped
> +  * debian/control:
> +    - Bump minimum cython dependency
> +    - Don't have the -doc package depend on the library
> +  * Dropped patches applied in new version:
> +    - 06_cython_detection.patch
> +    - 07_cython_0.16_check.patch
> +    - 08_cython_0.16_fix.patch
> +    - git_handle_unset_environment.patch
> +    - git_utf8_devices_names.patch
> +  * debian/patches/link_against_pthread.patch:
> +    - Fix underlinking against pthread
> +  * debian/patches/git_explicitly_cast_ssl_enabled.patch:
> +    - Backport patch to fix build failure due to implicit conversion
> +
> + -- Jeremy Bicha <jbicha at ubuntu.com>  Wed, 31 Jul 2013 15:34:39 -0400
> +
> +libimobiledevice (1.1.4-1ubuntu6) raring; urgency=low
> +
> +  * Added missing gcrypt lib to link, fixing FTBFS.
> +  * Updated d/libimobiledevice3.symbols.
> +
> + -- Daniel T Chen <crimsun at ubuntu.com>  Tue, 02 Apr 2013 16:47:51 -0400
> +
> +libimobiledevice (1.1.4-1ubuntu5) raring; urgency=low
> +
> +  * 08_cython_0.16_fix.patch: Follow-up cython fix from Michael Bienia:
> +    - Mark BaseError as not inline in the .pxd file too, to match the
> +      definition from the .pyx file and fix the FTBFS with cython 0.17.
> +  * 09_use_python_config.patch: Use python-config to find the python
> +    include paths, and fix the build failure with multi-arched python.
> +
> + -- Adam Conrad <adconrad at ubuntu.com>  Sat, 19 Jan 2013 06:11:28 -0700
> +
> +libimobiledevice (1.1.4-1ubuntu4) raring; urgency=low
> +
> +  * No-change rebuild for raring to work around a Launchpad copying bug.
> +
> + -- Colin Watson <cjwatson at ubuntu.com>  Thu, 17 Jan 2013 09:40:41 +0000
> +
> +libimobiledevice (1.1.4-1ubuntu3) quantal-proposed; urgency=low
> +
> +  * git_utf8_devices_names.patch:
> +    - fix incorrect naming of e.g iphone devices (lp: #1049991)
> +
> + -- Sebastien Bacher <seb128 at ubuntu.com>  Wed, 24 Oct 2012 12:01:08 +0200
> +
> +libimobiledevice (1.1.4-1ubuntu2) quantal; urgency=low
> +
> +  * debian/patches/git_handle_unset_environment.patch:
> +    - don't segfault when the environment variable are unset (lp: #1034067)
> +
> + -- Sebastien Bacher <seb128 at ubuntu.com>  Fri, 05 Oct 2012 16:39:56 +0200
> +
> +libimobiledevice (1.1.4-1ubuntu1) quantal; urgency=low
> +
> +  * debian/rules: use --disable-openssl, we use gnutls
> +
> + -- Sebastien Bacher <seb128 at ubuntu.com>  Mon, 30 Jul 2012 11:38:16 +0200
> +
> +libimobiledevice (1.1.4-1~quantal) quantal; urgency=low
> +
> +  * Upload Debian version (which is waiting for sponsoring) to quantal
> +
> +  [ Julien Lavergne ]
> +  * New upstream release.
> +  * debian/patches:
> +   - 00git_ios5_support.patch: Merged upstream.
> +   - 06_git_ios5_handle_error.patch: Merged upstream.
> +   - 01-libs.private.patch: Refreshed.
> +   - 02-add-missing-linking.patch & 03_ac_pkg_swig_m4_fixed.patch:
> +     Removed, not necessary since swig is not used now.
> +   - 04_libplist_DSO_linking.patch: Merged upstream.
> +   - 05_remove_gcry_need.patch: Refreshed.
> +   - 06_cython_detection.patch: From upstream, correctly check cython version.
> +   - 07_cython_0.16_check.patch: From upstream, fix building with cython 0.16. 
> +  * debian/control, debian/rules, debian/libimobiledevice3.*
> +   - Bump soname.
> +  * debian/control:
> +   - Build depends on libusbmuxd-dev (>= 1.0.8).
> +   - Replace build depends on swig by cython.
> +   - Build-depends on libplist-dev (>= 1.8-2~) for cython support. 
> +  * debian/libimobiledevice3.install:
> +   - Drop hal file, it's deprecated.
> +  * debian/libimobiledevice3.symbols:
> +   - Update.
> +  * debian/python-plist.install:
> +   - Update files installed by cython.
> +  * debian/rules:
> +   - Update location of .a and .la files.
> +
> + -- Sebastien Bacher <seb128 at ubuntu.com>  Sun, 29 Jul 2012 11:31:31 +0200
> +
>  libimobiledevice (1.1.1-4) unstable; urgency=low
>  
>    [ Robert Hooker ]
> diff -NurBbp libimobiledevice-1.1.1/debian/control libimobiledevice-1.1.5/debian/control
> --- libimobiledevice-1.1.1/debian/control	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/control	2013-10-12 17:53:12.000000000 +0200
> @@ -8,11 +8,11 @@ Build-Depends: debhelper (>= 7.0.50~),
>  	libgnutls-dev (>= 1.6.3), 
>      libusb-1.0-0-dev (>= 1.0.3) [linux-any],
>  	libglib2.0-dev (>= 2.14.1), 
> -	libplist-dev (>= 0.15), 
> +	libplist-dev (>= 1.8-2~),
>  	libplist++-dev (>= 0.15),
>  	python-all-dev (>= 2.6.6-3~), 
> -	swig (>= 1.3.36),
> -	libusbmuxd-dev (>= 1.0.0),
> +	cython (>= 0.17.0),
> +	libusbmuxd-dev (>= 1.0.8),
>  	libtasn1-3-dev (>= 1.1),
>  	libreadline-dev,
>  	python-plist,
> @@ -23,7 +23,7 @@ Vcs-Git: git://git.debian.org/git/pkg-gt
>  Vcs-Browser: http://git.debian.org/?p=pkg-gtkpod/packages/libimobiledevice.git
>  DM-Upload-Allowed: yes
>  
> -Package: libimobiledevice2
> +Package: libimobiledevice4
>  Architecture: any
>  Depends: ${shlibs:Depends}, 
>           ${misc:Depends},
> @@ -38,7 +38,7 @@ Description: Library for communicating w
>  Package: libimobiledevice-dev
>  Architecture: any
>  Section: libdevel
> -Depends: libimobiledevice2 (= ${binary:Version}),
> +Depends: libimobiledevice4 (= ${binary:Version}),
>           ${misc:Depends},
>           libglib2.0-dev,
>           libplist-dev, 
> @@ -52,14 +52,14 @@ Description: Library for communicating w
>   .
>   This package contains the development files.
>  
> -Package: libimobiledevice2-dbg
> +Package: libimobiledevice4-dbg
>  Architecture: any
>  Section: debug
>  Priority: extra
> -Depends: libimobiledevice2 (= ${binary:Version}),
> +Depends: libimobiledevice4 (= ${binary:Version}),
>           ${misc:Depends}
> -Conflicts: libimobiledevice1-dbg, libimobiledevice0-dbg
> -Replaces: libimobiledevice1-dbg, libimobiledevice0-dbg
> +Conflicts: libimobiledevice3-dbg, libimobiledevice1-dbg, libimobiledevice0-dbg
> +Replaces: libimobiledevice3-dbg, libimobiledevice1-dbg, libimobiledevice0-dbg
>  Description: Library for communicating with iPhone and iPod Touch devices
>   libimobiledevice is a library that talks the native Apple USB protocols that
>   the iPhone and iPod Touch use. Unlike other projects, libimobiledevice does
> @@ -98,8 +98,7 @@ Description: Library for communicating w
>  Package: libimobiledevice-doc
>  Architecture: all
>  Section: doc
> -Depends: libimobiledevice2 (>= ${source:Version}),
> -         ${misc:Depends}
> +Depends: ${misc:Depends}
>  Description: Library for communicating with iPhone and iPod Touch devices
>   libimobiledevice is a library that talks the native Apple USB protocols that
>   the iPhone and iPod Touch use. Unlike other projects, libimobiledevice does
> diff -NurBbp libimobiledevice-1.1.1/debian/copyright libimobiledevice-1.1.5/debian/copyright
> --- libimobiledevice-1.1.1/debian/copyright	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/copyright	2013-10-12 19:12:10.000000000 +0200
> @@ -1,18 +1,27 @@
>  Authors:
> - Zach C.
> + Bastien Nocera
> + Bryan Forbes
> + Christophe Fergeau
> + Geoff Paul
> + Ingmar Vanhassel
> + John Maguire
>   Jonathan Beck
> - Matt Colyer
> + Joshua Hill
> + Julien Lavergne
>   Martin Aumueller
> - Christophe Fergeau
> - Martin S.
> - Paul Sladen
> - Patrick Walton
> - Zoltan Balaton
> + Martin Szulecki
> + Marty Rosenberg
> + Matt Colyer
>   Nikias Bassen
> + Patrick Walton
> + Paul Sladen
> + Peter Hoepfner
> + Petr Uzel
>   Todd Zullinger
> - Bastien Nocera
> -Download: http://matt.colyer.name/projects/iphone-linux/
> + Zach C
> + Zoltan Balaton
>  
> +Download: http://www.libimobiledevice.org/
>  Files: *
>  Copyright:
>   Copyright (C) 2008 Zach C. All Rights Reserved
> diff -NurBbp libimobiledevice-1.1.1/debian/libimobiledevice2.install libimobiledevice-1.1.5/debian/libimobiledevice2.install
> --- libimobiledevice-1.1.1/debian/libimobiledevice2.install	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/libimobiledevice2.install	1970-01-01 01:00:00.000000000 +0100
> @@ -1,2 +0,0 @@
> -usr/lib/*.so.2*
> -debian/31-apple-mobile-device.fdi usr/share/hal/fdi/information/20thirdparty/
> diff -NurBbp libimobiledevice-1.1.1/debian/libimobiledevice2.symbols libimobiledevice-1.1.5/debian/libimobiledevice2.symbols
> --- libimobiledevice-1.1.1/debian/libimobiledevice2.symbols	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/libimobiledevice2.symbols	1970-01-01 01:00:00.000000000 +0100
> @@ -1,179 +0,0 @@
> -libimobiledevice.so.2 libimobiledevice2 #MINVER#
> - afc_client_free at Base 0.9.7
> - afc_client_new at Base 0.9.7
> - afc_client_new_from_connection at Base 1.1.0
> - afc_client_new_from_house_arrest_client at Base 1.1.0
> - afc_file_close at Base 0.9.7
> - afc_file_lock at Base 0.9.7
> - afc_file_open at Base 0.9.7
> - afc_file_read at Base 0.9.7
> - afc_file_seek at Base 0.9.7
> - afc_file_tell at Base 0.9.7
> - afc_file_truncate at Base 0.9.7
> - afc_file_write at Base 0.9.7
> - afc_get_device_info at Base 0.9.7
> - afc_get_device_info_key at Base 0.9.7
> - afc_get_file_info at Base 0.9.7
> - afc_make_directory at Base 0.9.7
> - afc_make_link at Base 0.9.7
> - afc_read_directory at Base 0.9.7
> - afc_remove_path at Base 0.9.7
> - afc_rename_path at Base 0.9.7
> - afc_set_file_time at Base 0.9.7
> - afc_truncate at Base 0.9.7
> - debug_level at Base 0.9.7
> - device_link_service_client_free at Base 0.9.7
> - device_link_service_client_new at Base 0.9.7
> - device_link_service_disconnect at Base 0.9.7
> - device_link_service_receive at Base 0.9.7
> - device_link_service_receive_message at Base 1.1.0
> - device_link_service_receive_process_message at Base 1.0.0
> - device_link_service_send at Base 0.9.7
> - device_link_service_send_ping at Base 1.0.0
> - device_link_service_send_process_message at Base 1.0.0
> - device_link_service_version_exchange at Base 0.9.7
> - file_relay_client_free at Base 0.9.7
> - file_relay_client_new at Base 0.9.7
> - file_relay_request_sources at Base 0.9.7
> - house_arrest_client_free at Base 1.1.0
> - house_arrest_client_new at Base 1.1.0
> - house_arrest_get_result at Base 1.1.0
> - house_arrest_send_command at Base 1.1.0
> - house_arrest_send_request at Base 1.1.0
> - idevice_connect at Base 0.9.7
> - idevice_connection_disable_ssl at Base 0.9.7
> - idevice_connection_enable_ssl at Base 0.9.7
> - idevice_connection_receive at Base 0.9.7
> - idevice_connection_receive_timeout at Base 0.9.7
> - idevice_connection_send at Base 0.9.7
> - idevice_device_list_free at Base 0.9.7
> - idevice_disconnect at Base 0.9.7
> - idevice_event_subscribe at Base 0.9.7
> - idevice_event_unsubscribe at Base 0.9.7
> - idevice_free at Base 0.9.7
> - idevice_get_device_list at Base 0.9.7
> - idevice_get_handle at Base 0.9.7
> - idevice_get_uuid at Base 0.9.7
> - idevice_new at Base 0.9.7
> - idevice_set_debug_level at Base 0.9.7
> - instproxy_archive at Base 0.9.7
> - instproxy_browse at Base 0.9.7
> - instproxy_client_free at Base 0.9.7
> - instproxy_client_new at Base 0.9.7
> - instproxy_client_options_add at Base 0.9.7
> - instproxy_client_options_free at Base 0.9.7
> - instproxy_client_options_new at Base 0.9.7
> - instproxy_install at Base 0.9.7
> - instproxy_lookup_archives at Base 0.9.7
> - instproxy_remove_archive at Base 0.9.7
> - instproxy_restore at Base 0.9.7
> - instproxy_uninstall at Base 0.9.7
> - instproxy_upgrade at Base 0.9.7
> - lockdownd_activate at Base 0.9.7
> - lockdownd_client_free at Base 0.9.7
> - lockdownd_client_new at Base 0.9.7
> - lockdownd_client_new_with_handshake at Base 0.9.7
> - lockdownd_client_set_label at Base 0.9.7
> - lockdownd_data_classes_free at Base 1.1.0
> - lockdownd_deactivate at Base 0.9.7
> - lockdownd_enter_recovery at Base 0.9.7
> - lockdownd_gen_pair_cert at Base 0.9.7
> - lockdownd_get_device_name at Base 0.9.7
> - lockdownd_get_device_public_key at Base 0.9.7
> - lockdownd_get_device_uuid at Base 0.9.7
> - lockdownd_get_sync_data_classes at Base 1.1.0
> - lockdownd_get_value at Base 0.9.7
> - lockdownd_goodbye at Base 0.9.7
> - lockdownd_pair at Base 0.9.7
> - lockdownd_query_type at Base 0.9.7
> - lockdownd_receive at Base 0.9.7
> - lockdownd_remove_value at Base 0.9.7
> - lockdownd_send at Base 0.9.7
> - lockdownd_set_value at Base 0.9.7
> - lockdownd_start_service at Base 0.9.7
> - lockdownd_start_session at Base 0.9.7
> - lockdownd_stop_session at Base 0.9.7
> - lockdownd_unpair at Base 0.9.7
> - lockdownd_validate_pair at Base 0.9.7
> - mobile_image_mounter_free at Base 1.0.0
> - mobile_image_mounter_hangup at Base 1.0.0
> - mobile_image_mounter_lookup_image at Base 1.0.0
> - mobile_image_mounter_mount_image at Base 1.0.0
> - mobile_image_mounter_new at Base 1.0.0
> - mobilebackup2_client_free at Base 1.1.1
> - mobilebackup2_client_new at Base 1.1.1
> - mobilebackup2_receive_message at Base 1.1.1
> - mobilebackup2_receive_raw at Base 1.1.1
> - mobilebackup2_send_raw at Base 1.1.1
> - mobilebackup2_send_request at Base 1.1.1
> - mobilebackup2_send_status_response at Base 1.1.1
> - mobilebackup2_version_exchange at Base 1.1.1
> - mobilebackup_client_free at Base 0.9.7
> - mobilebackup_client_new at Base 0.9.7
> - mobilebackup_receive at Base 0.9.7
> - mobilebackup_receive_restore_application_received at Base 1.1.0
> - mobilebackup_receive_restore_file_received at Base 1.1.0
> - mobilebackup_request_backup at Base 1.0.0
> - mobilebackup_request_restore at Base 1.1.0
> - mobilebackup_send at Base 0.9.7
> - mobilebackup_send_backup_file_received at Base 1.0.0
> - mobilebackup_send_error at Base 1.0.0
> - mobilebackup_send_restore_complete at Base 1.1.0
> - mobilesync_acknowledge_changes_from_device at Base 1.1.0
> - mobilesync_actions_add at Base 1.1.0
> - mobilesync_actions_free at Base 1.1.0
> - mobilesync_actions_new at Base 1.1.0
> - mobilesync_anchors_free at Base 1.1.0
> - mobilesync_anchors_new at Base 1.1.0
> - mobilesync_cancel at Base 1.1.0
> - mobilesync_clear_all_records_on_device at Base 1.1.1
> - mobilesync_client_free at Base 0.9.7
> - mobilesync_client_new at Base 0.9.7
> - mobilesync_finish at Base 1.1.0
> - mobilesync_get_all_records_from_device at Base 1.1.0
> - mobilesync_get_changes_from_device at Base 1.1.0
> - mobilesync_ready_to_send_changes_from_computer at Base 1.1.0
> - mobilesync_receive at Base 0.9.7
> - mobilesync_receive_changes at Base 1.1.0
> - mobilesync_remap_identifiers at Base 1.1.0
> - mobilesync_send at Base 0.9.7
> - mobilesync_send_changes at Base 1.1.0
> - mobilesync_start at Base 1.1.0
> - np_client_free at Base 0.9.7
> - np_client_new at Base 0.9.7
> - np_notifier at Base 0.9.7
> - np_observe_notification at Base 0.9.7
> - np_observe_notifications at Base 0.9.7
> - np_post_notification at Base 0.9.7
> - np_set_notify_callback at Base 0.9.7
> - pkcs1_asn1_tab at Base 0.9.7
> - property_list_service_client_free at Base 0.9.7
> - property_list_service_client_new at Base 0.9.7
> - property_list_service_disable_ssl at Base 0.9.7
> - property_list_service_enable_ssl at Base 0.9.7
> - property_list_service_receive_plist at Base 0.9.7
> - property_list_service_receive_plist_with_timeout at Base 0.9.7
> - property_list_service_send_binary_plist at Base 0.9.7
> - property_list_service_send_xml_plist at Base 0.9.7
> - restored_client_free at Base 1.1.0
> - restored_client_new at Base 1.1.0
> - restored_client_set_label at Base 1.1.0
> - restored_get_value at Base 1.1.0
> - restored_goodbye at Base 1.1.0
> - restored_query_type at Base 1.1.0
> - restored_reboot at Base 1.1.0
> - restored_receive at Base 1.1.0
> - restored_send at Base 1.1.0
> - restored_start_restore at Base 1.1.0
> - sbservices_client_free at Base 0.9.7
> - sbservices_client_new at Base 0.9.7
> - sbservices_get_home_screen_wallpaper_pngdata at Base 1.1.0
> - sbservices_get_icon_pngdata at Base 0.9.7
> - sbservices_get_icon_state at Base 0.9.7
> - sbservices_set_icon_state at Base 0.9.7
> - screenshotr_client_free at Base 1.0.0
> - screenshotr_client_new at Base 1.0.0
> - screenshotr_take_screenshot at Base 1.0.0
> - userpref_get_host_id at Base 1.0.2
> - userpref_get_paired_uuids at Base 1.0.2
> - userpref_remove_device_public_key at Base 1.0.2
> diff -NurBbp libimobiledevice-1.1.1/debian/libimobiledevice4.install libimobiledevice-1.1.5/debian/libimobiledevice4.install
> --- libimobiledevice-1.1.1/debian/libimobiledevice4.install	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/libimobiledevice4.install	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1 @@
> +usr/lib/*.so.4*
> diff -NurBbp libimobiledevice-1.1.1/debian/libimobiledevice4.symbols libimobiledevice-1.1.5/debian/libimobiledevice4.symbols
> --- libimobiledevice-1.1.1/debian/libimobiledevice4.symbols	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/libimobiledevice4.symbols	2013-10-12 18:49:12.000000000 +0200
> @@ -0,0 +1,220 @@
> +libimobiledevice.so.4 libimobiledevice4 #MINVER#
> + afc_client_free at Base 0.9.7
> + afc_client_new at Base 0.9.7
> + afc_client_new_from_house_arrest_client at Base 1.1.0
> + afc_client_new_with_service_client at Base 1.1.5
> + afc_file_close at Base 0.9.7
> + afc_file_lock at Base 0.9.7
> + afc_file_open at Base 0.9.7
> + afc_file_read at Base 0.9.7
> + afc_file_seek at Base 0.9.7
> + afc_file_tell at Base 0.9.7
> + afc_file_truncate at Base 0.9.7
> + afc_file_write at Base 0.9.7
> + afc_get_device_info at Base 0.9.7
> + afc_get_device_info_key at Base 0.9.7
> + afc_get_file_info at Base 0.9.7
> + afc_make_directory at Base 0.9.7
> + afc_make_link at Base 0.9.7
> + afc_read_directory at Base 0.9.7
> + afc_remove_path at Base 0.9.7
> + afc_rename_path at Base 0.9.7
> + afc_set_file_time at Base 0.9.7
> + afc_truncate at Base 0.9.7
> + debug_level at Base 0.9.7
> + device_link_service_client_free at Base 0.9.7
> + device_link_service_client_new at Base 0.9.7
> + device_link_service_disconnect at Base 0.9.7
> + device_link_service_receive at Base 0.9.7
> + device_link_service_receive_message at Base 1.1.0
> + device_link_service_receive_process_message at Base 1.0.0
> + device_link_service_send at Base 0.9.7
> + device_link_service_send_ping at Base 1.0.0
> + device_link_service_send_process_message at Base 1.0.0
> + device_link_service_version_exchange at Base 0.9.7
> + diagnostics_relay_client_free at Base 1.1.5
> + diagnostics_relay_client_new at Base 1.1.5
> + diagnostics_relay_goodbye at Base 1.1.5
> + diagnostics_relay_query_ioregistry_entry at Base 1.1.5
> + diagnostics_relay_query_ioregistry_plane at Base 1.1.5
> + diagnostics_relay_query_mobilegestalt at Base 1.1.5
> + diagnostics_relay_request_diagnostics at Base 1.1.5
> + diagnostics_relay_restart at Base 1.1.5
> + diagnostics_relay_shutdown at Base 1.1.5
> + diagnostics_relay_sleep at Base 1.1.5
> + file_relay_client_free at Base 0.9.7
> + file_relay_client_new at Base 0.9.7
> + file_relay_request_sources at Base 0.9.7
> + heartbeat_client_free at Base 1.1.5
> + heartbeat_client_new at Base 1.1.5
> + heartbeat_client_start_service at Base 1.1.5
> + heartbeat_receive at Base 1.1.5
> + heartbeat_receive_with_timeout at Base 1.1.5
> + heartbeat_send at Base 1.1.5
> + house_arrest_client_free at Base 1.1.0
> + house_arrest_client_new at Base 1.1.0
> + house_arrest_get_result at Base 1.1.0
> + house_arrest_send_command at Base 1.1.0
> + house_arrest_send_request at Base 1.1.0
> + idevice_connect at Base 0.9.7
> + idevice_connection_disable_ssl at Base 0.9.7
> + idevice_connection_enable_ssl at Base 0.9.7
> + idevice_connection_receive at Base 0.9.7
> + idevice_connection_receive_timeout at Base 0.9.7
> + idevice_connection_send at Base 0.9.7
> + idevice_device_list_free at Base 0.9.7
> + idevice_disconnect at Base 0.9.7
> + idevice_event_subscribe at Base 0.9.7
> + idevice_event_unsubscribe at Base 0.9.7
> + idevice_free at Base 0.9.7
> + idevice_get_device_list at Base 0.9.7
> + idevice_get_handle at Base 0.9.7
> + idevice_get_udid at Base 1.1.4
> + idevice_new at Base 0.9.7
> + idevice_set_debug_level at Base 0.9.7
> + instproxy_archive at Base 0.9.7
> + instproxy_browse at Base 0.9.7
> + instproxy_client_free at Base 0.9.7
> + instproxy_client_new at Base 0.9.7
> + instproxy_client_options_add at Base 0.9.7
> + instproxy_client_options_free at Base 0.9.7
> + instproxy_client_options_new at Base 0.9.7
> + instproxy_install at Base 0.9.7
> + instproxy_lookup_archives at Base 0.9.7
> + instproxy_remove_archive at Base 0.9.7
> + instproxy_restore at Base 0.9.7
> + instproxy_uninstall at Base 0.9.7
> + instproxy_upgrade at Base 0.9.7
> + lockdownd_activate at Base 0.9.7
> + lockdownd_client_free at Base 0.9.7
> + lockdownd_client_new at Base 0.9.7
> + lockdownd_client_new_with_handshake at Base 0.9.7
> + lockdownd_client_set_label at Base 0.9.7
> + lockdownd_data_classes_free at Base 1.1.0
> + lockdownd_deactivate at Base 0.9.7
> + lockdownd_enter_recovery at Base 0.9.7
> + lockdownd_gen_pair_cert at Base 0.9.7
> + lockdownd_get_device_name at Base 0.9.7
> + lockdownd_get_device_public_key at Base 0.9.7
> + lockdownd_get_device_udid at Base 1.1.4
> + lockdownd_get_sync_data_classes at Base 1.1.0
> + lockdownd_get_value at Base 0.9.7
> + lockdownd_goodbye at Base 0.9.7
> + lockdownd_pair at Base 0.9.7
> + lockdownd_query_type at Base 0.9.7
> + lockdownd_receive at Base 0.9.7
> + lockdownd_remove_value at Base 0.9.7
> + lockdownd_send at Base 0.9.7
> + lockdownd_service_descriptor_free at Base 1.1.5
> + lockdownd_set_value at Base 0.9.7
> + lockdownd_start_service at Base 0.9.7
> + lockdownd_start_session at Base 0.9.7
> + lockdownd_stop_session at Base 0.9.7
> + lockdownd_unpair at Base 0.9.7
> + lockdownd_validate_pair at Base 0.9.7
> + misagent_client_free at Base 1.1.5
> + misagent_client_new at Base 1.1.5
> + misagent_copy at Base 1.1.5
> + misagent_get_status_code at Base 1.1.5
> + misagent_install at Base 1.1.5
> + misagent_remove at Base 1.1.5
> + mobile_image_mounter_free at Base 1.0.0
> + mobile_image_mounter_hangup at Base 1.0.0
> + mobile_image_mounter_lookup_image at Base 1.0.0
> + mobile_image_mounter_mount_image at Base 1.0.0
> + mobile_image_mounter_new at Base 1.0.0
> + mobilebackup2_client_free at Base 1.1.1
> + mobilebackup2_client_new at Base 1.1.1
> + mobilebackup2_receive_message at Base 1.1.1
> + mobilebackup2_receive_raw at Base 1.1.1
> + mobilebackup2_send_message at Base 1.1.4
> + mobilebackup2_send_raw at Base 1.1.1
> + mobilebackup2_send_request at Base 1.1.1
> + mobilebackup2_send_status_response at Base 1.1.1
> + mobilebackup2_version_exchange at Base 1.1.1
> + mobilebackup_client_free at Base 0.9.7
> + mobilebackup_client_new at Base 0.9.7
> + mobilebackup_receive at Base 0.9.7
> + mobilebackup_receive_restore_application_received at Base 1.1.0
> + mobilebackup_receive_restore_file_received at Base 1.1.0
> + mobilebackup_request_backup at Base 1.0.0
> + mobilebackup_request_restore at Base 1.1.0
> + mobilebackup_send at Base 0.9.7
> + mobilebackup_send_backup_file_received at Base 1.0.0
> + mobilebackup_send_error at Base 1.0.0
> + mobilebackup_send_restore_complete at Base 1.1.0
> + mobilesync_acknowledge_changes_from_device at Base 1.1.0
> + mobilesync_actions_add at Base 1.1.0
> + mobilesync_actions_free at Base 1.1.0
> + mobilesync_actions_new at Base 1.1.0
> + mobilesync_anchors_free at Base 1.1.0
> + mobilesync_anchors_new at Base 1.1.0
> + mobilesync_cancel at Base 1.1.0
> + mobilesync_clear_all_records_on_device at Base 1.1.1
> + mobilesync_client_free at Base 0.9.7
> + mobilesync_client_new at Base 0.9.7
> + mobilesync_finish at Base 1.1.0
> + mobilesync_get_all_records_from_device at Base 1.1.0
> + mobilesync_get_changes_from_device at Base 1.1.0
> + mobilesync_ready_to_send_changes_from_computer at Base 1.1.0
> + mobilesync_receive at Base 0.9.7
> + mobilesync_receive_changes at Base 1.1.0
> + mobilesync_remap_identifiers at Base 1.1.0
> + mobilesync_send at Base 0.9.7
> + mobilesync_send_changes at Base 1.1.0
> + mobilesync_start at Base 1.1.0
> + np_client_free at Base 0.9.7
> + np_client_new at Base 0.9.7
> + np_notifier at Base 0.9.7
> + np_observe_notification at Base 0.9.7
> + np_observe_notifications at Base 0.9.7
> + np_post_notification at Base 0.9.7
> + np_set_notify_callback at Base 0.9.7
> + pkcs1_asn1_tab at Base 0.9.7
> + property_list_service_client_free at Base 0.9.7
> + property_list_service_client_new at Base 0.9.7
> + property_list_service_disable_ssl at Base 0.9.7
> + property_list_service_enable_ssl at Base 0.9.7
> + property_list_service_receive_plist at Base 0.9.7
> + property_list_service_receive_plist_with_timeout at Base 0.9.7
> + property_list_service_send_binary_plist at Base 0.9.7
> + property_list_service_send_xml_plist at Base 0.9.7
> + restored_client_free at Base 1.1.0
> + restored_client_new at Base 1.1.0
> + restored_client_set_label at Base 1.1.0
> + restored_get_value at Base 1.1.0
> + restored_goodbye at Base 1.1.0
> + restored_query_type at Base 1.1.0
> + restored_query_value at Base 1.1.4
> + restored_reboot at Base 1.1.0
> + restored_receive at Base 1.1.0
> + restored_send at Base 1.1.0
> + restored_start_restore at Base 1.1.0
> + sbservices_client_free at Base 0.9.7
> + sbservices_client_new at Base 0.9.7
> + sbservices_get_home_screen_wallpaper_pngdata at Base 1.1.0
> + sbservices_get_icon_pngdata at Base 0.9.7
> + sbservices_get_icon_state at Base 0.9.7
> + sbservices_get_interface_orientation at Base 1.1.4
> + sbservices_set_icon_state at Base 0.9.7
> + screenshotr_client_free at Base 1.0.0
> + screenshotr_client_new at Base 1.0.0
> + screenshotr_take_screenshot at Base 1.0.0
> + service_client_factory_start_service at Base 1.1.5
> + service_client_free at Base 1.1.5
> + service_client_new at Base 1.1.5
> + service_disable_ssl at Base 1.1.5
> + service_enable_ssl at Base 1.1.5
> + service_receive at Base 1.1.5
> + service_receive_with_timeout at Base 1.1.5
> + service_send at Base 1.1.5
> + string_concat at Base 1.1.5
> + userpref_get_host_id at Base 1.0.2
> + userpref_get_paired_udids at Base 1.1.4
> + userpref_remove_device_public_key at Base 1.0.2
> + webinspector_client_free at Base 1.1.5
> + webinspector_client_new at Base 1.1.5
> + webinspector_client_start_service at Base 1.1.5
> + webinspector_receive at Base 1.1.5
> + webinspector_receive_with_timeout at Base 1.1.5
> + webinspector_send at Base 1.1.5
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/00git_ios5_support.patch libimobiledevice-1.1.5/debian/patches/00git_ios5_support.patch
> --- libimobiledevice-1.1.1/debian/patches/00git_ios5_support.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/00git_ios5_support.patch	1970-01-01 01:00:00.000000000 +0100
> @@ -1,23 +0,0 @@
> -From f0487376671ffd6ac3fc121657f1fbd0acea3cb0 Mon Sep 17 00:00:00 2001
> -From: Nikias Bassen
> -Date: Tue, 07 Jun 2011 15:59:22 +0000
> -Subject: lockdown: fix support for iOS 5
> -
> ----
> -diff --git a/src/lockdown.c b/src/lockdown.c
> -index 935f24e..15b3d69 100644
> ---- a/src/lockdown.c
> -+++ b/src/lockdown.c
> -@@ -86,7 +86,9 @@ static int lockdown_check_result(plist_t dict, const char *query_match)
> - 
> - 	plist_t result_node = plist_dict_get_item(dict, "Result");
> - 	if (!result_node) {
> --		return ret;
> -+		/* iOS 5: the 'Result' key is not present anymore.
> -+		   Just assume success here */
> -+		return RESULT_SUCCESS;
> - 	}
> - 
> - 	plist_type result_type = plist_get_node_type(result_node);
> ---
> -cgit v0.8.3.1-34-gbf3d
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/01-libs.private.patch libimobiledevice-1.1.5/debian/patches/01-libs.private.patch
> --- libimobiledevice-1.1.1/debian/patches/01-libs.private.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/01-libs.private.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -1,13 +1,13 @@
> -Index: libiphone/libimobiledevice-1.0.pc.in
> +Index: libimobiledevice/libimobiledevice-1.0.pc.in
>  ===================================================================
> ---- libiphone.orig/libimobiledevice-1.0.pc.in	2010-02-02 01:02:09.000000000 +0100
> -+++ libiphone/libimobiledevice-1.0.pc.in	2010-02-02 01:02:15.000000000 +0100
> +--- libimobiledevice.orig/libimobiledevice-1.0.pc.in	2012-03-28 01:16:47.000000000 +0200
> ++++ libimobiledevice/libimobiledevice-1.0.pc.in	2012-03-28 01:16:59.000000000 +0200
>  @@ -6,7 +6,7 @@
>   Name: libimobiledevice
>   Description: A library to communicate with services running on Apple iPhone/iPod Touch devices.
>   Version: @VERSION@
> --Requires: libplist >= 0.12 libusbmuxd >= 0.1.0 glib-2.0 >= 2.14.1 gthread-2.0 >= 2.14.1 gnutls >= 1.6.3 libtasn1 >= 1.1
> -+Requires.private: libplist >= 0.12 libusbmuxd >= 0.1.0 glib-2.0 >= 2.14.1 gthread-2.0 >= 2.14.1 gnutls >= 1.6.3 libtasn1 >= 1.1
> +-Requires: libplist >= 0.12 libusbmuxd >= 0.1.0 @ssl_requires@
> ++Requires.private: libplist >= 0.12 libusbmuxd >= 0.1.0 @ssl_requires@
>   Libs: -L${libdir} -limobiledevice
>   Cflags: -I${includedir}
>   
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/02-add-missing-linking.patch libimobiledevice-1.1.5/debian/patches/02-add-missing-linking.patch
> --- libimobiledevice-1.1.1/debian/patches/02-add-missing-linking.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/02-add-missing-linking.patch	1970-01-01 01:00:00.000000000 +0100
> @@ -1,35 +0,0 @@
> -Index: libimobiledevice/swig/Makefile.am
> -===================================================================
> ---- libimobiledevice.orig/swig/Makefile.am	2011-05-24 01:36:43.000000000 +0200
> -+++ libimobiledevice/swig/Makefile.am	2011-07-05 22:17:56.000000000 +0200
> -@@ -25,7 +25,7 @@
> - nodist__imobiledevice_la_SOURCES = imobiledevice_wrap.cxx $(SWIG_SOURCES)
> - _imobiledevice_la_CFLAGS = $(PYTHON_CPPFLAGS) -I$(top_srcdir)/src
> - _imobiledevice_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS)
> --_imobiledevice_la_LIBADD = $(top_builddir)/src/libimobiledevice.la $(libplistmm_LIBS)
> -+_imobiledevice_la_LIBADD = $(top_builddir)/src/libimobiledevice.la $(libplistmm_LIBS) $(libplist_LIBS)
> - 
> - imobiledevice_wrap.cxx : $(SWIG_SOURCES)
> - 	$(SWIG) $(SWIG_PYTHON_OPT) $(AM_CPPFLAGS) -I$(top_srcdir)/src -o $@ $<
> -Index: libimobiledevice/swig/Makefile.in
> -===================================================================
> ---- libimobiledevice.orig/swig/Makefile.in	2011-05-24 01:36:43.000000000 +0200
> -+++ libimobiledevice/swig/Makefile.in	2011-07-05 22:17:56.000000000 +0200
> -@@ -82,7 +82,7 @@
> - am__DEPENDENCIES_1 =
> - @HAVE_SWIG_TRUE at _imobiledevice_la_DEPENDENCIES =  \
> - @HAVE_SWIG_TRUE@	$(top_builddir)/src/libimobiledevice.la \
> -- at HAVE_SWIG_TRUE@	$(am__DEPENDENCIES_1)
> -+ at HAVE_SWIG_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
> - am__objects_1 =
> - @HAVE_SWIG_TRUE at nodist__imobiledevice_la_OBJECTS =  \
> - @HAVE_SWIG_TRUE@	imobiledevice_wrap.lo $(am__objects_1)
> -@@ -311,7 +311,7 @@
> - @HAVE_SWIG_TRUE at nodist__imobiledevice_la_SOURCES = imobiledevice_wrap.cxx $(SWIG_SOURCES)
> - @HAVE_SWIG_TRUE at _imobiledevice_la_CFLAGS = $(PYTHON_CPPFLAGS) -I$(top_srcdir)/src
> - @HAVE_SWIG_TRUE at _imobiledevice_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS)
> -- at HAVE_SWIG_TRUE@_imobiledevice_la_LIBADD = $(top_builddir)/src/libimobiledevice.la $(libplistmm_LIBS)
> -+ at HAVE_SWIG_TRUE@_imobiledevice_la_LIBADD = $(top_builddir)/src/libimobiledevice.la $(libplistmm_LIBS) $(libplist_LIBS)
> - all: $(BUILT_SOURCES)
> - 	$(MAKE) $(AM_MAKEFLAGS) all-am
> - 
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/03_ac_pkg_swig_m4_fixed.patch libimobiledevice-1.1.5/debian/patches/03_ac_pkg_swig_m4_fixed.patch
> --- libimobiledevice-1.1.1/debian/patches/03_ac_pkg_swig_m4_fixed.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/03_ac_pkg_swig_m4_fixed.patch	1970-01-01 01:00:00.000000000 +0100
> @@ -1,30 +0,0 @@
> -Index: libimobiledevice/m4/ac_pkg_swig.m4
> -===================================================================
> ---- libimobiledevice.orig/m4/ac_pkg_swig.m4	2011-07-05 22:21:43.000000000 +0200
> -+++ libimobiledevice/m4/ac_pkg_swig.m4	2011-07-05 22:23:36.000000000 +0200
> -@@ -103,15 +103,19 @@
> -                         if test -z "$available_patch" ; then
> -                                 [available_patch=0]
> -                         fi
> --                        if test $available_major -ne $required_major \
> --                                -o $available_minor -ne $required_minor \
> --                                -o $available_patch -lt $required_patch ; then
> --                                AC_MSG_WARN([SWIG version >= $1 is required.  You have $swig_version.  You should look at http://www.swig.org])
> --                                SWIG=false
> --                        else
> -+                        if test $available_major -gt $required_major || \
> -+                                ( test $available_major -eq $required_major && \
> -+                                      test $available_minor -gt $required_minor ) || \
> -+                                ( test $available_major -eq $required_major && \
> -+                                        test $available_minor -eq $required_minor && \
> -+                                        test $available_patch -ge $required_patch ) ; then
> -+
> -                                 AC_MSG_NOTICE([SWIG executable is '$SWIG'])
> -                                 SWIG_LIB=`$SWIG -swiglib`
> -                                 AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB'])
> -+                        else
> -+                                AC_MSG_WARN([SWIG version >= $1 is required.  You have $swig_version.  You should look at http://www.swig.org])
> -+                                SWIG='echo "Error: SWIG version >= $1 is required.  You have '"$swig_version"'.  You should look at http://www.swig.org" ; false'
> -                         fi
> -                 else
> -                         AC_MSG_WARN([cannot determine SWIG version])
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/04_libplist_DSO_linking.patch libimobiledevice-1.1.5/debian/patches/04_libplist_DSO_linking.patch
> --- libimobiledevice-1.1.1/debian/patches/04_libplist_DSO_linking.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/04_libplist_DSO_linking.patch	1970-01-01 01:00:00.000000000 +0100
> @@ -1,26 +0,0 @@
> -Index: libimobiledevice/dev/Makefile.am
> -===================================================================
> ---- libimobiledevice.orig/dev/Makefile.am	2011-07-05 22:38:19.000000000 +0200
> -+++ libimobiledevice/dev/Makefile.am	2011-07-05 22:40:55.000000000 +0200
> -@@ -1,7 +1,7 @@
> - AM_CPPFLAGS = -I$(top_srcdir)/include
> - 
> - AM_CFLAGS = $(GLOBAL_CFLAGS) $(libglib2_CFLAGS) $(libgnutls_CFLAGS) $(libtasn1_CFLAGS) $(libgthread2_CFLAGS) $(LFS_CFLAGS)
> --AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS)
> -+AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS) $(libplist_LIBS)
> - 
> - if ENABLE_DEVTOOLS
> - noinst_PROGRAMS = ideviceclient lckd-client afccheck filerelaytest housearresttest
> -Index: libimobiledevice/tools/Makefile.am
> -===================================================================
> ---- libimobiledevice.orig/tools/Makefile.am	2011-07-05 22:41:04.000000000 +0200
> -+++ libimobiledevice/tools/Makefile.am	2011-07-05 22:41:59.000000000 +0200
> -@@ -1,7 +1,7 @@
> - AM_CPPFLAGS = -I$(top_srcdir)/include
> - 
> - AM_CFLAGS = $(GLOBAL_CFLAGS) $(libglib2_CFLAGS) $(libgnutls_CFLAGS) $(libtasn1_CFLAGS) $(libgthread2_CFLAGS) $(LFS_CFLAGS)
> --AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS)
> -+AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS) $(libplist_LIBS)
> - 
> - bin_PROGRAMS = idevice_id ideviceinfo idevicepair idevicesyslog idevicebackup idevicebackup2 ideviceimagemounter idevicescreenshot ideviceenterrecovery idevicedate
> - 
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/05_remove_gcry_need.patch libimobiledevice-1.1.5/debian/patches/05_remove_gcry_need.patch
> --- libimobiledevice-1.1.1/debian/patches/05_remove_gcry_need.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/05_remove_gcry_need.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -6,26 +6,26 @@ Last-Update: 2011-10-25
>  
>  Index: libimobiledevice/configure.ac
>  ===================================================================
> ---- libimobiledevice.orig/configure.ac	2011-10-25 00:32:52.000000000 +0200
> -+++ libimobiledevice/configure.ac	2011-10-25 00:34:56.000000000 +0200
> -@@ -33,7 +33,6 @@
> - PKG_CHECK_MODULES(libtasn1, libtasn1 >= 1.1)
> - PKG_CHECK_MODULES(libplist, libplist >= 0.15)
> - PKG_CHECK_MODULES(libplistmm, libplist++ >= 0.15)
> --AC_CHECK_LIB(gcrypt, gcry_control, [AC_SUBST(libgcrypt_LIBS,[-lgcrypt])], [AC_MSG_ERROR([libgcrypt is required to build libimobiledevice])])
> - 
> - # Checks for header files.
> - AC_HEADER_STDC
> +--- libimobiledevice.orig/configure.ac	2012-03-28 01:10:48.000000000 +0200
> ++++ libimobiledevice/configure.ac	2012-03-28 01:25:22.000000000 +0200
> +@@ -126,7 +126,6 @@
> +   pkg_req_gnutls="gnutls >= 2.2.0"
> +   pkg_req_libtasn1="libtasn1 >= 1.1"
> +   PKG_CHECK_MODULES(libgnutls, $pkg_req_gnutls)
> +-  AC_CHECK_LIB(gcrypt, gcry_control, [AC_SUBST(libgcrypt_LIBS,[-lgcrypt])], [AC_MSG_ERROR([libgcrypt is required to build libimobiledevice with GnuTLS])])
> +   PKG_CHECK_MODULES(libtasn1, $pkg_req_libtasn1)
> +   ssl_provider="GnuTLS"
> +   ssl_requires="$pkg_req_gnutls $pkg_req_libtasn1"
>  Index: libimobiledevice/src/Makefile.am
>  ===================================================================
> ---- libimobiledevice.orig/src/Makefile.am	2011-10-25 00:33:04.000000000 +0200
> -+++ libimobiledevice/src/Makefile.am	2011-10-25 00:34:46.000000000 +0200
> +--- libimobiledevice.orig/src/Makefile.am	2012-03-28 01:10:48.000000000 +0200
> ++++ libimobiledevice/src/Makefile.am	2012-03-28 01:26:34.000000000 +0200
>  @@ -1,7 +1,7 @@
>   AM_CPPFLAGS = -I$(top_srcdir)/include
>   
> - AM_CFLAGS = $(GLOBAL_CFLAGS) $(libusbmuxd_CFLAGS) $(libglib2_CFLAGS) $(libgnutls_CFLAGS) $(libtasn1_CFLAGS) $(libgthread2_CFLAGS) $(libplist_CFLAGS) $(LFS_CFLAGS)
> --AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS) $(libplist_LIBS) $(libusbmuxd_LIBS) $(libgcrypt_LIBS)
> -+AM_LDFLAGS = $(libglib2_LIBS) $(libgnutls_LIBS) $(libtasn1_LIBS) $(libgthread2_LIBS) $(libplist_LIBS) $(libusbmuxd_LIBS)
> + AM_CFLAGS = $(GLOBAL_CFLAGS) $(libusbmuxd_CFLAGS) $(libgnutls_CFLAGS) $(libtasn1_CFLAGS) $(libplist_CFLAGS) $(LFS_CFLAGS) $(openssl_CFLAGS)
> +-AM_LDFLAGS = $(libgnutls_LIBS) $(libtasn1_LIBS) $(libplist_LIBS) $(libusbmuxd_LIBS) $(libgcrypt_LIBS) ${libpthread_LIBS} $(openssl_LIBS)
> ++AM_LDFLAGS = $(libgnutls_LIBS) $(libtasn1_LIBS) $(libplist_LIBS) $(libusbmuxd_LIBS) ${libpthread_LIBS} $(openssl_LIBS)
>   
>   lib_LTLIBRARIES = libimobiledevice.la
> - libimobiledevice_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBIMOBILEDEVICE_SO_VERSION) -no-undefined
> + libimobiledevice_la_LIBADD = 
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/06_git_ios5_handle_error.patch libimobiledevice-1.1.5/debian/patches/06_git_ios5_handle_error.patch
> --- libimobiledevice-1.1.1/debian/patches/06_git_ios5_handle_error.patch	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/06_git_ios5_handle_error.patch	1970-01-01 01:00:00.000000000 +0100
> @@ -1,35 +0,0 @@
> -From e855f246b3d869a60375207fde1294bbe761fe23 Mon Sep 17 00:00:00 2001
> -From: Nikias Bassen
> -Date: Mon, 21 Nov 2011 15:50:24 +0000
> -Subject: lockdown: iOS 5: handle 'Error' key in lockdown_check_result
> -
> ----
> -diff --git a/src/lockdown.c b/src/lockdown.c
> -index 327d9e5..1783df6 100644
> ---- a/src/lockdown.c
> -+++ b/src/lockdown.c
> -@@ -87,7 +87,21 @@ static int lockdown_check_result(plist_t dict, const char *query_match)
> - 	plist_t result_node = plist_dict_get_item(dict, "Result");
> - 	if (!result_node) {
> - 		/* iOS 5: the 'Result' key is not present anymore.
> --		   Just assume success here */
> -+		   But we need to check for the 'Error' key. */
> -+		plist_t err_node = plist_dict_get_item(dict, "Error");
> -+		if (err_node) {
> -+			if (plist_get_node_type(err_node) == PLIST_STRING) {
> -+				char *err_value = NULL;
> -+				plist_get_string_val(err_node, &err_value);
> -+				if (err_value) {
> -+					debug_info("ERROR: %s", err_value);
> -+					free(err_value);
> -+				} else {
> -+					debug_info("ERROR: unknown error occured");
> -+				}
> -+			}
> -+			return RESULT_FAILURE;
> -+		}
> - 		return RESULT_SUCCESS;
> - 	}
> - 
> ---
> -cgit v0.8.3.1-34-gbf3d
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/09_use_python_config.patch libimobiledevice-1.1.5/debian/patches/09_use_python_config.patch
> --- libimobiledevice-1.1.1/debian/patches/09_use_python_config.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/09_use_python_config.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,22 @@
> +Description: Use python-config to find headers.
> +   * 09_use_python_config.patch: Use python-config to find the python
> +     include paths, and fix the build failure with multi-arched python.
> +Author: Adam Conrad <adconrad at ubuntu.com>
> +Forwarded: no
> +
> +--- libimobiledevice-1.1.4.orig/m4/ac_python_devel.m4
> ++++ libimobiledevice-1.1.4/m4/ac_python_devel.m4
> +@@ -152,12 +152,7 @@ $ac_distutils_result])
> + 	#
> + 	AC_MSG_CHECKING([for Python include path])
> + 	if test -z "$PYTHON_CPPFLAGS"; then
> +-		python_path=`$PYTHON -c "import distutils.sysconfig; \
> +-           		print distutils.sysconfig.get_python_inc();"`
> +-		if test -n "${python_path}"; then
> +-		   	python_path="-I$python_path"
> +-		fi
> +-		PYTHON_CPPFLAGS=$python_path
> ++		PYTHON_CPPFLAGS=`$PYTHON-config --includes`
> + 	fi
> + 	AC_MSG_RESULT([$PYTHON_CPPFLAGS])
> + 	AC_SUBST([PYTHON_CPPFLAGS])
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/10_libgcrypt_underlinkage.patch libimobiledevice-1.1.5/debian/patches/10_libgcrypt_underlinkage.patch
> --- libimobiledevice-1.1.1/debian/patches/10_libgcrypt_underlinkage.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/10_libgcrypt_underlinkage.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,13 @@
> +Index: libimobiledevice-1.1.4/tools/Makefile.am
> +===================================================================
> +--- libimobiledevice-1.1.4.orig/tools/Makefile.am	2012-04-08 11:19:23.000000000 -0400
> ++++ libimobiledevice-1.1.4/tools/Makefile.am	2013-04-02 16:50:15.451420800 -0400
> +@@ -27,7 +27,7 @@
> + 
> + idevicebackup_SOURCES = idevicebackup.c
> + idevicebackup_CFLAGS = $(AM_CFLAGS)
> +-idevicebackup_LDFLAGS = $(AM_LDFLAGS)
> ++idevicebackup_LDFLAGS = $(AM_LDFLAGS) -lgcrypt
> + idevicebackup_LDADD = ../src/libimobiledevice.la
> + 
> + idevicebackup2_SOURCES = idevicebackup2.c
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/CVE-2013-2142.patch libimobiledevice-1.1.5/debian/patches/CVE-2013-2142.patch
> --- libimobiledevice-1.1.1/debian/patches/CVE-2013-2142.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/CVE-2013-2142.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,308 @@
> +Description: fix insecure /tmp usage
> +Origin: backport, http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=42892465d4522cf19283b8a06bf48104bb387430
> +Origin: backport, http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=a2ddca0916ef776dbd0c6304ea36b4ca7a35302c
> +Origin: backport, http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=153fbe15c702d9c36551d84ee8cb25c4884fd701
> +Bug: http://libiphone.lighthouseapp.com/projects/27916-libiphone/tickets/331-insecure-tmp-directory-use
> +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libimobiledevice/+bug/1164263
> +
> +Index: libimobiledevice-1.1.5/src/Makefile.am
> +===================================================================
> +--- libimobiledevice-1.1.5.orig/src/Makefile.am	2013-08-13 08:57:27.000000000 -0400
> ++++ libimobiledevice-1.1.5/src/Makefile.am	2013-08-13 09:01:46.365926782 -0400
> +@@ -28,7 +28,8 @@
> + 		       restore.c restore.h\
> + 		       diagnostics_relay.c diagnostics_relay.h\
> + 		       heartbeat.c heartbeat.h\
> +-		       webinspector.c webinspector.h
> ++		       webinspector.c webinspector.h\
> ++		       utils.c utils.h
> + 
> + if WIN32
> + libimobiledevice_la_LIBADD += -lole32
> +Index: libimobiledevice-1.1.5/src/userpref.c
> +===================================================================
> +--- libimobiledevice-1.1.5.orig/src/userpref.c	2013-02-25 10:25:04.000000000 -0500
> ++++ libimobiledevice-1.1.5/src/userpref.c	2013-08-13 09:03:13.877929023 -0400
> +@@ -26,6 +26,9 @@
> + #include <stdint.h>
> + #include <stdlib.h>
> + #include <string.h>
> ++#include <sys/types.h>
> ++#include <pwd.h>
> ++#include <unistd.h>
> + #ifdef HAVE_OPENSSL
> + #include <openssl/pem.h>
> + #include <openssl/rsa.h>
> +@@ -48,6 +51,7 @@
> + 
> + #include "userpref.h"
> + #include "debug.h"
> ++#include "utils.h"
> + 
> + #define LIBIMOBILEDEVICE_CONF_DIR  "libimobiledevice"
> + #define LIBIMOBILEDEVICE_CONF_FILE "libimobiledevicerc"
> +@@ -65,7 +69,7 @@
> + #define DIR_SEP_S "/"
> + #endif
> + 
> +-static char __config_dir[512] = {0, };
> ++static char *__config_dir = NULL;
> + 
> + #ifdef WIN32
> + static char *userpref_utf16_to_utf8(wchar_t *unistr, long len, long *items_read, long *items_written)
> +@@ -102,23 +106,59 @@
> + }
> + #endif
> + 
> +-static const char *userpref_get_tmp_dir()
> ++static char *get_home_dir_from_system(void)
> + {
> +-	const char *cdir = getenv("TMPDIR");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	cdir = getenv("TMP");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	cdir = getenv("TEMP");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	return "/tmp";
> ++	long bufsize;
> ++	char *buf;
> ++	int error;
> ++	struct passwd pwd;
> ++	struct passwd *ppwd;
> ++	char *result = NULL;
> ++
> ++	bufsize = sysconf (_SC_GETPW_R_SIZE_MAX);
> ++
> ++	if (bufsize < 0)
> ++		bufsize = 1024;
> ++
> ++	buf = NULL;
> ++
> ++	do {
> ++		free (buf);
> ++		buf = malloc (bufsize);
> ++		if (!buf)
> ++			return NULL;
> ++
> ++		errno = 0;
> ++		error = getpwuid_r (getuid (), &pwd, buf, bufsize, &ppwd);
> ++
> ++		error = (error < 0) ? errno : error;
> ++
> ++		if (!ppwd) {
> ++			if (error == 0 || error == ENOENT)
> ++				break;
> ++			else if (bufsize > 32 * 1024)
> ++				break; /* Unreasonable size; let's bail out */
> ++
> ++			bufsize *= 2;
> ++		}
> ++	} while (!ppwd);
> ++
> ++	if (ppwd && ppwd->pw_dir)
> ++		result = strdup (ppwd->pw_dir);
> ++
> ++	free (buf);
> ++
> ++	return result;
> + }
> + 
> + static const char *userpref_get_config_dir()
> + {
> +-	if (__config_dir[0]) return __config_dir;
> ++	char *base_config_dir;
> ++	int use_dot_config;
> ++
> ++	if (__config_dir)
> ++		return __config_dir;
> ++
> + #ifdef WIN32
> + 	wchar_t path[MAX_PATH+1];
> + 	HRESULT hr;
> +@@ -129,38 +169,45 @@
> + 	if (hr == S_OK) {
> + 		b = SHGetPathFromIDListW (pidl, path);
> + 		if (b) {
> +-			char *cdir = userpref_utf16_to_utf8 (path, wcslen(path), NULL, NULL);
> +-			strcpy(__config_dir, cdir);
> +-			free(cdir);
> ++			base_config_dir = userpref_utf16_to_utf8 (path, wcslen(path), NULL, NULL);
> + 			CoTaskMemFree (pidl);
> + 		}
> + 	}
> ++
> ++	use_dot_config = 0;
> + #else
> + 	const char *cdir = getenv("XDG_CONFIG_HOME");
> + 	if (!cdir) {
> + 		cdir = getenv("HOME");
> + 		if (!cdir || !cdir[0]) {
> +-			const char *tdir = userpref_get_tmp_dir();
> +-			strcpy(__config_dir, tdir);
> +-			strcat(__config_dir, DIR_SEP_S);
> +-			strcat(__config_dir, "root");
> ++			base_config_dir = get_home_dir_from_system();
> ++			if (!base_config_dir)
> ++				return NULL;
> + 		} else {
> +-			strcpy(__config_dir, cdir);
> ++			base_config_dir = strdup(cdir);
> + 		}
> +-		strcat(__config_dir, DIR_SEP_S);
> +-		strcat(__config_dir, ".config");
> ++
> ++		use_dot_config = 1;
> + 	} else {
> +-		strcpy(__config_dir, cdir);
> ++		base_config_dir = strdup(cdir);
> ++		use_dot_config = 0;
> + 	}
> + #endif
> +-	strcat(__config_dir, DIR_SEP_S);
> +-	strcat(__config_dir, LIBIMOBILEDEVICE_CONF_DIR);
> + 
> +-	int i = strlen(__config_dir)-1;	
> +-	while ((i > 0) && (__config_dir[i] == DIR_SEP)) {
> +-		__config_dir[i--] = '\0';
> ++	if (use_dot_config)
> ++		__config_dir = string_concat(base_config_dir, DIR_SEP_S, ".config", DIR_SEP_S, LIBIMOBILEDEVICE_CONF_DIR, NULL);
> ++	else
> ++		__config_dir = string_concat(base_config_dir, DIR_SEP_S, LIBIMOBILEDEVICE_CONF_DIR, NULL);
> ++
> ++	if (__config_dir) {
> ++		int i = strlen(__config_dir)-1;	
> ++		while ((i > 0) && (__config_dir[i] == DIR_SEP)) {
> ++			__config_dir[i--] = '\0';
> ++		}
> + 	}
> + 
> ++	free(base_config_dir);
> ++
> + 	return __config_dir;
> + }
> + 
> +Index: libimobiledevice-1.1.5/src/utils.c
> +===================================================================
> +--- /dev/null	1970-01-01 00:00:00.000000000 +0000
> ++++ libimobiledevice-1.1.5/src/utils.c	2013-08-13 09:01:07.181925779 -0400
> +@@ -0,0 +1,85 @@
> ++/*
> ++ * utils.c
> ++ * Miscellaneous utilities for string manipulation
> ++ *
> ++ * Copyright (c) 2013 Federico Mena Quintero
> ++ *
> ++ * This library is free software; you can redistribute it and/or
> ++ * modify it under the terms of the GNU Lesser General Public
> ++ * License as published by the Free Software Foundation; either
> ++ * version 2.1 of the License, or (at your option) any later version.
> ++ *
> ++ * This library is distributed in the hope that it will be useful,
> ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> ++ * Lesser General Public License for more details.
> ++ *
> ++ * You should have received a copy of the GNU Lesser General Public
> ++ * License along with this library; if not, write to the Free Software
> ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
> ++ */
> ++
> ++#ifdef HAVE_CONFIG_H
> ++#include <config.h>
> ++#endif
> ++
> ++#include <stdarg.h>
> ++#include <stdlib.h>
> ++#include <string.h>
> ++
> ++#include "utils.h"
> ++
> ++/**
> ++ * Concatenate strings into a newly allocated string
> ++ *
> ++ * @note: Specify NULL for the last string in the varargs list
> ++ *
> ++ * @str: The first string in the list
> ++ * @...: Subsequent strings.  Use NULL for the last item.
> ++ *
> ++ * @return a newly allocated string, or NULL if @str is NULL.  This will also
> ++ * return NULL and set errno to ENOMEM if memory is exhausted.
> ++ */
> ++char *string_concat(const char *str, ...)
> ++{
> ++	size_t len;
> ++	va_list args;
> ++	char *s;
> ++	char *result;
> ++	char *dest;
> ++
> ++	if (!str)
> ++		return NULL;
> ++
> ++	/* Compute final length */
> ++
> ++	len = strlen(str) + 1; /* plus 1 for the null terminator */
> ++
> ++	va_start(args, str);
> ++	s = va_arg(args, char *);
> ++	while (s) {
> ++		len += strlen(s);
> ++		s = va_arg(args, char*);
> ++	}
> ++	va_end(args);
> ++
> ++	/* Concat each string */
> ++
> ++	result = malloc(len);
> ++	if (!result)
> ++		return NULL; /* errno remains set */
> ++
> ++	dest = result;
> ++
> ++	dest = stpcpy(dest, str);
> ++
> ++	va_start(args, str);
> ++	s = va_arg(args, char *);
> ++	while (s) {
> ++		dest = stpcpy(dest, s);
> ++		s = va_arg(args, char *);
> ++	}
> ++	va_end(args);
> ++
> ++	return result;
> ++}
> +Index: libimobiledevice-1.1.5/src/utils.h
> +===================================================================
> +--- /dev/null	1970-01-01 00:00:00.000000000 +0000
> ++++ libimobiledevice-1.1.5/src/utils.h	2013-08-13 09:01:07.181925779 -0400
> +@@ -0,0 +1,27 @@
> ++/*
> ++ * utils.h
> ++ * Miscellaneous utilities for string manipulation
> ++ *
> ++ * Copyright (c) 2013 Federico Mena Quintero
> ++ *
> ++ * This library is free software; you can redistribute it and/or
> ++ * modify it under the terms of the GNU Lesser General Public
> ++ * License as published by the Free Software Foundation; either
> ++ * version 2.1 of the License, or (at your option) any later version.
> ++ *
> ++ * This library is distributed in the hope that it will be useful,
> ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> ++ * Lesser General Public License for more details.
> ++ *
> ++ * You should have received a copy of the GNU Lesser General Public
> ++ * License along with this library; if not, write to the Free Software
> ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
> ++ */
> ++
> ++#ifndef __UTILS_H
> ++#define __UTILS_H
> ++
> ++char *string_concat(const char *str, ...);
> ++
> ++#endif
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/git_add_utils.patch libimobiledevice-1.1.5/debian/patches/git_add_utils.patch
> --- libimobiledevice-1.1.1/debian/patches/git_add_utils.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/git_add_utils.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,148 @@
> +From 42892465d4522cf19283b8a06bf48104bb387430 Mon Sep 17 00:00:00 2001
> +From: Federico Mena Quintero
> +Date: Sat, 29 Jun 2013 01:02:20 +0000
> +Subject: common: Add utils.[ch] with a string_concat() function
> +
> +Instead of doing malloc() and repeated strcat(), which is an O(n^2) way to concatenate multiple strings,
> +we define a single O(total_len) function that uses stpcpy().  This will also make the rest of the code
> +more legible and safer.
> +---
> +diff --git a/common/Makefile.am b/common/Makefile.am
> +index 664e13b..20bfe4d 100644
> +--- a/common/Makefile.am
> ++++ b/common/Makefile.am
> +@@ -10,7 +10,8 @@ libinternalcommon_la_SOURCES = \
> + 		       socket.c socket.h \
> + 		       thread.c thread.h \
> + 		       debug.c debug.h \
> +-		       userpref.c userpref.h
> ++		       userpref.c userpref.h \
> ++		       utils.c utils.h
> + 
> + if WIN32
> + libinternalcommon_la_LIBADD += -lole32
> +diff --git a/common/utils.c b/common/utils.c
> +new file mode 100644
> +index 0000000..b2b3768
> +--- /dev/null
> ++++ b/common/utils.c
> +@@ -0,0 +1,85 @@
> ++/*
> ++ * utils.c
> ++ * Miscellaneous utilities for string manipulation
> ++ *
> ++ * Copyright (c) 2013 Federico Mena Quintero
> ++ *
> ++ * This library is free software; you can redistribute it and/or
> ++ * modify it under the terms of the GNU Lesser General Public
> ++ * License as published by the Free Software Foundation; either
> ++ * version 2.1 of the License, or (at your option) any later version.
> ++ *
> ++ * This library is distributed in the hope that it will be useful,
> ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> ++ * Lesser General Public License for more details.
> ++ *
> ++ * You should have received a copy of the GNU Lesser General Public
> ++ * License along with this library; if not, write to the Free Software
> ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
> ++ */
> ++
> ++#ifdef HAVE_CONFIG_H
> ++#include <config.h>
> ++#endif
> ++
> ++#include <stdarg.h>
> ++#include <stdlib.h>
> ++#include <string.h>
> ++
> ++#include "utils.h"
> ++
> ++/**
> ++ * Concatenate strings into a newly allocated string
> ++ *
> ++ * @note: Specify NULL for the last string in the varargs list
> ++ *
> ++ * @str: The first string in the list
> ++ * @...: Subsequent strings.  Use NULL for the last item.
> ++ *
> ++ * @return a newly allocated string, or NULL if @str is NULL.  This will also
> ++ * return NULL and set errno to ENOMEM if memory is exhausted.
> ++ */
> ++char *string_concat(const char *str, ...)
> ++{
> ++	size_t len;
> ++	va_list args;
> ++	char *s;
> ++	char *result;
> ++	char *dest;
> ++
> ++	if (!str)
> ++		return NULL;
> ++
> ++	/* Compute final length */
> ++
> ++	len = strlen(str) + 1; /* plus 1 for the null terminator */
> ++
> ++	va_start(args, str);
> ++	s = va_arg(args, char *);
> ++	while (s) {
> ++		len += strlen(s);
> ++		s = va_arg(args, char*);
> ++	}
> ++	va_end(args);
> ++
> ++	/* Concat each string */
> ++
> ++	result = malloc(len);
> ++	if (!result)
> ++		return NULL; /* errno remains set */
> ++
> ++	dest = result;
> ++
> ++	dest = stpcpy(dest, str);
> ++
> ++	va_start(args, str);
> ++	s = va_arg(args, char *);
> ++	while (s) {
> ++		dest = stpcpy(dest, s);
> ++		s = va_arg(args, char *);
> ++	}
> ++	va_end(args);
> ++
> ++	return result;
> ++}
> +diff --git a/common/utils.h b/common/utils.h
> +new file mode 100644
> +index 0000000..129f974
> +--- /dev/null
> ++++ b/common/utils.h
> +@@ -0,0 +1,27 @@
> ++/*
> ++ * utils.h
> ++ * Miscellaneous utilities for string manipulation
> ++ *
> ++ * Copyright (c) 2013 Federico Mena Quintero
> ++ *
> ++ * This library is free software; you can redistribute it and/or
> ++ * modify it under the terms of the GNU Lesser General Public
> ++ * License as published by the Free Software Foundation; either
> ++ * version 2.1 of the License, or (at your option) any later version.
> ++ *
> ++ * This library is distributed in the hope that it will be useful,
> ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> ++ * Lesser General Public License for more details.
> ++ *
> ++ * You should have received a copy of the GNU Lesser General Public
> ++ * License along with this library; if not, write to the Free Software
> ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
> ++ */
> ++
> ++#ifndef __UTILS_H
> ++#define __UTILS_H
> ++
> ++char *string_concat(const char *str, ...);
> ++
> ++#endif
> +
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/git_explicitly_cast_ssl_enabled.patch libimobiledevice-1.1.5/debian/patches/git_explicitly_cast_ssl_enabled.patch
> --- libimobiledevice-1.1.1/debian/patches/git_explicitly_cast_ssl_enabled.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/git_explicitly_cast_ssl_enabled.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,20 @@
> +From 62ab50f64fa210304338a5bfccdc6a26fac5f0ec Mon Sep 17 00:00:00 2001
> +From: Dawn K. Isabel
> +Date: Fri, 31 May 2013 03:36:52 +0000
> +Subject: cython: Explicitly cast ssl_enabled when calling lockdownd_start_session
> +
> +---
> +diff --git a/cython/lockdown.pxi b/cython/lockdown.pxi
> +index 6fb49a3..ee674b4 100644
> +--- a/cython/lockdown.pxi
> ++++ b/cython/lockdown.pxi
> +@@ -221,7 +221,7 @@ cdef class LockdownClient(PropertyListService):
> +             char* c_session_id = NULL
> +             bint ssl_enabled
> +             bytes session_id
> +-        err = lockdownd_start_session(self._c_client, host_id, &c_session_id, &ssl_enabled)
> ++        err = lockdownd_start_session(self._c_client, host_id, &c_session_id, <int *>&ssl_enabled)
> +         try:
> +             self.handle_error(err)
> + 
> +
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/git_fix_insecure_tmp.patch libimobiledevice-1.1.5/debian/patches/git_fix_insecure_tmp.patch
> --- libimobiledevice-1.1.1/debian/patches/git_fix_insecure_tmp.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/git_fix_insecure_tmp.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,186 @@
> +From a2ddca0916ef776dbd0c6304ea36b4ca7a35302c Mon Sep 17 00:00:00 2001
> +From: Federico Mena Quintero
> +Date: Tue, 02 Jul 2013 18:38:36 +0000
> +Subject: Bug #331 - Don't create a /tmp/root directory insecurely
> +
> +When finding the user's home directory to generate a subdirectory in $HOME/.config, we would
> +fall back to /tmp if there were no environment variables for HOME or XDG_CONFIG_HOME.
> +
> +Since libimobiledevice gets used by upower, and since upowerd runs as root, this would cause
> +a /tmp/root directory to be created insecurely, leaving upowerd vulnerable to a symlink attack.
> +
> +Now we fall back to getpwuid_r() to find the user's home directory if it is not provided
> +in environment variables - this is the case when upowerd gets run via systemd, for example.
> +The result is that we'll end up creating /root/.config, a safe directory, since regular
> +users cannot create symlinks in /root.
> +
> +In the future we'll need a way for libimobiledevice to find where to store its pairing data
> +on behalf of the console user, rather than writing it to /root.
> +
> +http://libiphone.lighthouseapp.com/projects/27916-libiphone/tickets/331-insecure-tmp-directory-use
> +---
> +diff --git a/src/userpref.c b/src/userpref.c
> +index d363b0e..ab3a3cf 100644
> +--- a/src/userpref.c
> ++++ b/src/userpref.c
> +@@ -26,6 +26,9 @@
> + #include <stdint.h>
> + #include <stdlib.h>
> + #include <string.h>
> ++#include <sys/types.h>
> ++#include <pwd.h>
> ++#include <unistd.h>
> + #ifdef HAVE_OPENSSL
> + #include <openssl/pem.h>
> + #include <openssl/rsa.h>
> +@@ -48,6 +51,7 @@
> + 
> + #include "userpref.h"
> + #include "debug.h"
> ++#include "utils.h"
> + 
> + #define LIBIMOBILEDEVICE_CONF_DIR  "libimobiledevice"
> + #define LIBIMOBILEDEVICE_CONF_FILE "libimobiledevicerc"
> +@@ -65,7 +69,7 @@
> + #define DIR_SEP_S "/"
> + #endif
> + 
> +-static char __config_dir[512] = {0, };
> ++static char *__config_dir = NULL;
> + 
> + #ifdef WIN32
> + static char *userpref_utf16_to_utf8(wchar_t *unistr, long len, long *items_read, long *items_written)
> +@@ -103,22 +107,58 @@ static char *userpref_utf16_to_utf8(wchar_t *unistr, long len, long *items_read,
> + #endif
> + 
> +-static const char *userpref_get_tmp_dir()
> ++static char *get_home_dir_from_system(void)
> + {
> +-	const char *cdir = getenv("TMPDIR");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	cdir = getenv("TMP");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	cdir = getenv("TEMP");
> +-	if (cdir && cdir[0])
> +-		return cdir;
> +-	return "/tmp";
> ++	long bufsize;
> ++	char *buf;
> ++	int error;
> ++	struct passwd pwd;
> ++	struct passwd *ppwd;
> ++	char *result = NULL;
> ++
> ++	bufsize = sysconf (_SC_GETPW_R_SIZE_MAX);
> ++
> ++	if (bufsize < 0)
> ++		bufsize = 1024;
> ++
> ++	buf = NULL;
> ++
> ++	do {
> ++		free (buf);
> ++		buf = malloc (bufsize);
> ++		if (!buf)
> ++			return NULL;
> ++
> ++		errno = 0;
> ++		error = getpwuid_r (getuid (), &pwd, buf, bufsize, &ppwd);
> ++
> ++		error = (error < 0) ? errno : error;
> ++
> ++		if (!ppwd) {
> ++			if (error == 0 || error == ENOENT)
> ++				break;
> ++			else if (bufsize > 32 * 1024)
> ++				break; /* Unreasonable size; let's bail out */
> ++
> ++			bufsize *= 2;
> ++		}
> ++	} while (!ppwd);
> ++
> ++	if (ppwd && ppwd->pw_dir)
> ++		result = strdup (ppwd->pw_dir);
> ++
> ++	free (buf);
> ++
> ++	return result;
> + }
> + 
> + static const char *userpref_get_config_dir()
> + {
> +-	if (__config_dir[0]) return __config_dir;
> ++	char *base_config_dir;
> ++	int use_dot_config;
> ++
> ++	if (__config_dir)
> ++		return __config_dir;
> ++
> + #ifdef WIN32
> + 	wchar_t path[MAX_PATH+1];
> + 	HRESULT hr;
> +@@ -131,38 +171,45 @@ static const char *userpref_get_config_dir()
> + 	if (hr == S_OK) {
> + 		b = SHGetPathFromIDListW (pidl, path);
> + 		if (b) {
> +-			char *cdir = userpref_utf16_to_utf8 (path, wcslen(path), NULL, NULL);
> +-			strcpy(__config_dir, cdir);
> +-			free(cdir);
> ++			base_config_dir = userpref_utf16_to_utf8 (path, wcslen(path), NULL, NULL);
> + 			CoTaskMemFree (pidl);
> + 		}
> + 	}
> ++
> ++	use_dot_config = 0;
> + #else
> + 	const char *cdir = getenv("XDG_CONFIG_HOME");
> + 	if (!cdir) {
> + 		cdir = getenv("HOME");
> + 		if (!cdir || !cdir[0]) {
> +-			const char *tdir = userpref_get_tmp_dir();
> +-			strcpy(__config_dir, tdir);
> +-			strcat(__config_dir, DIR_SEP_S);
> +-			strcat(__config_dir, "root");
> ++			base_config_dir = get_home_dir_from_system();
> ++			if (!base_config_dir)
> ++				return NULL;
> + 		} else {
> +-			strcpy(__config_dir, cdir);
> ++			base_config_dir = strdup(cdir);
> + 		}
> +-		strcat(__config_dir, DIR_SEP_S);
> +-		strcat(__config_dir, ".config");
> ++
> ++		use_dot_config = 1;
> + 	} else {
> +-		strcpy(__config_dir, cdir);
> ++		base_config_dir = strdup(cdir);
> ++		use_dot_config = 0;
> + 	}
> + #endif
> +-	strcat(__config_dir, DIR_SEP_S);
> +-	strcat(__config_dir, LIBIMOBILEDEVICE_CONF_DIR);
> + 
> +-	int i = strlen(__config_dir)-1;	
> +-	while ((i > 0) && (__config_dir[i] == DIR_SEP)) {
> +-		__config_dir[i--] = '\0';
> ++	if (use_dot_config)
> ++		__config_dir = string_concat(base_config_dir, DIR_SEP_S, ".config", DIR_SEP_S, LIBIMOBILEDEVICE_CONF_DIR);
> ++	else
> ++		__config_dir = string_concat(base_config_dir, DIR_SEP_S, LIBIMOBILEDEVICE_CONF_DIR);
> ++
> ++	if (__config_dir) {
> ++		int i = strlen(__config_dir)-1;	
> ++		while ((i > 0) && (__config_dir[i] == DIR_SEP)) {
> ++			__config_dir[i--] = '\0';
> ++		}
> + 	}
> + 
> ++	free(base_config_dir);
> ++
> + 	return __config_dir;
> + }
> + 
> +
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/link_against_pthread.patch libimobiledevice-1.1.5/debian/patches/link_against_pthread.patch
> --- libimobiledevice-1.1.1/debian/patches/link_against_pthread.patch	1970-01-01 01:00:00.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/link_against_pthread.patch	2013-10-12 17:53:12.000000000 +0200
> @@ -0,0 +1,37 @@
> +Description: Fix underlinking against pthread
> +Author: Jeremy Bicha <jbicha at ubuntu.com>
> +Index: libimobiledevice-1.1.5/dev/Makefile.am
> +===================================================================
> +--- libimobiledevice-1.1.5.orig/dev/Makefile.am	2013-07-31 00:44:44.733867334 -0400
> ++++ libimobiledevice-1.1.5/dev/Makefile.am	2013-07-31 00:44:44.725867335 -0400
> +@@ -18,7 +18,7 @@
> + 
> + afccheck_SOURCES = afccheck.c
> + afccheck_CFLAGS = $(AM_CFLAGS)
> +-afccheck_LDFLAGS = $(AM_LDFLAGS)
> ++afccheck_LDFLAGS = $(AM_LDFLAGS) -lpthread
> + afccheck_LDADD = ../src/libimobiledevice.la
> + 
> + filerelaytest_SOURCES = filerelaytest.c
> +Index: libimobiledevice-1.1.5/tools/Makefile.am
> +===================================================================
> +--- libimobiledevice-1.1.5.orig/tools/Makefile.am	2013-07-31 00:44:44.733867334 -0400
> ++++ libimobiledevice-1.1.5/tools/Makefile.am	2013-07-31 00:45:26.945865569 -0400
> +@@ -17,7 +17,7 @@
> + 
> + idevicesyslog_SOURCES = idevicesyslog.c
> + idevicesyslog_CFLAGS = $(AM_CFLAGS)
> +-idevicesyslog_LDFLAGS = $(AM_LDFLAGS)
> ++idevicesyslog_LDFLAGS = $(AM_LDFLAGS) -lpthread
> + idevicesyslog_LDADD = ../src/libimobiledevice.la
> + 
> + idevice_id_SOURCES = idevice_id.c
> +@@ -62,7 +62,7 @@
> + 
> + idevicedebugserverproxy_SOURCES = idevicedebugserverproxy.c socket.c thread.c
> + idevicedebugserverproxy_CFLAGS = $(AM_CFLAGS)
> +-idevicedebugserverproxy_LDFLAGS = $(AM_LDFLAGS)
> ++idevicedebugserverproxy_LDFLAGS = $(AM_LDFLAGS) -lpthread
> + idevicedebugserverproxy_LDADD = ../src/libimobiledevice.la
> + 
> + idevicediagnostics_SOURCES = idevicediagnostics.c
> diff -NurBbp libimobiledevice-1.1.1/debian/patches/series libimobiledevice-1.1.5/debian/patches/series
> --- libimobiledevice-1.1.1/debian/patches/series	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/patches/series	2013-10-12 17:53:12.000000000 +0200
> @@ -1,7 +1,7 @@
> -00git_ios5_support.patch
>  01-libs.private.patch
> -02-add-missing-linking.patch
> -03_ac_pkg_swig_m4_fixed.patch
> -04_libplist_DSO_linking.patch
>  05_remove_gcry_need.patch
> -06_git_ios5_handle_error.patch
> +09_use_python_config.patch
> +10_libgcrypt_underlinkage.patch
> +link_against_pthread.patch
> +git_explicitly_cast_ssl_enabled.patch
> +CVE-2013-2142.patch
> diff -NurBbp libimobiledevice-1.1.1/debian/python-imobiledevice.install libimobiledevice-1.1.5/debian/python-imobiledevice.install
> --- libimobiledevice-1.1.1/debian/python-imobiledevice.install	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/python-imobiledevice.install	2013-10-12 17:53:12.000000000 +0200
> @@ -1 +1 @@
> -usr/lib/python*/*-packages/imobiledevice
> +usr/lib/python*/*-packages/*.so
> diff -NurBbp libimobiledevice-1.1.1/debian/rules libimobiledevice-1.1.5/debian/rules
> --- libimobiledevice-1.1.1/debian/rules	2012-03-18 16:26:17.000000000 +0100
> +++ libimobiledevice-1.1.5/debian/rules	2013-10-12 17:53:12.000000000 +0200
> @@ -15,7 +15,8 @@ configure_flags += \
>  		--prefix=/usr \
>  		--sysconfdir=/etc --host=$(DEB_HOST_GNU_TYPE) \
>  		--build=$(DEB_BUILD_GNU_TYPE) \
> -		--enable-dev-tools
> +		--enable-dev-tools \
> +		--disable-openssl --disable-silent-rules
>  
>  %:
>  	dh --with python2 --with autoreconf $@
> @@ -27,14 +28,16 @@ override_dh_install:
>  	#Remove .la files.
>  	rm -rf $(CURDIR)/debian/tmp/usr/lib/*.la
>  	rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/*-packages/imobiledevice/*.la
> +	rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/*-packages/*.la
>  	#Remove .a files from python bindings.
>  	rm -rf $(CURDIR)/debian/tmp//usr/lib/python*/dist-packages/imobiledevice/*.a
> +	rm -rf $(CURDIR)/debian/tmp//usr/lib/python*/dist-packages/*.a
>  	#Remove installed man pages, installed by *.manpages
>  	rm -f $(CURDIR)/debian/tmp/usr/share/man/man1/*.1
>  	dh_install --fail-missing
>  
>  override_dh_strip:
> -	dh_strip --dbg-package=libimobiledevice2-dbg
> +	dh_strip --dbg-package=libimobiledevice4-dbg
>  
>  override_dh_python2:
>  	# Only build for the current version of python, not all supported.


-- 
http://wiki.debian.org/FAQsFromDebianUser
Offtopic discussions among Debian users and developers:
http://lists.alioth.debian.org/mailman/listinfo/d-community-offtopic
http://nuvreauspam.ro/gpg-transition.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gtkpod-devel/attachments/20131013/d07bd34f/attachment-0003.sig>


More information about the Pkg-gtkpod-devel mailing list