[Résolu] Request For Help ! Utilisateurs de museek ou codeurs C/C++

Request For Help ! Utilisateurs de museek ou codeurs C/C++ [Résolu] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 19-05-2006 à 19:30:53    

Bonjour,
 
Depuis quelques mises à jours de scons, museek ne compile plus. Après un quelques discussion entre daelstorm (le repreneur du soft) et moi même (préparation du packaging debian), il s'avère que nos niveaux en C sont un peu légers... :/
 
Alors si vous utilisez museek, ou si vous savez bien coder en C++ et que vous n'avait rien à faire, aidez un projet libre à sortir de l'impasse !  
 
(C'est vendeur non ? ;))
 

Code :
  1. g++ -o build-i686-linux/Tools/scanner.o -c -fPIC -Wall -pipe -g -fomit-frame-pointer -O2 -DHAVE_VORBIS=1 -I. -I/usr/local/include -I/usr/include -I/usr/X11R6/include -I/usr/include/libxm
  2. l++-2.6 -I/usr/lib/libxml++-2.6/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/incl
  3. ude/glib-2.0 -I/usr/lib/glib-2.0/include build-i686-linux/Tools/scanner.cc
  4. build-i686-linux/Tools/scanner.cc: In member function 'void DirScanner::real_scan()':
  5. build-i686-linux/Tools/scanner.cc:191: error: no matching function for call to 'scandir(const char*, SCANDIR_ENTRY***, NULL, NULL)'
  6. /usr/include/dirent.h:246: note: candidates are: int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const void*, const void*))
  7. build-i686-linux/Tools/scandir.hh:27: note:                 int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const dirent**, const dirent**))
  8. build-i686-linux/Tools/scanner.cc:200: error: invalid use of undefined type 'struct SCANDIR_ENTRY'
  9. build-i686-linux/Tools/scanner.cc:179: error: forward declaration of 'struct SCANDIR_ENTRY'
  10. scons: *** [build-i686-linux/Tools/scanner.o] Error 1


 
Voici l'erreur qui nous bloque...
 
Un lien vers le fichiers qui ne compile pas : http://www.le-vert.net/divers/muse [...] scanner.cc
Les sources visibles directement sur mon srv web : http://www.le-vert.net/divers/museek+-0.1.8/
Le tarball : http://www.le-vert.net/divers/muse [...] rig.tar.gz
 
 
En vous remerçiant d'avance :)


Message édité par M300A le 27-05-2006 à 18:30:40
Reply

Marsh Posté le 19-05-2006 à 19:30:53   

Reply

Marsh Posté le 19-05-2006 à 19:34:34    

PS : Si vous cherchez à developper, daelstorm est preneur d'aide... En effet il s'occupe largement des nouveaux greffons en python mais il a du mal à s'en sortir avec le code source C++ d'origine...
 
N'hésitez pas à le contacter !

Reply

Marsh Posté le 19-05-2006 à 20:34:20    

Bonsoir,  
 
Où est définie la macro SCANDIR_ENTRY ?
 
