22

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

3
  • I didn't find any, but it's not hard to build and package the current version yourself: help.ubuntu.com/community/UpdatingADeb. Mar 20, 2015 at 1:24
  • Thanks I guess I will have to try it out then. I'm little bit concerend about breaking the integration with nautilus.
    – tristank
    Apr 4, 2015 at 9:32
  • Have you been successful with it? Are you able to mount the "Documents of..." folder again? I managed to build and install, but mounting and charging did not work at all. Therefore, I downgraded and wait for someone more skilled to set up a ppa. Jun 7, 2015 at 10:07

5 Answers 5

24

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
    
1
  • Are you able to mount the "Documents of..." folder again? Does is work with ios 9 / 10? Oct 19, 2016 at 22:20
9

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]
2
8

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.

9
  • 1
    While trying to build the upgraded libusbmux-d, after adding some dependencies, I ran into: dh_auto_configure -- -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_SKIP_RPATH=true -DLIB_SUFFIX= -DUSB_PKGCONF_INCLUDE_DIRS="/usr/include/libusb-1.0" configure: error: unrecognized option: `-DCMAKE_INSTALL_PREFIX=/usr' Any idea? Is there some chance that you (or others) will post the result of you efforts in a ppa? May 29, 2015 at 19:34
  • Please open a new question for your issue. You can send me a link through this comment sections to draw my attention to it. As a quick idea, consult the output of ./configure --help for a list of available options. May 29, 2015 at 21:03
  • 1
    Actually, someone else did this, because they run into the same problem... askubuntu.com/questions/616501/… May 30, 2015 at 16:18
  • 1
    I have the same problem on Ubuntu 15.04. Did you get a solution? Jun 17, 2015 at 8:39
  • 1
    To install libusbmuxd-dev (>= 1.0.9) you can download the *.deb here and install it with sudo dpkg -i
    – Michele
    Jul 1, 2015 at 16:31
3

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

3
  • What components are missing? Those that enable viewing apps' shared documents?
    – NoBugs
    Oct 24, 2015 at 0:26
  • @NoBugs yes, ifuse misses
    – yanpas
    Oct 24, 2015 at 9:24
  • Does not work on 15.10. Feb 13, 2016 at 23:01
1

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.