aMule Forum
French => fr_Bugs => Topic started by: neni on August 29, 2004, 10:34:33 AM
-
Bonjour,
Cela fait deux jours que j'assaie en vain de compiler amule-2 (RC5 et CVS) sous Mandrake (cooker, installée de base avec la mdk-10.1beta2) et je bloque toujours sur le même code qui ne passe pas au compilateur.
dans PrefsUnifiedDlg.cpp (struct PrefsPage):
wxSizer* (*m_function)(wxWindow*, bool = TRUE, bool = TRUE );
l'erreur de compilation:
error: default arguments are only permitted for function parameters
N'étant pas un connaisseur du C++, je seche un peu (c'est à dire completement).
Pour information, j'ai recompilé wxGTK-2.5.1 avec le spec téléchargé ici : http://starstones.free.fr/src/amule/ en ajoutant le patch du SRPM de Mandrake pour passer la compilation sous gcc-3.4 (un truc dans ~media~ qui ne passait pas).
La libcryptopp5 est en version 5.2.1
Si vous aviez une idée ou un piste à me proposer pour compiler en gcc 3.4...
Merci.
NB: je vais quant même essayer en gcc 3.3.4
-
Bjr,
Un grosse partie du code n'était pas compatible avec gcc-3.4, ça s'arrange petit a petit sur le CVS :)
Mais il reste de temps en temps quelques pb, notament car chaque dev n'a pas gcc-3.4 pour tester ses modifs
Pour l'instant, le mieux est d'utiliser le 3.3 qui marche sans pb.
Note: avec amule CVS tu peut utiliser wx-2.5.1 + GTK2 + unicode qui marche bien
Thepolish
-
re,
Hetfield vient de fixer le pb, essaye avec le CVS snapshot de lundi (demain)
Surtout n'hesite pas à reporter les pb avec gcc-3.4, ça aide bcp :)
Thepolish
-
Merci pour cette réponse rapide.
Je vais donc attendre demain pour recuperer l'archive du CVS.
Je reporterai les problèmes que je rencontre (et si j'ai le temps de me remettre au C++, regarder plus attentivement le code).
-
Avec le fichier aMule-cvs-20040830.tar.bz2, la compilation se déroule sans problème.
(pour rappel: GCC-3.4.1, wxGTK-2.5.1 (fait avec le spec de starstones.free.fr et le patch de Mdk pour GCC-3.4) et enfin cryptopp-5.2.1 de Mandrake (avec également leur patch du SRPMS))
Il subsiste quelques warning (principalement liés à CryptoPP.h), mais rien de méchant a priori.
Le lancement se déroule sans problème, l'integration de l'icone à la barre des taches se fait sans soucis (gnome 2.6) et tout semble bien fonctionner (même plutôt très bien).
Bref, vous avez fait un sacré boulot et je vous en remercie beaucoup.
Petite question: Est-il possible aujourd'hui de de compiler amule avec les bibliothèques standards de Mandrake (libwxgtk2.5 ou libwxGTK2ud-xxx) ou faut-il toujours passer par des versions modifiées?
-
slt,
La libcryptopp n'est + necessaire pour le cvs puisqu'elle est intégré dans le fichier cryptopp.cpp.
Pour les librairies 2.5 de mandrake, j'ai pas essayé...
Par contre, le cvs marche bien avec 2.5.1 + GTK2 + Unicode
slts
Thepolish
-
Cela fonctionne avec les bibliothèques MDK standards.
Les accents ne passent pas pas sur les onglets, mais partout ailleurs.
Je n'ai pas essayé de compiler avec amulecmd, amulecmdgui, webserver et webservergui.
Etrangement, amule semble plus efficace sur ma machine sans l'option --enable-optimise (le hasard des connexions pendant les tests?).
-
re,
--enable-optimise just add -O2
Il reste un pb avec le cvs actuel: le fichier cryptopp est importé de crypto++ lib, qui est une grosse merde avec les flags d'optimization...
Actuellement, avec aMule (avec gcc 3.3) -O2 passe, -O3 non à cause de ce fichier
Hetfield n'arrive pas a faire passer -O2 avec son gcc-3.4, d'ou peut être le fait que ca marche moins bien chez toi avec -O2.
Tu peux essayer -Os, ca marche pratiquement toujours.
Faut vraiment qu'on arrive a ce débarasser de ces pb de cryptopp :(
Merci pour toutes les infos que tu postes :)
The polish
-
Je suppose que gcc-3.4 (la version de mandrake?) est très susceptible au flags de compilation. Lorsque je compile amule sans flags, je n'ai pas de problème.
Par contre, lorsque j'utilise rpmbuild avec les flags standards de MDK (-O2 -march=i586 -mtune=pentiumpro ...), gcc me fait souvent un joli segfault interne (pas lié à cryptopp a priori). Et s'il ne le fait pas, amule installé avec le RPM ne fonctionne pas (blocage avec 100% du CPU utilisé après affichage de l'interface). Il faudrait que je refabrique ce RPM pour verifier que c'est bien systèmatique et que je teste alors avec différent flags.
Je viens de retester un nouveau RPM. Effectivement, CryptoPP fait des siennes avec les flags mdk:
CryptoPP.cpp:4073: void CryptoPP::AtomicDivide(CryptoPP::word*, const CryptoPP::word*, const CryptoPP::word*): Assertion `memcmp(P, A, 4*WORD_SIZE)==0' failed.
Aborted (core dumped).
Sinon, le cvs d'aujourd'hui fonctionne parfaitement avec les libs de Mandrake (wxgtk-2.5) lorsqu'il est compilé sans optimisation.
-
re,
"Et s'il ne le fait pas, amule installé avec le RPM ne fonctionne pas (blocage avec 100% du CPU utilisé après affichage de l'interface)"
Ca c'est le fichier cryptopp :) idem avec gcc 3.3
-Os devrait passer, march et mcpu aussi, pas fomit-frame-pointer
The polish
-
Effectivement, c'est bien fomit-frame-pointer qui posait problème (vu où plantait CryptoPP, je supposais bien que c'était une question d'alignement mémoire).
Pour ceux, comme moi, qui sont sous mandrake cooker et qui ont des problèmes avec les bibliothèques compilées pour amule (wxgtk), voici un lien vers un RPM qui semble fonctionner (en attendant la RC6):
http://neni.free.fr/amule-cvs-1mdk.i586.rpm
Note: c'est la première fois que je touche aux RPM et aux fichiers spec, autant dire que ce n'est pas du joli à l'interieur.
-
sous cooker avec amule cvs j'ai une erreur au make
make[2]: Entering directory `/home/jrm/amule-cvs/po'
rm -f en_GB.gmo && : -c --statistics -o en_GB.gmo en_GB.po
mv: ne peut évaluer `t-en_GB.gmo': No such file or directory
il efface le fichier dont il a ensuite besoin ?
edit: neni, ton rpm marche bien, il y a juste un problème et je sais pas si c'est lié à GTK2, à savoir que le petit triangle pour déployer les répertoires partagés n'apparaisent pas ou alors 1 ou 2.
-
Bjr,
JRM, je comprends pas ???
Erreur make puis "edit: neni, ton rpm marche bien", qu'est ce qui marche et qu'est ce qui marche pas ? :)
Pour le make, j'ai pas ce genre d'erreur, je verifierai ce soir a la maison ...
Thepolish
-
J'ai voulu éviter de faire un double post ^^
Le rpm de neni marche bien (sauf le problème d'affichage signalé), la compilation du cvs non.
-
On dirait qu'il te manque /usr/bin/msgfmt
Ca vient de quelquepart de chez toi apparemment
Aucun pb avec le cvs de mon coté:
**** General Libraries and Tools ****
Should ccache support be enabled? no
Libraries aMule will use to build:
wxWidgets 2.5.1
GTK 2.2.4
bash-2.05b$ cd po
bash-2.05b$ make
rm -f en_GB.gmo && /usr/bin/msgfmt -c --statistics -o en_GB.gmo en_GB.po
0 message traduit, 459 messages non-traduits.
rm -f es.gmo && /usr/bin/msgfmt -c --statistics -o es.gmo es.po
1007 messages traduits.
rm -f de.gmo && /usr/bin/msgfmt -c --statistics -o de.gmo de.po
1283 messages traduits.
rm -f fr.gmo && /usr/bin/msgfmt -c --statistics -o fr.gmo fr.po
1315 messages traduits.
rm -f it.gmo && /usr/bin/msgfmt -c --statistics -o it.gmo it.po
1315 messages traduits.
rm -f ko.gmo && /usr/bin/msgfmt -c --statistics -o ko.gmo ko.po
355 messages traduits, 104 messages non-traduits.
rm -f pl.gmo && /usr/bin/msgfmt -c --statistics -o pl.gmo pl.po
1327 messages traduits.
rm -f et_EE.gmo && /usr/bin/msgfmt -c --statistics -o et_EE.gmo et_EE.po
351 messages traduits, 108 messages non-traduits.
rm -f ru.gmo && /usr/bin/msgfmt -c --statistics -o ru.gmo ru.po
456 messages traduits.
rm -f bg.gmo && /usr/bin/msgfmt -c --statistics -o bg.gmo bg.po
389 messages traduits, 375 messages non-traduits.
rm -f es_MX.gmo && /usr/bin/msgfmt -c --statistics -o es_MX.gmo es_MX.po
348 messages traduits, 111 messages non-traduits.
rm -f pt_BR.gmo && /usr/bin/msgfmt -c --statistics -o pt_BR.gmo pt_BR.po
990 messages traduits, 3 traductions approximatives.
rm -f gl.gmo && /usr/bin/msgfmt -c --statistics -o gl.gmo gl.po
514 messages traduits, 263 messages non-traduits.
rm -f eu.gmo && /usr/bin/msgfmt -c --statistics -o eu.gmo eu.po
1315 messages traduits.
rm -f nl.gmo && /usr/bin/msgfmt -c --statistics -o nl.gmo nl.po
1272 messages traduits.
rm -f ar.gmo && /usr/bin/msgfmt -c --statistics -o ar.gmo ar.po
695 messages traduits, 233 messages non-traduits.
rm -f fi.gmo && /usr/bin/msgfmt -c --statistics -o fi.gmo fi.po
833 messages traduits.
rm -f zh_CN.gmo && /usr/bin/msgfmt -c --statistics -o zh_CN.gmo zh_CN.po
881 messages traduits, 74 messages non-traduits.
rm -f zh_TW.gmo && /usr/bin/msgfmt -c --statistics -o zh_TW.gmo zh_TW.po
881 messages traduits, 74 messages non-traduits.
rm -f da.gmo && /usr/bin/msgfmt -c --statistics -o da.gmo da.po
741 messages traduits, 139 messages non-traduits.
rm -f hu.gmo && /usr/bin/msgfmt -c --statistics -o hu.gmo hu.po
1272 messages traduits.
rm -f ca.gmo && /usr/bin/msgfmt -c --statistics -o ca.gmo ca.po
1298 messages traduits, 1 traduction approximative, 16 messages non-traduits.
rm -f it_CH.gmo && /usr/bin/msgfmt -c --statistics -o it_CH.gmo it_CH.po
851 messages traduits, 198 traductions approximatives, 201 messages non-traduits .
rm -f pt_PT.gmo && /usr/bin/msgfmt -c --statistics -o pt_PT.gmo pt_PT.po
833 messages traduits.
rm -f hr.gmo && /usr/bin/msgfmt -c --statistics -o hr.gmo hr.po
882 messages traduits.
bash-2.05b$
Thepolish
-
Pour ton problème de compilation, ce n'est pas gettext qu'il te manque?
Le RPM bricolé que j'ai mis en lien, c'est vraiment pour dépanner si quelqu'un avait le même problème que moi. J'ai repris le spec fait par thePolish, enlevé deux trois trucs qui m'embêtaient et ajouter deux lignes (inutiles pour le aMule, mais necessaire pour que rpmbuild me sorte quelque chose sans dire de gros mots). Je découvre le RPM... Je n'ai donc rien fait sinon d'essayer de faire un RPM avec le CVS (en enlevant des bouts).
Sinon, pour revenir à la compile avec la lib wxgtk-2.5.x de mandrake, cela fait un jour (et huit heures) que aMule tourne avec sans plantage avec une utilisation CPU de 4 à 8% (amd 1500+, avec tout ce qu'il ne faut pas pour économiser du cpu dans les préferences). A priori, pas de problème de mémoire. Bref, il marche très bien. Reste le problème des accents dans les onglets et celui signalé plus haut. Mais c'est peut-être lié aux bibliothèques de Mandrake.