Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[EBUILD] SFML - Simple and Fast Multimedia Library
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Wed Oct 10, 2007 7:13 pm    Post subject: [EBUILD] SFML - Simple and Fast Multimedia Library Reply with quote

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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Wed Oct 10, 2007 10:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Thu Oct 11, 2007 6:14 am    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Thu Oct 11, 2007 12:56 pm    Post subject: Reply with quote

Alexis wrote:

tu peux ptetre remplacer les noaudio & cie par des IUSE defaults avec EAPI="1", cf http://archives.gentoo.org/gentoo-dev/msg_148307.xml



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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Thu Oct 11, 2007 2:52 pm    Post subject: Reply with quote

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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Thu Oct 11, 2007 5:10 pm    Post subject: Reply with quote

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 :

Code:

dodoc "${S}/doc/*"

ça va te faire "*" no such file ou directory à l'install, l'étoile ne passe pas les quotes
ce que tu veux c'est:
Code:

dodoc "${S}/doc/"*


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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Thu Oct 11, 2007 5:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Thu Oct 11, 2007 5:32 pm    Post subject: Reply with quote

Quote:

Code:

dodoc "${S}/doc/*"

ça va te faire "*" no such file ou directory à l'install, l'étoile ne passe pas les quotes
ce que tu veux c'est:
Code:

dodoc "${S}/doc/"*


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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Thu Oct 11, 2007 6:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Fri Oct 12, 2007 5:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Fri Oct 12, 2007 7:32 pm    Post subject: Reply with quote

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 :

Code:

libdir=lib


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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Fri Oct 12, 2007 7:47 pm    Post subject: Reply with quote

Pourquoi ne pas le faire dans l'ebuild le linkage ?

(SRC_URI changé.
Back to top
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Fri Oct 12, 2007 9:55 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Sat Oct 13, 2007 9:08 am    Post subject: Reply with quote

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
View user's profile Send private message
Alexis
Developer
Developer


Joined: 25 Jun 2004
Posts: 241

PostPosted: Sat Oct 13, 2007 11:54 am    Post subject: Reply with quote

faut rajouter "multilib" à la ligne d'inherit


et $(get_libdir) renverra lib ou lib64, donc tu échappes pas à mettre /usr devant
Back to top
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Sat Oct 13, 2007 12:25 pm    Post subject: Reply with quote

Ok ça fonctionne.

Bon je pense qu'on approche de la fin là.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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