View previous topic :: View next topic |
Author |
Message |
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Wed Oct 10, 2007 7:13 pm Post subject: [EBUILD] SFML - Simple and Fast Multimedia Library |
|
|
Salut,
http://sfml.sourceforge.net
Code: | SFML est une API portable et facile à utiliser, écrite en C++. Vous pouvez la voir comme une alternative orientée objet à la SDL.
SFML est composée de nombreux modules pour coller parfaitement à vos besoins. Vous pouvez utiliser la SFML en tant que système de fenêtrage minimal pour s'interfacer avec OpenGL, ou en tant que bibliothèque multimédia riche en fonctionnalités pour construire des jeux vidéo ou des programmes interactifs. |
ebuild :
http://opensvn.csie.org/trizorepo/
Vous pouvez commenter un peu cet ebuild ? (C'est mon premier, donc j'ai surement des choses à changer)
Merci,
ps : Ha oui je sais pas quoi mettre en warning si on active toute les useflags : noaudio, novideo, nonetwork. Pour dire que ça va installer presque rien de la librairie. |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Wed Oct 10, 2007 10:30 pm Post subject: |
|
|
hello,
tu peux ptetre remplacer les noaudio & cie par des IUSE defaults avec EAPI="1", cf http://archives.gentoo.org/gentoo-dev/msg_148307.xml
tu devrais ptetre mettre au lieu de noaudio/nonetwork & cie des useflag plus spécifiques genre sndfile, openal, etc.
de manière générale, met des quotes ("") autour de chaque variable de répertoire que l'utilisateur peut changer ($S,$D,$WORKDIR), sans quote si y'a un espace, ça pète
la license est invalide je crois (fais 'repoman full' dans le répertoire de l'ebuild, il te sortira plein de warnings facile à corriger)
le epause est moche ;p
les die dans le src_compile pour emake, je les ferais plus parlants, genre 'die "emake toto failed"' pour qu'on sache ce qui a foiré
pour le src_install, au lieu d'utiliser cp, utilise plutot insinto + doins
pourquoi installer les libs dans /lib ? et pas /usr/lib ? d'ailleurs, pour lib, faut inheriter multilib et utiliser la fonction get_libdir sinon ça foire avec le multilib strict (l'idée est de pouvoir avoir un système 32 bits & 64 bits en parallèle sur un amd64 par ex., et donc /usr/lib est mal défini dans ce cas)
voilà pour ces commentaires vites faits, hésite pas à poser des questions si je suis pas clair (et c'est probablement le cas) |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Thu Oct 11, 2007 6:14 am Post subject: |
|
|
D'abord merci de t'être penché dessus. Je vais relire tout ça cette après midi parce que c'est vrai qu'il y a quelques trucs que je n'intercepte pas |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Thu Oct 11, 2007 12:56 pm Post subject: |
|
|
Quote: |
tu devrais ptetre mettre au lieu de noaudio/nonetwork & cie des useflag plus spécifiques genre sndfile, openal, etc.
|
La librarie est composée de 5 sous librairies : sfml-graphics, sfml-window, sfml-system, sfml-network et sfml-audio.
sfml-audio a pour dépendances openal et libsndfile.
sfml-graphics lui c'est devil freetype et zlib.
Et on ne peux pas compiler sfml-audio sans les deux à première vu. Donc je pense que c'est mieux de spécifier les "modules" de SFML, plutot que le nom des dépendances non ?
Quote: |
de manière générale, met des quotes ("") autour de chaque variable de répertoire que l'utilisateur peut changer ($S,$D,$WORKDIR), sans quote si y'a un espace, ça pète
|
J'ai fais des quotes autour des chemins qui utilisent les variables. C'est ce qu'il fallait faire ?
Quote: |
la license est invalide je crois (fais 'repoman full' dans le répertoire de l'ebuild, il te sortira plein de warnings facile à corriger)
|
Hmm, la commande n'a pas fonctionnée
Code: | Repoman is unable to determine PORTDIR or PORTDIR_OVERLAY from the current
working directory.
|
J'utilise paludis, ça viens peut-être de là, je lirais le man après ce post.
Quote: |
le epause est moche ;p
|
Je l'ai supprimé, Laurent (le developpeur de SFML) qu'il ne trouvait pas ça nécessaire de mettre un warning si on ne compilait aucun des modules audio, graphics, window et network.
Quote: |
les die dans le src_compile pour emake, je les ferais plus parlants, genre 'die "emake toto failed"' pour qu'on sache ce qui a foiré
|
Fais.
Quote: |
pour le src_install, au lieu d'utiliser cp, utilise plutot insinto + doins
|
Fais pour les includes.
Quote: |
pourquoi installer les libs dans /lib ? et pas /usr/lib ? d'ailleurs, pour lib, faut inheriter multilib et utiliser la fonction get_libdir sinon ça foire avec le multilib strict (l'idée est de pouvoir avoir un système 32 bits & 64 bits en parallèle sur un amd64 par ex., et donc /usr/lib est mal défini dans ce cas)
|
J'ai pas du tout compris ce passage.
Quote: |
voilà pour ces commentaires vites faits, hésite pas à poser des questions si je suis pas clair (et c'est probablement le cas) |
Merci pour ton aide. |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Thu Oct 11, 2007 2:52 pm Post subject: |
|
|
Quote: | LICENSE
This should be a space delimited list of licenses that the package falls under. This _must_ be set to a matching license in /usr/portage/licenses/. If the license does not exist in portage yet, you must add it first. |
source : http://gentoo-wiki.com/MAN_ebuild_5
Donc j'ai regardé dedan, il y a que ZLIB et pas ZLIB/PNG ni PNG.
Donc je doit mettre ZLIB ?
Bon sinon j'ai pas mal modifié l'ebuild là.
J'utilise dolib.so pour les libs.
Par contre pour les includes il semble que doins Repertoire ne fonctionne pas. Donc j'ai essayé doins avec un * ça fonctionne pas non plus. |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Thu Oct 11, 2007 5:10 pm Post subject: |
|
|
TrizoLakai wrote: |
La librarie est composée de 5 sous librairies : sfml-graphics, sfml-window, sfml-system, sfml-network et sfml-audio.
sfml-audio a pour dépendances openal et libsndfile.
sfml-graphics lui c'est devil freetype et zlib.
Et on ne peux pas compiler sfml-audio sans les deux à première vu. Donc je pense que c'est mieux de spécifier les "modules" de SFML, plutot que le nom des dépendances non ?
|
dans ce cas là pourquoi pas, je croyais qu'on pouvait désactiver le support pour chaque truc un par un
Quote: |
Quote: |
de manière générale, met des quotes ("") autour de chaque variable de répertoire que l'utilisateur peut changer ($S,$D,$WORKDIR), sans quote si y'a un espace, ça pète
|
J'ai fais des quotes autour des chemins qui utilisent les variables. C'est ce qu'il fallait faire ?
|
parfait, juste un truc :
ça va te faire "*" no such file ou directory à l'install, l'étoile ne passe pas les quotes
ce que tu veux c'est:
Quote: |
Quote: |
la license est invalide je crois (fais 'repoman full' dans le répertoire de l'ebuild, il te sortira plein de warnings facile à corriger)
|
Hmm, la commande n'a pas fonctionnée
Code: | Repoman is unable to determine PORTDIR or PORTDIR_OVERLAY from the current
working directory.
|
J'utilise paludis, ça viens peut-être de là, je lirais le man après ce post.
|
faut que tu mettes ton overlay dans PORTDIR_OVERLAY dans le make.conf pour qu'il le trouve en effet
Quote: |
Quote: |
pourquoi installer les libs dans /lib ? et pas /usr/lib ? d'ailleurs, pour lib, faut inheriter multilib et utiliser la fonction get_libdir sinon ça foire avec le multilib strict (l'idée est de pouvoir avoir un système 32 bits & 64 bits en parallèle sur un amd64 par ex., et donc /usr/lib est mal défini dans ce cas)
|
J'ai pas du tout compris ce passage.
|
comme t'utilises dolib c'est plus un souci maintenant
en fait faut pas hardcoder "lib" mais choper sa valeur avec $(get_libdir), qui renvoie lib sur x86 ou lib64 sur x86_64 par exemple.
pour le doins repertoire : tu veux probablement faire doins -r (pour récursif)
pour la license, faut voir quelle license il utilise, je sais pas ce qu'est la license PNG :/
si y'a pas la license dans portage/licenses, rajoute la dans ton overlay : à la racine dans le répertoire licenses comme c'est fait dans portage et c'est bon je pense |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Thu Oct 11, 2007 5:12 pm Post subject: |
|
|
Ha autre chose, ton src_unpack est celui par défaut, tu peux donc le virer complètement
En plus faut pas quoter ${A} cette fois justement, unpack peut prendre plusieurs arguments et c'est fait pour |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Thu Oct 11, 2007 5:32 pm Post subject: |
|
|
Quote: |
ça va te faire "*" no such file ou directory à l'install, l'étoile ne passe pas les quotes
ce que tu veux c'est:
|
Oui merci
Quote: |
Quote: |
Quote: |
la license est invalide je crois (fais 'repoman full' dans le répertoire de l'ebuild, il te sortira plein de warnings facile à corriger)
|
Hmm, la commande n'a pas fonctionnée
Code: | Repoman is unable to determine PORTDIR or PORTDIR_OVERLAY from the current
working directory.
|
J'utilise paludis, ça viens peut-être de là, je lirais le man après ce post.
|
faut que tu mettes ton overlay dans PORTDIR_OVERLAY dans le make.conf pour qu'il le trouve en effet
|
Ok je vais essayer ça alors.
Quote: |
pour le doins repertoire : tu veux probablement faire doins -r (pour récursif)
|
Changé.
Quote: |
pour la license, faut voir quelle license il utilise, je sais pas ce qu'est la license PNG :/
si y'a pas la license dans portage/licenses, rajoute la dans ton overlay : à la racine dans le répertoire licenses comme c'est fait dans portage et c'est bon je pense |
Je verra ça avec lui alors.
Par contre pour les libs j'ai pas les liens d'un .so au .so.1 c'est grave pour le linkage après ou pas ?
Code: | localhost trizolakai # ls /usr/lib64 | grep libsfml
libsfml-graphics.so.1
libsfml-system.so.1
libsfml-window.so.1
localhost trizolakai # |
Merci encore. |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Thu Oct 11, 2007 6:10 pm Post subject: |
|
|
TrizoLakai wrote: |
Par contre pour les libs j'ai pas les liens d'un .so au .so.1 c'est grave pour le linkage après ou pas ?
Code: | localhost trizolakai # ls /usr/lib64 | grep libsfml
libsfml-graphics.so.1
libsfml-system.so.1
libsfml-window.so.1
localhost trizolakai # |
|
ldconfig te le fait pas tout seul ?
sinon essaye de faire un programme bidon et compile le avec '-lsfml-graphics' et regarde si ça marche |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Fri Oct 12, 2007 5:33 pm Post subject: |
|
|
J'ai tappé à la main et non il ne fait pas les liens.
J'ai essayé avec un programme :
Code: | ~/de % g++ -o TT test.cc -lsfml-graphics -lsfml-window -lsfml-system °trizolakai°
/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml-[color=green]graphics[/color]
collect2: ld a retourné 1 code d'état d'exécution |
Et ensuite en faisant ln -sf libsfml-graphics.so.1 libsfml-graphics.so
Code: | ~/de % g++ -o TT test.cc -lsfml-graphics -lsfml-window -lsfml-system °trizolakai°
/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml-[color=green]window[/color]
collect2: ld a retourné 1 code d'état d'exécution
~/de % |
Donc ouai il y a bien problème.
J'ai essayé de passé de dolib.so à dolib ça ne change rien. |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Fri Oct 12, 2007 7:32 pm Post subject: |
|
|
hé mais attends, ya un support pour "make install" qui fait les liens j'ai l'impression
le seul souci c'est qu'on peut pas lui spécifier de DESTDIR, ça serait ptetre mieux de patcher et d'envoyer aux devs le patch pour qu'il supporte.
Ex:
Code: |
install:
@($(CP) $(LIBPATH)/$(LIB).$(VERSION) /usr/lib && $(LN) $(LNFLAGS) /usr/lib/$(LIB).$(VERSION) /usr/lib/$(LIB)) |
pourrait être :
Code: | install:
@($(CP) $(LIBPATH)/$(LIB).$(VERSION) $(DESTDIR)/usr/lib && $(LN) $(LNFLAGS) /usr/lib/$(LIB).$(VERSION) $(DESTDIR)/usr/lib/$(LIB)) |
plus faudrait modifier pour pas qu'il envoie dans lib, mais dans un répertoire qu'on peut modifier, genre :
et remplacer lib par $(libdir)
puis dans l'ebuild :
Code: |
emake DESTDIR="${D}" libdir=$(get_libdir) install || die "emake install failed"
|
dernier ptit truc, pour le SRC_URI, mets plutot mirror://sourceforge/sfml/SFML-${PV}-sdk-linux.tar.gz
juste histoire qu'il télécharge ça sur un mirroir près de chez les gens |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Fri Oct 12, 2007 7:47 pm Post subject: |
|
|
Pourquoi ne pas le faire dans l'ebuild le linkage ?
(SRC_URI changé. |
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Fri Oct 12, 2007 9:55 pm Post subject: |
|
|
TrizoLakai wrote: | Pourquoi ne pas le faire dans l'ebuild le linkage ?
|
bah tu peux faire un dosym aussi alors, mais c'est pénible, si tu peux te contenter d'un make install c'est d'autant plus simple et t'auras pas tout à revérifier à chaque nouvelle version |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Sat Oct 13, 2007 9:08 am Post subject: |
|
|
La fonction get_libdir me renvois rien.
J'ai essayé en faisant un eerror $(get_libdir) est j'ai juste
*
Donc mes symlink sont erronés avec cette commande :
Code: | dosym "$(get_libdir)/libsfml-system.so.1" "$(get_libdir)/libsfml-system.so" |
|
|
Back to top |
|
|
Alexis Developer
Joined: 25 Jun 2004 Posts: 241
|
Posted: Sat Oct 13, 2007 11:54 am Post subject: |
|
|
faut rajouter "multilib" à la ligne d'inherit
et $(get_libdir) renverra lib ou lib64, donc tu échappes pas à mettre /usr devant |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Sat Oct 13, 2007 12:25 pm Post subject: |
|
|
Ok ça fonctionne.
Bon je pense qu'on approche de la fin là. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|