Main menu:

Site search

Categories

mai 2010
L M M J V S D
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Archive

Compiler xvidcap-1.1.7 sous Lucid

Dans les forums d’Ubuntu-fr, quelqu’un demandait comment compiler xvidcap-1.1.7 sous Lucid afin de résoudre des problèmes de son qu’il avait avec la version des dépôts et manifestement avait un peu de mal a s’en sortir avec les messages d’erreurs.

Xvidcap est un programme de capture d’écran, dans un fichier vidéo AVI ou mpeg, destinée à la réalisation de screencast.
Pour compiler le programme, il faut le télécharger ici, installer les paquets suivants qui sont nécessaires:

$ sudo aptitude install libxmu-dev
$ sudo aptitude libxmu-headers
$ sudo aptitude libxt-dev

Ensuite, il faut décompresser l’archive puis compiler le programme de manière habituelle:

$ tar  -zxvf xvidcap-1.1.7.tar.gz
$ cd xvidcap-1.1.7
$ ./configure
$ make

Mais durant le make, une erreur apparaît qui peut être incompréhensible pour quelqu’un qui n’a pas l’habitude:

capture.c: In function ‘XGetZPixmapSHM’:
capture.c:668: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
capture.c:668: error: ‘req’ undeclared (first use in this function)
capture.c:668: error: (Each undeclared identifier is reported only once
capture.c:668: error: for each function it appears in.)
capture.c:669: error: ‘xShmGetImageReply’ undeclared (first use in this function)
capture.c:669: error: expected ‘;’ before ‘rep’
capture.c:675: error: ‘sz_xShmGetImageReq’ undeclared (first use in this function)
capture.c:675: error: ‘xShmGetImageReq’ undeclared (first use in this function)
capture.c:675: error: expected expression before ‘)’ token
capture.c:675: error: ‘X_ShmGetImage’ undeclared (first use in this function)
capture.c:693: error: ‘rep’ undeclared (first use in this function)

En bref, cela signifie que dans le fichier capture.c, à la ligne 668, dans la fonction XGetZPixmapSHM, il y a un type non-déclaré: xShmGetImageReq.
Après une petite recherche dans les fichiers d’entête (.h), il apparaît que ce type est déclaré dans Lucid dans le fichier X11/extensions/shmproto.h. Or celui-ci n’est pas inclus dans capture.c. A la place, on trouve un fichier X11/extensions/shmstr.h qui lui n’existe plus. Donc il semblerait bien que le premier remplace le second dans les dernières versions. Il suffit donc dans le fichier capture.c de trouver la ligne contenant:

#include <X11/extensions/shmstr.h>

et de la remplacer par:

#include <X11/extensions/shmproto.h>

Relancez la compilation puis l’installation et vous obtiendrez une version compilée de xvidcap fonctionnelle et avec le son en plus:

$ make
$ sudo make install

Comments

Comment from Yann
Time: 24 mai 2010, 1 h 38 min

Hello,

J’aurais bien dis de faire un rapport de bug sur ce problème ( https://bugs.launchpad.net/ubuntu/+source/xvidcap/+bugs ) car la version de lucid est bien la 1.1.7 mais curieusement après avoir recherché les diff entre paquet et src original j’ai trouvé ce truc très troublant :

— ../paquet/xvidcap-1.1.7/configure 2010-05-24 01:20:43.000000000 +0200
+++ xvidcap_src.orig/configure 2008-07-09 09:28:25.000000000 +0200
@@ -12259,7 +12259,7 @@
if test $ac_cv_lib_avcodec_avcodec_decode_audio = yes; then
ac_my_have_ffmpeg_audio= »1″
else
– ac_my_have_ffmpeg_audio= »1″
+ ac_my_have_ffmpeg_audio= »0″
fi

fi
@@ -14129,7 +14129,7 @@
Donc dans le paquet si il y a pas de son il y en a quand même ???
Si j’ai un moment je déclare le bug et cherche à le résoudre.

Comment from Michel Leunen
Time: 24 mai 2010, 10 h 02 min

@Yann
En fait cette version date d’il y a presque 1 an! Etonnant en effet.
Donc la source a été « corrigée » par celui qui a fait le paquet pour Karmic, je suppose. De plus, le paquet ne semble pas avoir été recompilé pour Lucid.