III. Synchronisation de l’iPhone/iPod Touch sous linux

Avant de continuer dans la manipulation afin de pouvoir synchroniser mon iTouch, je vais revenir dans un premier temps sur la partie 5 du précédent billet, au moment ou j’ai décidé de compiler libgpod malgré l’information indiquant que l’iTouch n’est pas supporté.


8. Synchronisation non supporté
: libiphone-dev non installé

Après avoir lancé la commande ‘make’, tout à l’air de s’être bien déroulé, comme indiqué ci dessous.

~/libgpod$ make

make all-recursive
make[1]: Entering directory `/home/malagasy/libgpod’
Making all in src
make[2]: Entering directory `/home/malagasy/libgpod/src’
CC libgpod_la-db-artwork-debug.lo
CC libgpod_la-db-artwork-parser.lo
CC libgpod_la-db-artwork-writer.lo
CC libgpod_la-db-image-parser.lo
CC libgpod_la-db-parse-context.lo
CC libgpod_la-itdb_artwork.lo
CC libgpod_la-itdb_chapterdata.lo
CC libgpod_la-itdb_device.lo
CC libgpod_la-itdb_hash58.lo
CC libgpod_la-itdb_hash72.lo
CC libgpod_la-itdb_iphone.lo
CC libgpod_la-itdb_itunesdb.lo
CC libgpod_la-itdb_photoalbum.lo
CC libgpod_la-itdb_playlist.lo
CC libgpod_la-itdb_plist.lo
CC libgpod_la-itdb_sqlite.lo
CC libgpod_la-itdb_sysinfo_extended_parser.lo
CC libgpod_la-itdb_thumb.lo
CC libgpod_la-itdb_track.lo
CC libgpod_la-itdb_tzinfo.lo
CC libgpod_la-itdb_zlib.lo
CC libgpod_la-ithumb-writer.lo
CC libgpod_la-pixmaps.lo
CC libgpod_la-rijndael.lo
CCLD libgpod.la
make[2]: Leaving directory `/home/malagasy/libgpod/src’
Making all in tools
make[2]: Entering directory `/home/malagasy/libgpod/tools’
CC ipod_read_sysinfo_extended-read-sysinfoextended.o
CC ipod_read_sysinfo_extended-ipod-lockdown.o
CCLD ipod-read-sysinfo-extended
/usr/bin/ld: warning: libplist.so.0, needed by /usr/lib/libiphone.so, may conflict with libplist.so.1
make[2]: Leaving directory `/home/malagasy/libgpod/tools’
Making all in tests
make[2]: Entering directory `/home/malagasy/libgpod/tests’
CC itdb_main.o
CCLD test-itdb
CC test-ls.o
CCLD test-ls
CC test-fw-id.o
CCLD test-firewire-id
CC test-sysinfo-extended-parsing.o
CC itdb_plist.o
CC itdb_sysinfo_extended_parser.o
CCLD test-sysinfo-extended-parsing
CC test_thumbnails-test-covers.o
CCLD test-thumbnails
CC test_write_thumbnails-test-write-covers.o
CCLD test-write-thumbnails
CC test_photos-test-photos.o
CCLD test-photos
CC get-timezone.o
CCLD get-timezone
CC test-init-ipod.o
CCLD test-init-ipod
make[2]: Leaving directory `/home/malagasy/libgpod/tests’
Making all in po
make[2]: Entering directory `/home/malagasy/libgpod/po’
file=`echo de | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file de.po
file=`echo es | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file es.po
file=`echo fr | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file fr.po
file=`echo he | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file he.po
file=`echo it | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file it.po
file=`echo ja | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file ja.po
file=`echo ro | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file ro.po
file=`echo sv | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file sv.po
file=`echo zh_CN | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && /usr/bin/msgfmt -o $file zh_CN.po
make[2]: Leaving directory `/home/malagasy/libgpod/po’
Making all in m4
make[2]: Entering directory `/home/malagasy/libgpod/m4′
make[2]: Nothing to be done for `all’.
make[2]: Leaving directory `/home/malagasy/libgpod/m4′
Making all in docs
make[2]: Entering directory `/home/malagasy/libgpod/docs’
Making all in reference
make[3]: Entering directory `/home/malagasy/libgpod/docs/reference’
make[3]: Nothing to be done for `all’.
make[3]: Leaving directory `/home/malagasy/libgpod/docs/reference’
make[3]: Entering directory `/home/malagasy/libgpod/docs’
make[3]: Nothing to be done for `all-am’.
make[3]: Leaving directory `/home/malagasy/libgpod/docs’
make[2]: Leaving directory `/home/malagasy/libgpod/docs’
Making all in bindings
make[2]: Entering directory `/home/malagasy/libgpod/bindings’
Making all in python
make[3]: Entering directory `/home/malagasy/libgpod/bindings/python’
cat gpod_doc.i.in > gpod_doc.i
if test -x « `which xsltproc 2>/dev/null` »; then \
for xml in ../../docs/reference/xml/*.xml; do \
xsltproc ./gtkdoc-to-swig.xsl $xml; \
done >> gpod_doc.i; \
fi
warning: failed to load external entity « ../../docs/reference/xml/*.xml »
unable to parse ../../docs/reference/xml/*.xml
make[3]: [gpod_doc.i] Error 6 (ignored)
/usr/bin/swig -python -o gpod.py gpod.i
../../src/itdb.h:280: Warning(451): Setting a const char * variable may leak memory.
/usr/bin/swig -python -I../../src -o gpod_wrap.c gpod.i
../../src/itdb.h:280: Warning(451): Setting a const char * variable may leak memory.
make all-recursive
make[4]: Entering directory `/home/malagasy/libgpod/bindings/python’
Making all in examples
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python/examples’
make[5]: Nothing to be done for `all’.
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python/examples’
Making all in tests
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python/tests’
make[5]: Nothing to be done for `all’.
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python/tests’
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python’
CC _gpod_la-gpod_wrap.lo
CCLD _gpod.la
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[4]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[3]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[3]: Entering directory `/home/malagasy/libgpod/bindings’
make[3]: Nothing to be done for `all-am’.
make[3]: Leaving directory `/home/malagasy/libgpod/bindings’
make[2]: Leaving directory `/home/malagasy/libgpod/bindings’
make[2]: Entering directory `/home/malagasy/libgpod’
make[2]: Nothing to be done for `all-am’.
make[2]: Leaving directory `/home/malagasy/libgpod’
make[1]: Leaving directory `/home/malagasy/libgpod’

~/libgpod$

Avant de créer et d’installer le nouveau paquet ainsi préparé, il faut désinstaller la librairie libgpod originale

malagasy@malagasy-laptop:~/libgpod$ sudo apt-get remove libgpod-common

9. Création et installation d’un paquet DEB : libiphone-dev non installé

Lancer la commande checkinstall pour ce faire.

~/libgpod$ sudo checkinstall

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: #Taper sur la touche ENTRÉE directement

Preparing package documentation…OK

Please write a description for the package.
End your description with an empty line or EOF.
>> Libgpod4 SVN
>>

*****************************************
**** Debian package creation selected ***
*****************************************

*** Warning: The package version « 0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT
0.7.3GIT » 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@malagasy-laptop ]
1 – Summary: [ Libgpod4 SVN ]
2 – Name: [ libgpod ]
3 – Version: [ ]
4 – Release: [ 1 ]
5 – License: [ GPL ]
6 – Group: [ checkinstall ]
7 – Architecture: [ i386 ]
8 – Source location: [ libgpod ]
9 – Alternate source location: [ ]
10 – Requires: [ ]
11 – Provides: [ libgpod ]

Enter a number to change any of them or press ENTER to continue:

(…)

This package will be built according to these values:

0 – Maintainer: [ malagasy ]
1 – Summary: [ Libgpod4 SVN ]
2 – Name: [ libgpod4 ]
3 – Version: [ 0.7.3 ]
4 – Release: [ 1 ]
5 – License: [ GPL ]
6 – Group: [ checkinstall ]
7 – Architecture: [ i386 ]
8 – Source location: [ libgpod ]
9 – Alternate source location: [ ]
10 – Requires: [ ]
11 – Provides: [ libgpod4 ]

Enter a number to change any of them or press ENTER to continue:

Installing with make…Installing with install…

========================= Installation results ===========================
Making install in src
make[1]: Entering directory `/home/malagasy/libgpod/src’
make[2]: Entering directory `/home/malagasy/libgpod/src’
test -z « /usr/lib » || /bin/mkdir -p « /usr/lib »
/bin/bash ../libtool –mode=install /usr/bin/install -c libgpod.la ‘/usr/lib’
libtool: install: /usr/bin/install -c .libs/libgpod.so.4.2.0 /usr/lib/libgpod.so.4.2.0
libtool: install: (cd /usr/lib & })
libtool: install: (cd /usr/lib & })
libtool: install: /usr/bin/install -c .libs/libgpod.lai /usr/lib/libgpod.la
libtool: install: /usr/bin/install -c .libs/libgpod.a /usr/lib/libgpod.a
libtool: install: chmod 644 /usr/lib/libgpod.a
libtool: install: ranlib /usr/lib/libgpod.a
libtool: finish: PATH= »/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/sbin » ldconfig -n /usr/lib
———————————————————————-
Libraries have been installed in:
/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
test -z « /usr/include/gpod-1.0/gpod » || /bin/mkdir -p « /usr/include/gpod-1.0/gpod »
/usr/bin/install -c -m 644 itdb.h ‘/usr/include/gpod-1.0/gpod’
make[2]: Leaving directory `/home/malagasy/libgpod/src’
make[1]: Leaving directory `/home/malagasy/libgpod/src’
Making install in tools
make[1]: Entering directory `/home/malagasy/libgpod/tools’
make[2]: Entering directory `/home/malagasy/libgpod/tools’
test -z « /usr/bin » || /bin/mkdir -p « /usr/bin »
/bin/bash ../libtool –mode=install /usr/bin/install -c ipod-read-sysinfo-extended ‘/usr/bin’
libtool: install: /usr/bin/install -c .libs/ipod-read-sysinfo-extended /usr/bin/ipod-read-sysinfo-extended
test -z «  » || /bin/mkdir -p «  »
test -z «  » || /bin/mkdir -p «  »
make[2]: Leaving directory `/home/malagasy/libgpod/tools’
make[1]: Leaving directory `/home/malagasy/libgpod/tools’
Making install in tests
make[1]: Entering directory `/home/malagasy/libgpod/tests’
make[2]: Entering directory `/home/malagasy/libgpod/tests’
make[2]: Nothing to be done for `install-exec-am’.
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/malagasy/libgpod/tests’
make[1]: Leaving directory `/home/malagasy/libgpod/tests’
Making install in po
make[1]: Entering directory `/home/malagasy/libgpod/po’
linguas= »de es fr he it ja ro sv zh_CN « ; \
for lang in $linguas; do \
dir=/usr/share/locale/$lang/LC_MESSAGES; \
/bin/bash /home/malagasy/libgpod/install-sh -d $dir; \
if test -r $lang.gmo; then \
/usr/bin/install -c -m 644 $lang.gmo $dir/libgpod.mo; \
echo « installing $lang.gmo as $dir/libgpod.mo »; \
else \
/usr/bin/install -c -m 644 ./$lang.gmo $dir/libgpod.mo; \
echo « installing ./$lang.gmo as » \
« $dir/libgpod.mo »; \
fi; \
if test -r $lang.gmo.m; then \
/usr/bin/install -c -m 644 $lang.gmo.m $dir/libgpod.mo.m; \
echo « installing $lang.gmo.m as $dir/libgpod.mo.m »; \
else \
if test -r ./$lang.gmo.m ; then \
/usr/bin/install -c -m 644 ./$lang.gmo.m \
$dir/libgpod.mo.m; \
echo « installing ./$lang.gmo.m as » \
« $dir/libgpod.mo.m »; \
else \
true; \
fi; \
fi; \
done
installing de.gmo as /usr/share/locale/de/LC_MESSAGES/libgpod.mo
installing es.gmo as /usr/share/locale/es/LC_MESSAGES/libgpod.mo
installing fr.gmo as /usr/share/locale/fr/LC_MESSAGES/libgpod.mo
installing he.gmo as /usr/share/locale/he/LC_MESSAGES/libgpod.mo
installing it.gmo as /usr/share/locale/it/LC_MESSAGES/libgpod.mo
installing ja.gmo as /usr/share/locale/ja/LC_MESSAGES/libgpod.mo
installing ro.gmo as /usr/share/locale/ro/LC_MESSAGES/libgpod.mo
installing sv.gmo as /usr/share/locale/sv/LC_MESSAGES/libgpod.mo
installing zh_CN.gmo as /usr/share/locale/zh_CN/LC_MESSAGES/libgpod.mo
make[1]: Leaving directory `/home/malagasy/libgpod/po’
Making install in m4
make[1]: Entering directory `/home/malagasy/libgpod/m4′
make[2]: Entering directory `/home/malagasy/libgpod/m4′
make[2]: Nothing to be done for `install-exec-am’.
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/malagasy/libgpod/m4′
make[1]: Leaving directory `/home/malagasy/libgpod/m4′
Making install in docs
make[1]: Entering directory `/home/malagasy/libgpod/docs’
Making install in reference
make[2]: Entering directory `/home/malagasy/libgpod/docs/reference’
make[3]: Entering directory `/home/malagasy/libgpod/docs/reference’
make[3]: Nothing to be done for `install-exec-am’.
installfiles=`echo ./html/*`; \
if test « $installfiles » = ‘./html/*’; \
then echo ‘– Nothing to install’ ; \
else \
if test -n «  »; then \
installdir= »/usr/share/gtk-doc/html/libgpod-« ; \
else \
installdir= »/usr/share/gtk-doc/html/libgpod »; \
fi; \
/bin/bash ../../mkinstalldirs ${installdir} ; \
for i in $installfiles; do \
echo ‘– Installing ‘$i ; \
/usr/bin/install -c -m 644 $i ${installdir}; \
done; \
if test -n «  »; then \
mv -f ${installdir}/libgpod.devhelp2 \
${installdir}/libgpod-.devhelp2; \
mv -f ${installdir}/libgpod.devhelp \
${installdir}/libgpod-.devhelp; \
fi; \
! which gtkdoc-rebase >/dev/null 2>&1 || \
gtkdoc-rebase –relative –dest-dir= –html-dir=${installdir} ; \
fi
— Nothing to install
make[3]: Leaving directory `/home/malagasy/libgpod/docs/reference’
make[2]: Leaving directory `/home/malagasy/libgpod/docs/reference’
make[2]: Entering directory `/home/malagasy/libgpod/docs’
make[3]: Entering directory `/home/malagasy/libgpod/docs’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/malagasy/libgpod/docs’
make[2]: Leaving directory `/home/malagasy/libgpod/docs’
make[1]: Leaving directory `/home/malagasy/libgpod/docs’
Making install in bindings
make[1]: Entering directory `/home/malagasy/libgpod/bindings’
Making install in python
make[2]: Entering directory `/home/malagasy/libgpod/bindings/python’
make install-recursive
make[3]: Entering directory `/home/malagasy/libgpod/bindings/python’
Making install in examples
make[4]: Entering directory `/home/malagasy/libgpod/bindings/python/examples’
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python/examples’
make[5]: Nothing to be done for `install-exec-am’.
make[5]: Nothing to be done for `install-data-am’.
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python/examples’
make[4]: Leaving directory `/home/malagasy/libgpod/bindings/python/examples’
Making install in tests
make[4]: Entering directory `/home/malagasy/libgpod/bindings/python/tests’
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python/tests’
make[5]: Nothing to be done for `install-exec-am’.
make[5]: Nothing to be done for `install-data-am’.
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python/tests’
make[4]: Leaving directory `/home/malagasy/libgpod/bindings/python/tests’
make[4]: Entering directory `/home/malagasy/libgpod/bindings/python’
make[5]: Entering directory `/home/malagasy/libgpod/bindings/python’
make[5]: Nothing to be done for `install-exec-am’.
test -z « /usr/lib/python2.6/dist-packages/gpod » || /bin/mkdir -p « /usr/lib/python2.6/dist-packages/gpod »
/bin/bash ../../libtool –mode=install /usr/bin/install -c _gpod.la ‘/usr/lib/python2.6/dist-packages/gpod’
libtool: install: warning: relinking `_gpod.la’
libtool: install: (cd /home/malagasy/libgpod/bindings/python; /bin/bash /home/malagasy/libgpod/libtool –silent –tag CC –mode=relink gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Werror -std=c89 -g -O0 -Wno-strict-aliasing -Wno-sign-compare -Wdeclaration-after-statement -module -avoid-version -o _gpod.la -rpath /usr/lib/python2.6/dist-packages/gpod _gpod_la-gpod_wrap.lo -lgobject-2.0 -lglib-2.0 -lsqlite3 -lxml2 -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lgobject-2.0 -lglib-2.0 ../../src/libgpod.la )
libtool: install: /usr/bin/install -c .libs/_gpod.soT /usr/lib/python2.6/dist-packages/gpod/_gpod.so
libtool: install: /usr/bin/install -c .libs/_gpod.lai /usr/lib/python2.6/dist-packages/gpod/_gpod.la
libtool: install: /usr/bin/install -c .libs/_gpod.a /usr/lib/python2.6/dist-packages/gpod/_gpod.a
libtool: install: chmod 644 /usr/lib/python2.6/dist-packages/gpod/_gpod.a
libtool: install: ranlib /usr/lib/python2.6/dist-packages/gpod/_gpod.a
libtool: finish: PATH= »/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/sbin » ldconfig -n /usr/lib/python2.6/dist-packages/gpod
———————————————————————-
Libraries have been installed in:
/usr/lib/python2.6/dist-packages/gpod

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
test -z « /usr/lib/python2.6/dist-packages/gpod » || /bin/mkdir -p « /usr/lib/python2.6/dist-packages/gpod »
/usr/bin/install -c -m 644 __init__.py gtkpod.py ipod.py ‘/usr/lib/python2.6/dist-packages/gpod’
Byte-compiling python modules…
__init__.pygtkpod.pyipod.py
Byte-compiling python modules (optimized versions) …
__init__.pygtkpod.pyipod.py
test -z « /usr/lib/python2.6/dist-packages/gpod » || /bin/mkdir -p « /usr/lib/python2.6/dist-packages/gpod »
/usr/bin/install -c -m 644 gpod.py ‘/usr/lib/python2.6/dist-packages/gpod’
Byte-compiling python modules…
gpod.py
Byte-compiling python modules (optimized versions) …
gpod.py
make[5]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[4]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[3]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[2]: Leaving directory `/home/malagasy/libgpod/bindings/python’
make[2]: Entering directory `/home/malagasy/libgpod/bindings’
make[3]: Entering directory `/home/malagasy/libgpod/bindings’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/malagasy/libgpod/bindings’
make[2]: Leaving directory `/home/malagasy/libgpod/bindings’
make[1]: Leaving directory `/home/malagasy/libgpod/bindings’
make[1]: Entering directory `/home/malagasy/libgpod’
make[2]: Entering directory `/home/malagasy/libgpod’
make[2]: Nothing to be done for `install-exec-am’.
test -z « /usr/lib/pkgconfig » || /bin/mkdir -p « /usr/lib/pkgconfig »
/usr/bin/install -c -m 644 libgpod-1.0.pc ‘/usr/lib/pkgconfig’
make[2]: Leaving directory `/home/malagasy/libgpod’
make[1]: Leaving directory `/home/malagasy/libgpod’

======================== Installation successful ==========================

Copying documentation directory…
./
./ChangeLog
./docs/
./docs/Makefile
./docs/Makefile.am
./docs/reference/
./docs/reference/libgpod-sections.txt
./docs/reference/version.xml.in
./docs/reference/tmpl/
./docs/reference/tmpl/chapterdata.sgml
./docs/reference/tmpl/smart-playlists.sgml
./docs/reference/tmpl/itunesdb-time.sgml
./docs/reference/tmpl/artwork.sgml
./docs/reference/tmpl/Internal.sgml
./docs/reference/tmpl/track.sgml
./docs/reference/tmpl/device.sgml
./docs/reference/tmpl/itunesdb-db.sgml
./docs/reference/tmpl/itunesdb-lowlevel.sgml
./docs/reference/tmpl/playlists.sgml
./docs/reference/tmpl/itunesdb-copying.sgml
./docs/reference/tmpl/photodb.sgml
./docs/reference/tmpl/libgpod-unused.sgml
./docs/reference/version.xml
./docs/reference/Makefile
./docs/reference/Makefile.am
./docs/reference/libgpod-overrides.txt
./docs/reference/Makefile.in
./docs/reference/libgpod-docs.xml
./docs/Makefile.in
./COPYING
./README
./README.SysInfo
./INSTALL_GIT
./AUTHORS
./NEWS
./INSTALL
grep: /var/tmp/tmp.LQOxRqh7KE/newfile: No such file or directory

Some of the files created by the installation are inside the build
directory: /home/malagasy/libgpod

You probably don’t want them to be included in the package,
especially if they are inside your home directory.
Do you want me to list them? [n]: n
Should I exclude them from the package? (Saying yes is a good idea) [y]: y

Copying files to the temporary directory…OK

Stripping ELF binaries and libraries…OK

Compressing man pages…OK

Building file list…OK

Building Debian package…OK

Installing Debian package…OK

Erasing temporary files…OK

Writing backup package…OK

Deleting temp dir…OK

**********************************************************************

Done. The new package has been installed and saved to

/home/malagasy/libgpod/libgpod4_0.7.3-1_i386.deb

You can remove it from your system anytime using:

dpkg -r libgpod4

**********************************************************************

Nous allons maintenant monter l’iTouch

~/marcan-sandbox$ ifuse /mnt/ipod/

Puis de créer un dossier /mnt/ipod/iTunes_Control/Device

~/marcan-sandbox$ cd /mnt/ipod/iTunes_Control/

/mnt/ipod/iTunes_Control$ mkdir Device

Nous avons besoin du numéro de Série de l’iTouch :

/mnt/ipod/iTunes_Control$ lsusb -v | grep -i iSerial

can’t get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
can’t get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
can’t get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
can’t get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
iSerial 1
iSerial 1
iSerial 1
iSerial 1
iSerial 3 numéro_de_série
can’t get device qualifier: Operation not permitted
can’t get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
can’t get hub descriptor: Operation not permitted
can’t get device qualifier: Operation not permitted
can’t get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
iSerial 0
iSerial 1

Génerez un fichier iTunes_Control/Device/SysInfoExtended, à partir de la commande ipod-read-sysinfo-extended numéro_de_série point_de_montage , qui est un fichier de type XML.

/mnt/ipod/iTunes_Control$ ipod-read-sysinfo-extended numéro_de_série /mnt/ipod

**(process:12170): WARNING **: Compiled without libiphone support, can’t read SysInfoExtended from an iPhone UUID
Couldn’t read xml sysinfo from numéro_de_série
/mnt/ipod/iTunes_Control/Device$

——————————–

If you have installed packages for libiphone, you will need to install the libiphone-dev (or equivalent) package to get the headers. Then reconfigure the gtkpod sources and ensure that it says “iPhone/iPod Touch support: yes” or something in the summary after configuration is done.

——————————–

Et voilà l’alerte qui vous indique que vous devez absolument installer le paquet libiphone-dev, ou équivalent, afin de pouvoir synchroniser avec l’iTouch. Une fois ce problème résolu, passons à l’étape suivante.

10. Compilation après avoir installé tous les paquets nécessaires

La suite de la manipulation du billet « II. Compilation de libgpod4 » commence à partir d’ici. Je m’étais arrêté au moment où il fallait lancer la commande ‘make’.

~/marcan-sandbox$ make

make all-recursive
make[1]: Entering directory `/home/malagasy/marcan-sandbox’
Making all in src
make[2]: Entering directory `/home/malagasy/marcan-sandbox/src’
make[2]: Nothing to be done for `all’.
make[2]: Leaving directory `/home/malagasy/marcan-sandbox/src’
Making all in tools
make[2]: Entering directory `/home/malagasy/marcan-sandbox/tools’
CC ipod_read_sysinfo_extended-ipod-lockdown.o
cc1: warnings being treated as errors
ipod-lockdown.c: In function ‘read_sysinfo_extended_by_uuid’:
ipod-lockdown.c:70: error: implicit declaration of function ‘plist_get_dict_el_from_key’
ipod-lockdown.c:70: error: nested extern declaration of ‘plist_get_dict_el_from_key’
ipod-lockdown.c:70: error: assignment makes pointer from integer without a cast
ipod-lockdown.c:73: error: implicit declaration of function ‘plist_add_sub_key_el’
ipod-lockdown.c:73: error: nested extern declaration of ‘plist_add_sub_key_el’
ipod-lockdown.c:74: error: implicit declaration of function ‘plist_add_sub_string_el’
ipod-lockdown.c:74: error: nested extern declaration of ‘plist_add_sub_string_el’
ipod-lockdown.c:78: error: assignment makes pointer from integer without a cast
make[2]: *** [ipod_read_sysinfo_extended-ipod-lockdown.o] Error 1
make[2]: Leaving directory `/home/malagasy/marcan-sandbox/tools’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/malagasy/marcan-sandbox’
make: *** [all] Error 2

Et oui, comme vous pouvez le constater, les problèmes continuent. Pour y remédier, il faut utiliser le GIT officiel de libgpod.

git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/libgpod
cd libgpod
git checkout

Puis de contiuer la compilation normalement.

~$ git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/libgpod

~$ cd libgpod/
~/libgpod$ git checkout

~/libgpod$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr

~/libgpod$ make

~/libgpod$ sudo apt-get remove libgpod-common

~/libgpod$ sudo checkinstall

Et voilà, la compilation et l’installation du paquet est terminée.

11. Synchronisation de l’iTouch avec GTKpod

La suite de la manipulation, je l’ai déjà donné en détail lors de mon précédent test, et donc je ne vais plus détailler (cf. chap 9 de ce billet).

Nous allons monter l’iTouch en tapant la commande ifuse /mnt/ipod/ puis de créer un dossier Device dans /mnt/ipod/iTunes_Control/ avec la commande mkdir /mnt/ipod/iTunes_Control/Device/

Ensuite de récupérer l’UUID (identifiant unique universel) de votre iTouch via la commande lsusb -v | grep -i iSerial. L’UUID de votre appareil est le numéro de série de votre iTouch contenant 40 caractères. Ensuite taper la commande suivante :

~$ ipod-read-sysinfo-extended numéro_de_série /mnt/ipod

Cette commande doit avoir généré un fichier SysInfoExtended dans le dossier /mnt/ipod/iTunes_Control/Device/. Veuillez vérifier à ce que ce fichier existe bien.

Ça y est, maintenant il ne reste plus qu’à installer l’application GTKpod et synchroniser votre musique.

~$ sudo apt-get install gtkpod
The following extra packages will be installed:
gtkpod-data id3v2 libid3-3.8.3c2a vorbis-tools
Suggested packages:
mp3gain faad faac lame

Une fois l’installation terminée, vous pouvez lancer GTKpod.


L’erreur ci dessous devrait pouvoir être résolu facilement. (Je ferai plus de recherche dessus quand j’en aurai le temps).


D’après ce message, je dois créer un dossier Photos dans /mnt/ipod/iPod_Control/.

/!\ N’oubliez surtout pas de déconnecter l’iTouch proprement une fois que vous avew fini de le synchroniser. Pour ce faire,

clic droit/éjecter l’ipod dans gtkpod

fusermount -u /mnt/ipod/ dans un terminal

Sources :
tutoriel pour pouvoir transférer de la musique avec iFuse sur iPhone
iPhone syncing on Linux Part 2
le topic qui m’a dirigé vers la résolution du problème de sync sous linux
problème de compilation libgpod4
Main Page – iFuse

II. Compilation de libpod4

Dans le blog précédent, je vous ai montré comment on monte un iPhone/iTouch. Passons maintenant à quelque chose de plus sérieux.

Nous allons installer les paquets nécessaires à la compilation de libpod4. Ce qu’il faut juste savoir c’est que libgpod est une bibliothèque partagée pour accéder au contenu d’un iPod.


4. Installation des différents paquets nécessaires pour la compilation de libgpod4

Commençons par installer l’outil Git, qui est un logicile de gestion de version décentralisée. Par décentralisé, on entend que chaque personne peut développer son propre dépôt.

malagasy@malagasy-laptop:~$ sudo apt-get install git-core
The following extra packages will be installed:
libdigest-sha1-perl liberror-perl
Suggested packages:
git-doc git-arch git-cvs git-svn git-email git-daemon-run git-gui gitk
gitweb

Lors de l’installation du paquet git-core, d’autres paquets ont été suggérés à être installé, que je n’ai pas fait. Dans la suite de mes installations, je n’installe aucun autre paquet, sauf ceux que je vous vais vous indiquer.

Nous avons besoin d’installer les paquets suivant afin de pouvoir compiler le paquet libgpod4.

malagasy@malagasy-laptop:~$ sudo apt-get install autoconf libtool libglib2.0-dev intltool gtk-doc-tools sqlite3 libsqlite3-dev zlib1g-dev libxml2-dev checkinstall
The following extra packages will be installed:
automake autotools-dev cvs docbook docbook-dsssl docbook-to-man
docbook-xsl docbook-xsl-doc-html gettext gnome-common jade libltdl-dev
libruby1.8 libsp1c2 m4 ruby ruby1.8 sp
Suggested packages:
autoconf2.13 autobook autoconf-archive gnu-standards autoconf-doc psgml
docbook-defguide jadetex docbook-dsssl-doc libsaxon-java libxalan2-java
docbook-xsl-saxon fop xalan gettext-doc libtool-doc sqlite3-doc automaken
gfortran fortran95-compiler gcj ruby1.8-examples rdoc1.8 ri1.8

Puis installation du paquet libiphone-dev, puis de deux autres paquets optionnels libgdk-pixbuf2 et libgdk-pixbuf-dev pour pouvoir transférer des images (photos, couvertures d’album …).

malagasy@malagasy-laptop:~$ sudo apt-get install libiphone-dev libgdk-pixbuf2 libgdk-pixbuf-dev
E: Couldn’t find package libgdk-pixbuf2

En effectuant quelques recherches sur le net, j’ai noté que “libgdk-pixbuf2″ et “libgdk-pixbuf-dev” sont inclus dans libgtk2.0-dev et libgtk2.0. J’ai effectué l’installation de ces derniers via synaptic puisqu’il m’est impossible des les installer via apt-get install.

Par contre, j’ai oublié d’installer le paquet libiphone-dev suite à cette erreur.


5. Compilation du paquet libgpod4

Pour compiler ligpod4, il faut taper les commandes suivantes :

$ git clone git://gitorious.org/~marcan/libgpod/marcan-sandbox/
$ cd marcan-sandbox/
$ git checkout origin/iphone30
$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr

En tapant ces commandes, je me suis apperçu par la suite qu’il me manquait des paquets, que j’installerai au fur et à mesure où cela est nécessaire comme vous pouvez le constater ci dessous.

malagasy@malagasy-laptop:~$ git clone git://gitorious.org/~marcan/libgpod/marcan-sandbox/
Initialized empty Git repository in /home/malagasy/marcan-sandbox/.git/
remote: Counting objects: 5282, done.
remote: Compressing objects: 100% (1522/1522), done.
remote: Total 5282 (delta 4015), reused 4925 (delta 3740)
Receiving objects: 100% (5282/5282), 1.66 MiB | 124 KiB/s, done.
Resolving deltas: 100% (4015/4015), done.

malagasy@malagasy-laptop:~$ cd marcan-sandbox/

malagasy@malagasy-laptop:~/marcan-sandbox$ ls
AUTHORS docs Makefile.am tests
autogen.sh gnome-autogen.sh NEWS tools
bindings INSTALL po TROUBLESHOOTING
ChangeLog INSTALL_SVN README
configure.ac libgpod-1.0.pc.in README.SysInfo
COPYING m4 src

malagasy@malagasy-laptop:~/marcan-sandbox$ git checkout origin/iphone30
Note: moving to ‘origin/iphone30’ which isn’t a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
git checkout -b
HEAD is now at f324198… Debug SHA1 payload

malagasy@malagasy-laptop:~/marcan-sandbox$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr

checking for autoconf >= 2.53…
testing autoconf2.50… not found.
testing autoconf… found 2.64
checking for automake >= 1.7…
testing automake-1.11… found 1.11
checking for libtool >= 1.4.3…
testing libtoolize… found 2.2.6
checking for glib-gettext >= 2.2.0…
testing glib-gettextize… found 2.22.2
checking for intltool >= 0.25…
testing intltoolize… found 0.41.0
checking for pkg-config >= 0.14.0…
testing pkg-config… found 0.22
checking for gtk-doc >= 1.0…
testing gtkdocize… found 1.11
Checking for required M4 macros…
Checking for forbidden M4 macros…
Processing ./configure.ac
Running libtoolize…
libtoolize: putting auxiliary files in `.’.
libtoolize: copying file `./ltmain.sh’
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4′.
libtoolize: copying file `m4/libtool.m4′
libtoolize: copying file `m4/ltoptions.m4′
libtoolize: copying file `m4/ltsugar.m4′
libtoolize: copying file `m4/ltversion.m4′
libtoolize: copying file `m4/lt~obsolete.m4′
Running glib-gettextize… Ignore non-fatal messages.
Copying file mkinstalldirs
Copying file po/Makefile.in.in

Please add the files
codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
progtest.m4
from the /aclocal directory to your autoconf macro directory
or directly to your aclocal.m4 file.
You will also need config.guess and config.sub, which you can get from
ftp://ftp.gnu.org/pub/gnu/config/.

Running intltoolize…
Running gtkdocize…
Running aclocal-1.11…
Running autoconf…
Running autoheader…
Running automake-1.11…
configure.ac:45: installing `./compile’
configure.ac:52: installing `./config.guess’
configure.ac:52: installing `./config.sub’
configure.ac:36: installing `./install-sh’
configure.ac:36: installing `./missing’
bindings/python/Makefile.am: installing `./depcomp’
bindings/python/Makefile.am:39: installing `./py-compile’
Running ./configure –enable-maintainer-mode -prefix=/usr …
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /bin/mkdir -p
checking for gawk… no
checking for mawk… mawk
checking whether make sets $(MAKE)… yes
checking whether to enable maintainer-specific portions of Makefiles… yes
checking for style of include used by make… GNU
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking dependency style of gcc… gcc3
checking how to run the C preprocessor… gcc -E
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking minix/config.h usability… no
checking minix/config.h presence… no
checking for minix/config.h… no
checking whether it is safe to define __EXTENSIONS__… yes
checking for gcc… (cached) gcc
checking whether we are using the GNU C compiler… (cached) yes
checking whether gcc accepts -g… (cached) yes
checking for gcc option to accept ISO C89… (cached) none needed
checking dependency style of gcc… (cached) gcc3
checking whether gcc and cc understand -c and -o together… yes
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking dependency style of g++… gcc3
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking for a sed that does not truncate output… /bin/sed
checking for fgrep… /bin/grep -F
checking for ld used by gcc… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking for ANSI C header files… (cached) yes
checking for BSD- or MS-compatible name lister (nm)… /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface… BSD nm
checking whether ln -s works… yes
checking the maximum length of command line arguments… 1572864
checking whether the shell understands some XSI constructs… yes
checking whether the shell understands « += »… yes
checking for /usr/bin/ld option to reload object files… -r
checking for objdump… objdump
checking how to recognize dependent libraries… pass_all
checking for ar… ar
checking for strip… strip
checking for ranlib… ranlib
checking command to parse /usr/bin/nm -B output from gcc object… ok
checking for dlfcn.h… yes
checking whether we are using the GNU C++ compiler… (cached) yes
checking whether g++ accepts -g… (cached) yes
checking dependency style of g++… (cached) gcc3
checking how to run the C++ preprocessor… g++ -E
checking for objdir… .libs
checking if gcc supports -fno-rtti -fno-exceptions… no
checking for gcc option to produce PIC… -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works… yes
checking if gcc static flag -static works… yes
checking if gcc supports -c -o file.o… yes
checking if gcc supports -c -o file.o… (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
checking whether -lc should be explicitly linked in… no
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… yes
checking for ld used by g++… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking for g++ option to produce PIC… -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works… yes
checking if g++ static flag -static works… yes
checking if g++ supports -c -o file.o… yes
checking if g++ supports -c -o file.o… (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether ln -s works… yes
checking whether make sets $(MAKE)… (cached) yes
checking whether NLS is requested… yes
checking for intltool >= 0.21… 0.41.0 found
checking for intltool-update… /usr/bin/intltool-update
checking for intltool-merge… /usr/bin/intltool-merge
checking for intltool-extract… /usr/bin/intltool-extract
checking for xgettext… /usr/bin/xgettext
checking for msgmerge… /usr/bin/msgmerge
checking for msgfmt… /usr/bin/msgfmt
checking for gmsgfmt… /usr/bin/msgfmt
checking for perl… /usr/bin/perl
checking for perl >= 5.8.1… 5.10.0
checking for XML::Parser… ok
checking for localtime_r… yes
checking for struct tm.tm_gmtoff… yes
checking for pkg-config… /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0… yes
checking for LIBGPOD… yes
checking for GLIB… yes
checking for sg_ll_inquiry in -lsgutils2… no
checking for sg_ll_inquiry in -lsgutils… no
checking for inflate in -lz… yes
checking for HAL… no
checking for LIBIPHONE… no
checking for TAGLIB… no
checking for LIBXML… yes
checking for GDKPIXBUF… yes
checking for PYGOBJECT… no
checking locale.h usability… yes
checking locale.h presence… yes
checking for locale.h… yes
checking for LC_MESSAGES… yes
checking libintl.h usability… yes
checking libintl.h presence… yes
checking for libintl.h… yes
checking for ngettext in libc… yes
checking for dgettext in libc… yes
checking for bind_textdomain_codeset… yes
checking for msgfmt… (cached) /usr/bin/msgfmt
checking for dcgettext… yes
checking if msgfmt accepts -c… yes
checking for gmsgfmt… (cached) /usr/bin/msgfmt
checking for xgettext… (cached) /usr/bin/xgettext
checking for catalogs to be installed… de es fr he it ja ro sv zh_CN
checking whether to build gtk-doc documentation… no
checking for gtkdoc-check… /usr/bin/gtkdoc-check
checking whether to build python bindings… yes
checking for python… /usr/bin/python
checking whether /usr/bin/python version >= 2.1.1… yes
checking for /usr/bin/python version… 2.6
checking for /usr/bin/python platform… linux2
checking for /usr/bin/python script directory… ${prefix}/lib/python2.6/dist-packages
checking for /usr/bin/python extension module directory… ${exec_prefix}/lib/python2.6/dist-packages
checking for python development headers… not found
checking for more warnings… yes
checking whether gcc understands -Wno-strict-aliasing… yes
checking whether gcc understands -Wno-sign-compare… yes
checking whether gcc understands -Wdeclaration-after-statement… yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bindings/Makefile
config.status: creating bindings/python/gpod.i
config.status: creating bindings/python/Makefile
config.status: creating bindings/python/examples/Makefile
config.status: creating bindings/python/tests/Makefile
config.status: creating docs/Makefile
config.status: creating docs/reference/Makefile
config.status: creating docs/reference/version.xml
config.status: creating m4/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating tools/Makefile
config.status: creating tests/Makefile
config.status: creating libgpod-1.0.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands

Configuration for libgpod 0.7.3SVN :
——————————–

Host System Type ………: i686-pc-linux-gnu
Install path ………….: /usr
Preprocessor ………….: gcc
Compiler ……………..: gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Werror -std=c89 -g -O0 -Wno-strict-aliasing -Wno-sign-compare -Wdeclaration-after-statement -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Linker ……………….: gcc -lgobject-2.0 -lglib-2.0 -lsqlite3 -lxml2 -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
Artwork support ……….: yes
Python bindings ……….: no
PyGObject support ……..: no
iPhone/iPod Touch support.: no

Now type ‘make’ to build libgpod 0.7.3SVN,
and then ‘make install’ for installation.

Now type `make’ to compile libgpod

Comme vous pouvez vous attendre l’iTouch n’est pas supporté, vu que j’ai oublié d’installer le paquet libiphone-dev, par contre la prise en charge des pochettes est bien supportée.

Dans le prochain billet, je vous vous donnerai les résultats de la manipulation si on essaye de compiler libgpod à ce stade, ie comme indiqué ci dessus « iPhone/iPod Touch support.: no », puis de synchroniser l’iTouch.

6. Compilation du paquet libgpod4 (suite)

Nous allons maintenant installer le paquet libiphone-dev.

malagasy@malagasy-laptop:~/marcan-sandbox$ sudo apt-get install libiphone-dev
The following packages were automatically installed and are no longer required:
media-player-info
Use ‘apt-get autoremove’ to remove them.
The following extra packages will be installed:
libgcrypt11-dev libgnutls-dev libgpg-error-dev libplist-dev libplist1
libtasn1-3-dev libusb-1.0-0-dev libusbmux-dev
Suggested packages:
libgcrypt11-doc gnutls-doc gnutls-bin guile-gnutls

malagasy@malagasy-laptop:~/marcan-sandbox$ git checkout origin/iphone30
HEAD is now at f324198… Debug SHA1 payload

malagasy@malagasy-laptop:~/marcan-sandbox$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr
(…)
Running automake-1.11…
Running ./configure –enable-maintainer-mode -prefix=/usr …
checking for a BSD-compatible install… /usr/bin/install -c
(…)
checking for LIBIPHONE… yes
checking for iphone_device_new in -liphone… yes
(…)
Configuration for libgpod 0.7.3SVN :
——————————–
(…)
Artwork support ……….: yes
Python bindings ……….: no
PyGObject support ……..: no
iPhone/iPod Touch support.: yes

7. Installation de paquets supplémentaires, mais pas forcément nécessaires pour la compilation de libgpod4

Le non support de PyGObject m’a perturbé, et donc j’étais allé cherché les paquets nécessaires pour pouvoir le faire, qui sont python-gobject et python-gobject-dev.

malagasy@malagasy-laptop:~/marcan-sandbox$ sudo apt-get install python-gobject python-gobject-dev
The following extra packages will be installed:
libffi-dev python-dev python2.6-dev

malagasy@malagasy-laptop:~/marcan-sandbox$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr
(…)
checking for python development headers… found
checking for python module mutagen >= 1.8… no
(…)
Configuration for libgpod 0.7.3SVN :
——————————–
(…)
Artwork support ……….: yes
Python bindings ……….: no
PyGObject support ……..: yes
iPhone/iPod Touch support.: yes

J’ai effectué l’installation du paquet python-mutagen via synaptic. Après quelques recherches, j’ai appris que Mutagène est un module Python pour manipuler des métadonnées audio. Il supporte les formats FLAC,M 4A, MP3, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, et les fichiers audio WavPack.

malagasy@malagasy-laptop:~/marcan-sandbox$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr
(…)
checking for python development headers… found
checking for python module mutagen >= 1.8… yes
checking for swig… no
configure: WARNING: cannot find ‘swig’ program. You should look at http://www.swig.org
(…)
Configuration for libgpod 0.7.3SVN :
——————————–
(…)
Artwork support ……….: yes
Python bindings ……….:
PyGObject support ……..: yes
iPhone/iPod Touch support.: yes

J’ai ensuite installé les paquets swig & swig1.3 via Synaptique. Swig1.3 étant l’upgrade du paquet swig.

malagasy@malagasy-laptop:~/marcan-sandbox$ CFLAGS= »-g -O0″ sh autogen.sh -prefix=/usr
(…)
checking for swig… /usr/bin/swig
checking for SWIG version… 1.3.36
(…)
Configuration for libgpod 0.7.3SVN :
——————————–
(…)
Artwork support ……….: yes
Python bindings ……….: yes
PyGObject support ……..: yes
iPhone/iPod Touch support.: yes

Now type ‘make’ to build libgpod 0.7.3SVN,
and then ‘make install’ for installation.

Now type `make’ to compile libgpod

Maintenant que tout à l’air bon, on peut lancer la commande ‘make’.

La suite dans le prochain billet.

I. Monter un iPod Touch/iPhone sur ubuntu Koala 9.10

Cela fait un petit moment que je cherchais comment synchroniser mon iPod Touch (que je vais racourcir par iTouch) sous linux, et voilà que non seulement je peux synchroniser la musique, mais je peux aussi utiliser mon iTouch comme clé USB.

La version de l’application iPhone de mon iTouch : 3.1.2. Je voudrai préciser que je n’ai pas effectué de Jailbreak de mon iTouch, et que ce n’est pas nécessaire si vous souhaitez utiliser iFuse.

1. Installation d’iFuse

Avand de commencer l’installation, j’aurai juste souhaité préciser ce qu’est iFuse.

iFuse permet de monter un iPhone/iTouch sous linux après l’avoir connecté avec un cable USB à votre ordinateur. Vous serez en mesure de visualiser et d’éditer vos fichiers.

On peut se lancer dans l’installation d’iFuse maintenant. Commençons par ajouter les lignes suivantes dans /etc/apt/sources.list pour karmic Koala :

deb http://ppa.launchpad.net/jonabeck/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/jonabeck/ppa/ubuntu karmic main

Ensuite on va installer iFuse après avoir récupérer la clé d’autentification du serveur comme suit :

$ sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com e20da6af9caee36095d1282ef104610cf0876ac9

Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –recv-keys –keyserver keyserver.ubuntu.com e20da6af9caee36095d1282ef104610cf0876ac9
gpg: requesting key F0876AC9 from hkp server keyserver.ubuntu.com
gpg: key F0876AC9: public key « Launchpad PPA for Jonathan Beck » imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)

$ sudo apt-get install ifuse
The following NEW packages will be installed:
ifuse libiphone0 libplist0
$ sudo apt-get install libiphone-utils

Si vous rencontrez un message d’erreur du genre « E: Couldn’t find package libiphone-utils », il faut effectuer une update & upgrade de votre système.

Il n’est pas nécessaire d’installer iproxy dans mon cas, puisque mon iTouch n’est pas Jailbreaké.

Maintenant, après avoir branché l’iTouch à l’ordinateur, on peut revérifier qu’usbmuxd est actif. Le paquet usbmuxd est nécessaire pour pouvoir synchroniser vos données de votre ordinateur sous linux vers votre iPhone, et vice versa.

$ ps ax | grep usbmuxd

2. Création d’un point de montage de l’iPhone/iTouch

Créer dans un premier temps un dossier /mnt/ipod avec tous les droits tel que :

sudo mkdir /mnt/ipod
sudo chmod 777 /mnt/ipod/

Dans le fichier de configuration de fuse /etc/fuse.conf, enlevez le # qui est devant user_allow_other , puis sauvegardez.

Après cela, ajoutez vous dans le groupe d’utilisateur fuse.

Pour ce faire, cliquer dans le menu Système > Administration > Utilisateurs et groupes. Cliquez ensuite sur la clé (il est écrit Déverrouillez) et rentrer votre mot de passe. Sélectionnez votre nom, puis cliquez sur Gérer les groupes.

Trouvez le groupe fuse et double cliquez dessus. Cela va faire une marque vers votre nom dans la fenêtre qui apparaît. Cliquez sur OK et fermez toutes les boîtes de dialogues. Vous êtes maintenant dans le groupe fuse.

Redémarrer votre ordinateur pour prendre en charge les dernières modifications.

Vérifier après redémarrage que vous appartenez bien au groupe fuse, en tapant id dans une console.

$ id
uid=1000(malagasy) gid=1000(malagasy) groups=4(adm),20(dialout),24(cdrom),46(plugdev),106(fuse),108(lpadmin),123(admin),124(sambashare),1000(malagasy)

3. Monter l’iPhone/iTouch

Vous pouvez toujours vérifier que usbmuxd est toujours actif quand après avoir branché l’iTouch.

$ ps ax | grep usbmuxd


A partir d’ici, vous pouvez monter l’iTouch avec la commande « ifuse /mnt/ipod/ « .

Voici les messages d’erreur que vous pouvez rencontrer par la suite :
$ ifuse /mnt/ipod/
ifuse: symbol lookup error: ifuse: undefined symbol: iphone_get_device

Ce problème est résolu en effectuant un update&upgrade de votre système. Je m’en suis apperçu en essayant de réinstaller ifuse.

$ sudo apt-get install ifuse
..
The following packages will be upgraded:
ifuse

Un deuxième message d’erreur m’est apparu.

$ ifuse /mnt/ipod/
Failed to connect to lockdownd service on the device.
Try again. If it still fails try rebooting your device.

Ce problème est du au fait que j’ai mis un mot de passe à l’iTouch.

Voici les répertoires que vous devriez avoir dans le dossier /mnt/ipod

$ ls
com.apple.itdbprep.postprocess.lock Downloads PublicStaging Safari
com.apple.itunes.lock_sync iTunes_Control Purchases
DCIM Podcasts Recordings

La suite dans le prochain billet.

GShutDown – un utilitaire pour éteindre, fermer une session ou redémarrer l’ordinateur

Tout est dit dans le titre, mais je pense que pour mieux expliquer l’utilité de cette application, le texte de l’auteur de cette application résume tout.

Je suis désolé de demander ça, mais quel en est l’intérêt ?

Imaginons que tu es bien au chaud, dans ton lit, en train de regarder un film. Au lieu de « courir le risque » de dormir avant d’éteindre ton ordinateur (tout le monde n’a pas un PC allumé 24h/24 big_smile ), il te suffit de programmer l’arrêt de ton ordinateur avec GShutdown…

Tu te demandes peut-être quel est l’avantage par rapport à la commande « shutdown » ?

* GShutdown t’affiche des notifications visuelles. C’est utile pour te prévenir d’avance que l’ordinateur va être éteint dans les minutes qui viennent, ce qui te laissera le temps d’annuler l’arrêt ou de sauvegarder rapidement ton travail (si tu t’es oublié dans ton travail alors que l’arrêt de l’ordinateur était déjà planifié).
* Comme il n’y a pas que les Geek qui utilisent Linux, GShutdown a l’avantage d’être user-friendly, par rapport à shutdown.
* il est possible d’arrêter ou de redémarrer l’ordinateur sans être root.

Dans un futur proche, quelques fonctionnalités intéressantes sont prévues :
* les « extras » (des actions personnalisées. Par exemple, une action qui permet l’arrêt de la musique de Rhythmbox à une heure précise).
* l’arrêt de l’ordinateur quand l’activité réseau baisse (par exemple, quand un téléchargement est terminé)
* l’hibernation.
* et bien d’autres…

Sinon au niveau de l’utilisation de cette application, il n’y a rien de difficile. Tout le monde peut l’utiliser sans aucune connaissance particulière.

Vous pouvez constater sur l’écran, une notification en forme de pop-up que vous pouvez programmer à votre choix, puis la présence de l’Applet dans la barre du tableau de bord de gnome, dans mon cas en haut à droite, indiquant le temps restant avant l’extinction.


Quelques secondes avant d’effectuer l’action que vous avec demandé à l’application GShutDown, vous avec la fenêtre suivante.

Sources:
– site officiel : http://gshutdown.tuxfamily.org/fr/index.php
quel en est l’intérêt?
documentation sur le site d’ubuntu-fr.org
le site qui m’a fait connaître cette application
Ubuntu brainstorm: pourquoi ne pas voter pour que cette application soit installé par défaut sur Ubuntu?


gstreamer0.10-plugins-bad dans Update Manager

Lorsqu’un packet n’est pas installable à partir de l’Update Manager, c’est à dire que le paquet est grisé comme sur la photo ci-dessous, il ne vous suffit juste que de l’installer manuellement à partir de Synaptic Package Manager.


Synaptic Update Manager :


Sélection des packets upgradables, de le(s) marquer pour l’upgrade, puis de valider.


Et voilà, le packet est mise à jour.

Source:
[ubuntu] gstreamer0.10-plugins-bad in Update Manager

Backup avec SBackup

Avant d’effectuer l’upgrade vers la version 9.10, mieux vaut commencer par faire une sauvegarde complète de son système. Pour ce faire, j’avais le choix entre plusieurs applications : Partimage, FSArchiver et Sbackup.

Comme mon premier objectif est de sauvegarder les données de mes partitions avant l’upgrade, j’ai opté pour Sbackup pour les raisons suivantes :

Partimage

– la partition à sauvegarder ne doit pas être montée. Seule la partition de sauvegarde (celle où sera stockée votre image) doit l’être.

http://www.framasoft.net/article4833.html

Non merci, puisqu’il me faut une sauvegarde complète de mon OS.

FSArchiver

– pas d’interface graphique : manipulation en ligne de commande.

http://www.fsarchiver.org/QuickStart

Pour l’instant, j’aurai souhaité quelque chose de simple, et de facilement abordable.

Sbackup

+ simple d’utilisation
+ interface graphique
+ sauvegarde complète du système

Un des points négatifs de l’application Sbackup est qu’il n’y a aucune confirmation de la fin de la sauvegarde. Par contre, on peut vérifier facilement dans une console si la sauvegarde est terminée ou non.
L’autre point négatif est que cette application semble ne plus être mise à jour depuis un certain temps.

Dans un premier temps, quand vous lancer Sbackup, il vous indique le numéro du processus. Ici, c’est le 8248.


Ensuite j’ai ouvert une console, puis de taper « screen » sans les guillemets – qui me permet d’avoir plusieurs fenêtre sur la même console.

Dans la première fenêtre de la console, j’ai demandé à avoir la liste de tous les processus et que cette liste soit régulièrement mise à jour, via la commande « top ».

Dans la deuxième fenêtre, dans un premier temps j’ai demandé à avoir la liste des processus via la commande « ps -ef », ensuite d’avoir cette liste en arbre via la commande « ps -ejH ».

Dans la troisième fenêtre, j’ai vérifié l’état du processus concernant le backup en tapant la commande ps numero_du_processus, dans mon cas ps 8248.


Sur les tableaux ci-dessus, et ci-dessous, on voit bien que les données sont en train de s’archiver.


Une fois l’archivage terminé, vous pouvez vérifier le mot « defunt » quand vous tapez : ps numero_processus. Ce qui signifie que l’archivage est complète.

Sources:
Ouvrir plusieurs terminaux en même temps avec Screen
Sbackup : documentation en français
Sbackup : installation
Sbackup : english documentation
Surveiller l’activité du système