Shingo
Bonjour, je viens demander votre aide et votre lumière concernant un problème que je rencontre sous Fedora 18. Pour tout vous expliquer, je développe actuellement un jeu vidéo (un shoot'em up 2D) pour Windows et Linux disponible en version beta 0.3. A ce stade de développement, je me suis rendu compte que la plupart des utilisateurs n'étaient pas trop du genre à compiler eux mêmes certaines dépendances, ce que je comprend tout à fait. Le jeu dépend de SFML2, bien que j'ai créer un paquet RPM, j'ai finalement décidé d'inclure SFML2 dans le binaire afin de ne pas devoir imposer la compilation de cette dépendance pour les autres distributions. J'ai donc préparer un binaire parfaitement autonome mais sous Fedora 18, je rencontre un problème puisque le jeu requière libGC 2.17 tandis que libGC 2.16 est fourni d'office et je n'ai pas trouvé une méthode facile et rapide pour le mettre à jour. En revanche, sous Ubuntu, pas de soucis, le jeu se lance parfaitement sur une installation toute fraiche dans une machine virtuelle. Malheureusement, je ne peux pas inclure libGC dans le binaire, cela n'aurait pas de sens et pourrait rendre instable le jeu.
Merci pour votre aide.
madko
Bonjour,
je ne trouve aucun paquet libgc sur Fedora. SFML2 n'en parle pas non plus.
Shingo
Salut, merci pour ta réponse. Tu ne trouveras aucune information au sujet de SFML car normalement, les binaires ne doivent pas être linké avec la lib. C'est à utiliser dans des cas spécifiques un peu comme le mien. Je sais pas quel élément dépend de libGC 2.17. Je pense que c'est une dépendance en chaine car je dois inclure pas mal de dépendances comme Glew, JPEG, freetype, sndfile, openal, xrandr, x11, openGL etc.
Refuznik
La glibc-2.17 est inclus dans la F19 normalement.
Le problème si tu dois utiliser une distribution antérieur c'est que la glibc va demander à mettre à jour aussi le filesystem ce qui ma foi est un peu lourd.
Shingo
J'ai tenté de supprimer la dépendance avec glibc 2.17 qui provient d'openal et jpeg. Seul soucis, le jeu a besoin de libjpeg8 pour tourner. Hors, je ne trouve aucun rpm à installer sur Fedora 18. Donc je reviens à la case départ.
madko
libgc et glibc sont 2 choses différentes. Pour la libjpeg, sous Fedora on utilise la libjpeg-turbo qui est compatible. Tu as l'air de parler de dépendance RPM et non binaire, ton programme il marche si tu le copie/installe à la main sur une Fedora?
Shingo
Non, il ne marche pas car il demande une dépendance : libjpeg.so.8. J'ai bien installé libjpeg-turbo mais je n'ai pas ce fichier dans mes libs. Du coup je me suis dis que le mieux était de compiler statiquement libjpeg dans le binaire afin que sous Fedora on ne rencontre pas de soucis, sauf que libjpeg.so.8 require libGC 2.17. Tout le problème est là. Donc s'il était possible d'avoir ce libjpeg.so.8, je n'aurais pas besoin de linker statiquement le binaire et tout le monde serait content :-o
madko
Et tu le compile sous quoi ton programme? sous quel environnement?
Shingo
Je compile avec GCC 4.8, Netbeans et le tout sous ArchLinux x86_64.
Shingo
Je pense que la seule façon de faire tourner le jeu sous Fedora serait que je le compile dessus afin de pas dépendre de librairies trop récentes ou attendre la F19. Car si je décide de compiler SFML2 sous Fedora, de créer un RPM et de lier dynamiquement chaque librairie, le jeu se lance sans problème. Je ne vois que cette solution en l'état, ou je simplifie le tout en installant Fedora sur une machine (non virtuel) et que je compile gentiment le tout 🙂
madko
Installe une Fedora dans une VM et compile dessus. Sinon est-ce qu'il y a mock sous ArchLinux? C'est un projet Fedora qui permet de créer des chroot de Fedora dans des versions précises pour compiler les RPM. Très pratique pour ton problème.
Shingo
Oui, Mock existe pour ArchLinux. Je vais aller me renseigner sur son utilisation. Merci
Shingo
Finallement, j'ai pris le problème à l'envers. J'ai installé la version 6 libjpeg turbo et je vais créer un profil de compilation pour Fedora avec cette version.
Shingo
J'ai passé le topic en résolu. J'ai pu compiler et préparer un RPM pour l'architecture x86_64. En revanche, j'aimerais présenter le jeu à la communauté Fedora. Y a t-il un endroit spécifique pour le faire ? Le forum jeux est réservé au dépannage...
Edouard_le_homard
dans le comptoir du libre je dirai