Edit: Comment l'installes/le paquetages tu ? Car je pense que c'est çà qui fout la merde. SCANDIR_ENTRY est définie par un script python (à l'installation je pense).

Message cité 1 fois
Message édité par Photonium le 19-05-2006 à 20:39:44

---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 19-05-2006 à 21:30:28    

-quelle version de gcc ? avec gcc version gcc 4.0.3 (Ubuntu 4.0.3-1ubuntu5) ca compile pour moi, en désactivant la gui QT
-quel os/architecture ?
-quelle tronche à ton system.h ?
 
j'ai un #define HAVE_SCANDIR 1, donc apparement le préprocesseur va faire en sorte que ce soit la fonction scandir de mon système qui soit appellé, et pas celle écrite à la mano dans scandir.cc, je présume que pour toi ca n'est pas le cas
 
dans la sortie de scons, j'ai ceci:
 

Checking for scandir entry type... dirent


 
et toi ?


Message édité par ory le 19-05-2006 à 21:40:04
Reply

Marsh Posté le 19-05-2006 à 21:49:20    

Photonium a écrit :

Bonsoir,  
 
 SCANDIR_ENTRY est définie par un script python (à l'installation je pense).


 
scandir.py:

Code :
  1. def CheckScandirType(context, sys_h, dirent, sysndir, sysdir, ndir):
  2.     context.Message('Checking for scandir entry type... ')
  3.     check_code = ''
  4.     if dirent: check_code = check_code + '#include <dirent.h>\n'
  5.     if sysndir: check_code = check_code + '#include <sys/ndir.h>\n'
  6.     if sysdir: check_code = check_code + '#include <sys/dir.h>\n'
  7.     if ndir: check_code = check_code + '#include <ndir.h>\n'
  8.     check_code = check_code + """
  9. int main() {
  10.     struct dirent **temp;
  11.     scandir(0, &temp, 0, 0);
  12.     return 0;
  13. }
  14. """
  15.     if context.TryCompile(check_code, '.c'):
  16.         context.Result('dirent')
  17.         sys_h.write('#define SCANDIR_ENTRY dirent\n')
  18.     else:
  19.         context.Result('direct')
  20.         sys_h.write('#define SCANDIR_ENTRY direct\n')
  21. def CheckScandir(sys_h, conf):
  22.     dirent = sysndir = sysdir = ndir = 0
  23.     if conf.CheckCHeader('dirent.h'):
  24.         sys_h.write('#include <dirent.h>\n')
  25.         sys_h.write('#define NAMELEN(dirent) strlen((dirent)->d_name\n')
  26.         dirent = 1
  27.     else:
  28.         sys_h.write('#define dirent direct\n')
  29.         sys_h.write('#define NAMELEN(dirent) (dirent)->d_namlen\n')
  30.         if conf.CheckCHeader('sys/ndir.h'):
  31.             sys_h.write('#include <sys/ndir.h>\n')
  32.             sysndir = 1
  33.         if conf.CheckCHeader('sys/dir.h'):
  34.             sys_h.write('#include <sys/dir.h>\n')
  35.             sysdir = 1
  36.         if conf.CheckCHeader('ndir.h'):
  37.             sys_h.write('#include <ndir.h>\n')
  38.             ndir = 1
  39.     if conf.CheckFunc('scandir', 'C++'):
  40.         sys_h.write('#define HAVE_SCANDIR 1\n')
  41.         conf.CheckScandirType(sys_h, dirent, sysndir, sysdir, ndir)
  42.     else:
  43.         sys_h.write('#define SCANDIR_TYPE direct\n')
  44.     sys_h.write('\n')


 
il cherche si le scandir des bibliothèques système est dispo, et sinon il utilise celui codé à la mano.

Reply

Marsh Posté le 19-05-2006 à 23:07:18    

ory a écrit :

...
 
il cherche si le scandir des bibliothèques système est dispo, et sinon il utilise celui codé à la mano.


 
Je suis d'accord, c'est ce que j'avais compris. Mais lorsque M300A fait son paquetage, t'es sur qu'il utilise bien le script ?
 
Je connais un peu le packaging et à mon avis si tu y vas sans réfléchir dans ce cas-là, tu fonces dans le mur et tu oublies ce script. Maintenant, il faudrait un peu plus d'informations sur le contexte d'installation/packaging...


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 20-05-2006 à 11:50:44    

léger HS : C'est assez galère la phase de configuration en console. Y'a pas moyen de faire tous ça en graphique ?

Reply

Marsh Posté le 20-05-2006 à 12:04:47    

Joseph Desire a écrit :

léger HS : C'est assez galère la phase de configuration en console. Y'a pas moyen de faire tous ça en graphique ?


[:pingouino]
 
arrière hérétique [:popok]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 20-05-2006 à 12:09:54    

C'est pas tres user-friendly.... Nicotine le fait bien.

Reply

Marsh Posté le 20-05-2006 à 13:03:10    

Joseph Des ire, c'est effectivement en cours d'intégration dans Museeq :)
 
ory > c'est effectivement la compilation de la GUI QT qui foire :)
 
[citation]dans la sortie de scons, j'ai ceci:  
 Checking for scandir entry type... dirent
et toi ?[/citation]
 
Je test...

Reply

Marsh Posté le 20-05-2006 à 13:03:10   

Reply

Marsh Posté le 20-05-2006 à 13:38:15    

Code :
  1. Checking for scandir entry type... dirent


 
Daelstorm à reussi a permettre la compilation à nouveau grâce à se patch :

diff -u museek+-0.1.8/muscons/scandir.py.orig museek+-0.1.8/muscons/scandir.py
--- museek+-0.1.8/muscons/scandir.py.orig       2005-08-18 12:40:42.000000000 +0200
+++ museek+-0.1.8/muscons/scandir.py    2006-05-19 20:05:36.000000000 +0200
@@ -38,7 +38,7 @@
         if conf.CheckCHeader('ndir.h'):
             sys_h.write('#include <ndir.h>\n')
             ndir = 1
-    if conf.CheckFunc('scandir', 'C++'):
+    if conf.CheckFunc('scandir', ''):
         sys_h.write('#define HAVE_SCANDIR 1\n')
         conf.CheckScandirType(sys_h, dirent, sysndir, sysdir, ndir)
     else:


 
Mais du coup museek ne compile plus avec les vieux scons, et il n'a pas vraiment pourquoi ca marchait :D

Reply

Marsh Posté le 20-05-2006 à 14:04:04    

M300A a écrit :

Joseph Des ire, c'est effectivement en cours d'intégration dans Museeq :)


 
Ah bien ! Sinon j'aime bien certaines fonctionnalités, c'est bien plus pratique. Niveau bug, pour ajouter une image dans le profil, ca veut pas ouvrir la fenetre pour récuperer son image perso.
 
Et pour info , j'ai compilé avec scons 0.96.1-1ubuntu1.

Reply

Marsh Posté le 27-05-2006 à 18:30:22    

Ok.
 
Les problèmes ont été résolus :)
 
Du coup j'ai decider de vraiment demarrer un vrai projet, c'est pourquoi j'ai monté un Trac pour museek+  
 
http://museekplus.le-vert.net/
 
Toute personne voulant contribuer est toujours la bienvenue :)

Reply

Marsh Posté le 27-05-2006 à 18:31:19    

Par contre du coup on cherche des packageurs RPM, Gentoo et FreeBSD ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed