libimobiledevice 1.2 (iOS 8 Support) for Ubuntu 14.04 Trusty

Is there a PPA available for the most recent libimobiledevice 1.2 version with support for iOS 8 or can someone explain how to build it from source without messing up everything?

https://launchpad.net/ubuntu/+source/libimobiledevice


Using the GitHub repository.

Bear in mind, each step works only if the previous step was successful.

  1. Clone the repository

    mkdir -p ~/src
    cd ~/src
    git clone https://github.com/libimobiledevice/libimobiledevice.git
    cd libimobiledevice
    
  2. Install the necessary development libraries

    You may need more libraries or header packages as listed below. You will see this if you have error messages during the configuration step later. Add a comment if you have problems.

    sudo apt-get install libusbmuxd-dev libplist-dev  libplist++-dev libgnutls-dev libssl-dev python-dev
    
  3. Install some additional software

    The following software is needed to prepare the software for compilation and then compile it.

    sudo apt-get install usbmuxd make automake autoconf libtool pkg-config gcc
    
  4. Install optional software

    The following software is used to make parts of the finished package a run faster and create documentation.

    sudo apt-get install cython doxygen
    
  5. Install an installation helper

    Checkinstall creates a debian package so the software is managed by the package manager.

    sudo apt-get install checkinstall
    
  6. Configure and build

    ./autogen.sh
    make
    
  7. Install

    With the command below, a deb package with the name libimobiledevice will be created and installed.

    sudo checkinstall
    

    You will see this warning:

    checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
               This software is released under the GNU GPL.
    
    
    
    *****************************************
    **** Debian package creation selected ***
    *****************************************
    
    *** Warning: The package version "1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1
    1.2.1" is not a
    *** Warning: debian policy compliant one. Please specify an alternate one
    
    
    This package will be built according to these values: 
    
    0 -  Maintainer: [ root@aboettger-VirtualBox ]
    1 -  Summary: [ Package created with checkinstall 1.6.2 ]
    2 -  Name:    [ libimobiledevice ]
    3 -  Version: [  ]
    4 -  Release: [ 1 ]
    5 -  License: [ GPL ]
    6 -  Group:   [ checkinstall ]
    7 -  Architecture: [ i386 ]
    8 -  Source location: [ libimobiledevice ]
    9 -  Alternate source location: [  ]
    10 - Requires: [  ]
    11 - Provides: [ libimobiledevice ]
    12 - Conflicts: [  ]
    13 - Replaces: [  ]
    

    Simply press 3 and type 1.2.1 and Enter

    Enter a number to change any of them or press ENTER to continue: 3
    Enter new version: 
    >> 1.2.1
    
  8. Check the installed files

    dpkg -L libimobiledevice
    

    and you will see something like this

    /.
    /usr
    /usr/share
    /usr/share/doc
    /usr/share/doc/libimobiledevice
    /usr/share/doc/libimobiledevice/COPYING.LESSER
    /usr/share/doc/libimobiledevice/AUTHORS
    /usr/share/doc/libimobiledevice/NEWS
    /usr/share/doc/libimobiledevice/README
    /usr/share/doc/libimobiledevice/docs
    /usr/share/doc/libimobiledevice/docs/idevice_id.1
    /usr/share/doc/libimobiledevice/docs/idevicenotificationproxy.1
    /usr/share/doc/libimobiledevice/docs/idevicepair.1
    /usr/share/doc/libimobiledevice/docs/ideviceprovision.1
    /usr/share/doc/libimobiledevice/docs/ideviceimagemounter.1
    /usr/share/doc/libimobiledevice/docs/Makefile
    /usr/share/doc/libimobiledevice/docs/idevicedebug.1
    /usr/share/doc/libimobiledevice/docs/idevicename.1
    /usr/share/doc/libimobiledevice/docs/idevicebackup.1
    /usr/share/doc/libimobiledevice/docs/idevicedebugserverproxy.1
    /usr/share/doc/libimobiledevice/docs/ideviceenterrecovery.1
    /usr/share/doc/libimobiledevice/docs/idevicecrashreport.1
    /usr/share/doc/libimobiledevice/docs/ideviceinfo.1
    /usr/share/doc/libimobiledevice/docs/Makefile.in
    /usr/share/doc/libimobiledevice/docs/Makefile.am
    /usr/share/doc/libimobiledevice/docs/idevicescreenshot.1
    /usr/share/doc/libimobiledevice/docs/idevicedate.1
    /usr/share/doc/libimobiledevice/docs/idevicesyslog.1
    /usr/share/doc/libimobiledevice/docs/idevicediagnostics.1
    /usr/share/doc/libimobiledevice/docs/idevicebackup2.1
    /usr/share/doc/libimobiledevice/COPYING
    /usr/local
    /usr/local/bin
    /usr/local/bin/idevicepair
    /usr/local/bin/idevicename
    /usr/local/bin/ideviceinfo
    /usr/local/bin/idevicebackup2
    /usr/local/bin/ideviceprovision
    /usr/local/bin/idevicecrashreport
    /usr/local/bin/ideviceimagemounter
    /usr/local/bin/idevice_id
    /usr/local/bin/idevicenotificationproxy
    /usr/local/bin/ideviceenterrecovery
    /usr/local/bin/idevicescreenshot
    /usr/local/bin/idevicediagnostics
    /usr/local/bin/idevicedebug
    /usr/local/bin/idevicebackup
    /usr/local/bin/idevicedebugserverproxy
    /usr/local/bin/idevicesyslog
    /usr/local/bin/idevicedate
    /usr/local/lib
    /usr/local/lib/libimobiledevice.la
    /usr/local/lib/pkgconfig
    /usr/local/lib/pkgconfig/libimobiledevice-1.0.pc
    /usr/local/lib/libimobiledevice.so.6.0.0
    /usr/local/lib/libimobiledevice.a
    /usr/local/share
    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man1/idevicebackup2.1.gz
    /usr/local/share/man/man1/ideviceprovision.1.gz
    /usr/local/share/man/man1/idevicebackup.1.gz
    /usr/local/share/man/man1/idevicecrashreport.1.gz
    /usr/local/share/man/man1/idevice_id.1.gz
    /usr/local/share/man/man1/ideviceenterrecovery.1.gz
    /usr/local/share/man/man1/ideviceimagemounter.1.gz
    /usr/local/share/man/man1/idevicename.1.gz
    /usr/local/share/man/man1/idevicescreenshot.1.gz
    /usr/local/share/man/man1/idevicedebug.1.gz
    /usr/local/share/man/man1/idevicenotificationproxy.1.gz
    /usr/local/share/man/man1/idevicedebugserverproxy.1.gz
    /usr/local/share/man/man1/idevicedate.1.gz
    /usr/local/share/man/man1/ideviceinfo.1.gz
    /usr/local/share/man/man1/idevicesyslog.1.gz
    /usr/local/share/man/man1/idevicediagnostics.1.gz
    /usr/local/share/man/man1/idevicepair.1.gz
    /usr/local/include
    /usr/local/include/libimobiledevice
    /usr/local/include/libimobiledevice/syslog_relay.h
    /usr/local/include/libimobiledevice/lockdown.h
    /usr/local/include/libimobiledevice/diagnostics_relay.h
    /usr/local/include/libimobiledevice/screenshotr.h
    /usr/local/include/libimobiledevice/property_list_service.h
    /usr/local/include/libimobiledevice/installation_proxy.h
    /usr/local/include/libimobiledevice/restore.h
    /usr/local/include/libimobiledevice/file_relay.h
    /usr/local/include/libimobiledevice/mobile_image_mounter.h
    /usr/local/include/libimobiledevice/mobilebackup2.h
    /usr/local/include/libimobiledevice/afc.h
    /usr/local/include/libimobiledevice/service.h
    /usr/local/include/libimobiledevice/webinspector.h
    /usr/local/include/libimobiledevice/heartbeat.h
    /usr/local/include/libimobiledevice/libimobiledevice.h
    /usr/local/include/libimobiledevice/mobilesync.h
    /usr/local/include/libimobiledevice/misagent.h
    /usr/local/include/libimobiledevice/debugserver.h
    /usr/local/include/libimobiledevice/mobilebackup.h
    /usr/local/include/libimobiledevice/house_arrest.h
    /usr/local/include/libimobiledevice/sbservices.h
    /usr/local/include/libimobiledevice/notification_proxy.h
    /usr/local/lib/libimobiledevice.so
    /usr/local/lib/libimobiledevice.so.6
    

OK, this is what worked for me.

The order is:

libplist -> libusbmuxd -> libimobiledevice -> usbmuxd, ifuse, ideviceinstaller, ...

Source: https://github.com/libimobiledevice/usbmuxd/issues/10

mkdir -p ~/src
cd ~/src

sudo apt-get -y install libusbmuxd-dev libplist-dev libplist++-dev libgnutls-dev libssl-dev usbmuxd make automake autoconf libtool pkg-config gcc cython doxygen checkinstall libusb-1.0-0-dev libssl-dev

git clone https://github.com/libimobiledevice/libplist.git
cd libplist/
./autogen.sh 
make
sudo make install

cd ..
git clone https://github.com/libimobiledevice/libusbmuxd.git
cd libusbmuxd/
./autogen.sh 
make
sudo make install

cd ..
git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice/
./autogen.sh 
make
sudo checkinstall 

In checkinstall prompt:

> y[ENTER]
> [ENTER]
> 3[ENTER]
> 1.2.1[ENTER]
> [ENTER]

This is what I did to build libimobiledevice-1.2.0:

  1. Install build tools and dependencies

    sudo apt-get install build-essential fakeroot devscripts pbuilder
    sudo apt-get build-dep libimobiledevice
    
  2. Download the source and Debian build scripts of the currently packaged version (1.1.5 on Ubuntu 14.04):

    apt-get source libimobiledevice
    cd libimobiledevice-1.1.5
    
  3. Scan for and download new upstream version:

    uscan --verbose
    
  4. Unpack it, put the Debian build scripts in place and update the change log:

    uupdate ../libimobiledevice_1.2.0.orig.tar.bz2
    cd ../libimobiledevice-1.2.0
    
  5. Build the binary package (in parallel with as many workers as available CPU cores):

    debuild -b -j$(getconf _NPROCESSORS_ONLN)
    

    (-j instructs the build system to run individual build tasks in parallel, if possible. Since this sometimes leads to problems, it may be worthwhile to try to re-run the build without that flag or to drop it in the first place.)

  6. Install the built package:

    sudo dpkg -i ../libimobiledevice_1.2.0*.deb
    

Actually I cheated a bit. I couldn't satisfy the build dependencies, because a library isn't available in sufficiently recent versions in Ubuntu 14.04: libimobiledevice-1.2.0 requires libusbmuxd-dev (>= 1.0.9), so you'll have to build it from source first with the same recipe.


I use this PPA, it has latest libimobiledevice, but not all components are represented there: https://launchpad.net/~martin-salbaba/+archive/ubuntu/ppa+libimobiledevice


16.04 will have 1.2. I was able to download the debs from launchpad (https://launchpad.net/ubuntu/xenial/+source/libimobiledevice) and install them on 15.10. I needed libusbmuxd4, libimobiledevice6, and libimobiledevice-dev. Then I installed ifuse 1.1.3 by following these directions: https://askubuntu.com/a/691758