# [Jeux] écriture d'un ebuild pour slune

## Nectroom

Slune est un jeu d'action en 3D avec mode multijoueur et graphismes hallucinants tournant sous notre OS préferé 

comme sous windows et le tout sous license GNU [img:94f4e91827]http://forum.student.inpres.be/images/smiles/bave.gif[/img:94f4e91827] voir ici

Je me suis lancer dans l'ecriture d'un ebuild mais il reste des erreurs que je ne parviens pas a résoudre  :Sad: 

 *Quote:*   

> root@gen nec # emerge slune
> 
> aux_get(): (0) Error in app-games/slune-0.3.1 ebuild.
> 
>                Check for syntax error or corruption in the ebuild. (--debug)
> ...

 

```
# Copyright 2003 Nectroom

# Distributed under the terms of the GNU General Public License v2

inherit games

DESCRIPTION="A 3D action game with multiplayer mode and amazing graphics"

SRC_URI="http://oomadness.tuxfamily.org/downloads/Slune-with-deps-${PV}.tar.gz"

HOMEPAGE="http://oomadness.tuxfamily.org/fr/slune/"

KEYWORDS="x86"

SLOT="0"

LICENSE="GPL-2"

DEPEND="virtual/x11

   virtual/opengl

   >=dev-lang/python-2.2.2"

   >=media-libs/libsdl-1.2.5-r1

   >=media-libs/sdl-gfx-2.0.3

   >=media-libs/sdl-image-1.2.2

   >=media-libs/sdl-mixer-1.2.5-r1

   >=media-libs/sdl-net-1.2.4

   >=media-libs/sdl-sound-0.1.5

   media-libs/openal

   media-libs/libogg

   media-libs/libvorbis

   media-libs/pyvorbis

   media-libs/pyogg"

S=${WORKDIR}/${P}/

src_unpack() {

   unpack ${A}

}

src_compile() {

   python $S/setup.py build || die

}

src_install() {

   python $S/setup.py install

}

pkg_postinst() {

   einfo "*************************************"

   einfo "* How to launch Slune ?  :)         *"

   einfo "*                                   *"

   einfo "* Just type "slune" on a console    *"

   einfo "*************************************"

}
```

les maj de ce dernier seront ici.

merci de votre aide  :Smile: Last edited by Nectroom on Wed Apr 16, 2003 11:41 pm; edited 3 times in total

----------

## ghoti

Il y a déjà ça : *Quote:*   

>   >=dev-lang/pyton-2.2.2" 

 

Plutôt python !

Sinon, faire un emerge --debug comme il te le suggère ...

----------

## Nectroom

 *ghoti wrote:*   

> Il y a déjà ça : *Quote:*     >=dev-lang/pyton-2.2.2"  
> 
> Plutôt python !

 

oups  :Very Happy: 

----------

## Nectroom

voila l'ebuild est corrigé et testé  :Smile: 

vous pouvez le trouver ici

pour l'utiliser :

```
 1) # cd $PORTDIR_OVERLAY 

(PORTDIR_OVERLAY est defini dans /etc/make.conf)

2) # tar -zxvf /chemin/vers/slune-0.3.1.ebuild.tar.gz

3) # emerge slune

4) me donner vos impressions et les problèmes rencontré :) 
```

----------

## ghoti

Ca compile ...

Jusqu'ici, tout baigne  :Wink: 

----------

## Nectroom

mais tu vas avoir un prob  :Sad: 

 car il install directement au bonne endroit or c'est contraire à portage. 

je modifie l'ebuild tout de suite  :Smile: 

soit j'ecris un petit patch soit je le fait à coup de sed  :Very Happy: 

----------

## ghoti

En effet : l'install plante !

AMHA, tu devrais aussi rajouter un "|| die" dans src_instal(), sinon le step suivant s'exécute malgré tout et le package est marqué comme installé alors qu'il ne l'est pas.

----------

## Nectroom

ok merci du conseil  :Smile:   , je suis en train de contacter les developpeur pour demander leurs authorisation pour patcher leur archive

----------

## DuF

C'est sympa un ebuild pour slune, perso j'y jouais sans l'installer mais bon un petit jeu comme ça c'est bien sympa  :Smile: 

----------

## ghoti

 *Nectroom wrote:*   

> contacter les developpeur pour demander leurs authorisation

 En principe tu n'as pas besoin d'autorisation spéciale puisque c'est GPL !  :Smile: 

Mais naturellement, cela leur fera sûrement plaisir d'apprendre que quelqu'un tente de l'inclure dans la Gentoo !

----------

## Nectroom

tj pas de réponce des développeurs mais en attendant je réorganise l'ensemble sous la forme d'un ebuild par dépendances ( pour la faciliter des maj ).

----------

## DuF

Si jamais le modérateur du forum (dioxmat) passe dans le coin il te répondra car il fait partie du même groupe (nekeme) que ceux qui ont fait slune.

Si j'arrive à le croiser sur IRC je lui en parle si jamais il peut avoir des infos sur ce sujet, mais à mon avis il ne devrait pas y avoir de souci comme l'a dit ghoti !

----------

## Nectroom

J'ai finalement trouvé une solution pour ne pas devoir modiffier les archives. 

Ils sont enfin disponibles  :Smile:   => ici

si y il a des volontaires pour les tester  :Very Happy: 

```
# cd $PORTDIR_OVERLAY (PORTDIR_OVERLAY est definit dans /etc/make.conf)

# tar -zxvf /chemin/vers/archive/slune-ebuild.tar.gz

# ACCEPT_KEYWORDS="~x86" emerge slune

$ slune
```

----------

## ghoti

Ca marche !!!  :Smile:   :Smile: 

Désolé d'avoir répondu si tard mais tux est vraiment passionant dans son camion volant...

(bon, je n'en suis qu'au niveau neuneu ...  :Wink:  )

Mais AMHA, ton package est mûr pour être proposé sur bugzilla !

----------

## Nectroom

 *ghoti wrote:*   

> Ca marche !!!  
> 
> Désolé d'avoir répondu si tard mais tux est vraiment passionant dans son camion volant...
> 
> (bon, je n'en suis qu'au niveau neuneu ...  )
> ...

 

haaa comme ça fais du bien   :Very Happy: 

Merci beaucoup pour ton aide je vais  poster tout de suite sur bugzilla  :Smile: 

----------

## DuF

même résultat que ghoti, ça marche aussi, moi j'avais déjà joué un peu avant, y a d'ailleurs la mission5 que j'arrive pas à passer  :Smile: 

----------

## Nectroom

Vivement la suite  :Very Happy: 

les != ebuilds sont posté, il ne me reste qu'a attendre...

Encore un grand merci pour votre aide  :Smile: 

----------

## DuF

euh beh moi perso j'ai rien fait... c'est un peu toi qui a tout fait avec l'aide de ghoti donc merci à vous 2 plutôt !

----------

## Nectroom

disons que tu m'as aidé en les testant  :Smile: 

----------

## cscsnicko

Euh g testé et moi ca merde... 

En fait l'install a l'air de bien se passer et puis au moemnt de lancer le jeu:

> root@linor portage # slune

> Traceback (most recent call last):

>   File "/usr/bin/slune", line 124, in ?

>    import slune.gui, Tkinter

>  File "/usr/bin/../share/slune/gui.py", line 18, in ?

>    import Tkinter, socket, os, os.path

>  File "/usr/lib/python2.2/lib-tk/Tkinter.py", line 35, in ?

>    import _tkinter # If this fails your Python may not be configured for Tk

> ImportError: No module named _tkinter

> root@linor portage #

Je comprends pas trop la.... sniff   :Crying or Very sad: 

----------

## DuF

```
If this fails your Python may not be configured for Tk 
```

A priori un module tk pour python te manque, je ne sais pas lequel c'est mais il faut regarder de ce côté là !

Et il faudra peut être donc modifier l'ebuild en conséquence pour vérifier cette dépendance.

----------

## Nemerid

Bonne initiative que de faire cet ebuild. Concernant son installation, il me semble que portage gère l'installation avec distutils et qu'il n'est pas nécéssaire de faire le python setup.py, pour que ca marche.

Essaye de regarder dans d'autres paquets python, mais il y a largement moyen de simplifier ça encore.

----------

## Nectroom

 *DuF wrote:*   

> 
> 
> ```
> If this fails your Python may not be configured for Tk 
> ```
> ...

 

Dés que j'ai une gentoo sous la main je modifie l'ebuild. 

cscsnicko : saurais tu me donner la list des ebuilds python et tk qui sont emergé sur ta machine stp.  

je vais chercher de mon coté pour savoir des quel ebuild Tkinter depend. 

 *Nemerid wrote:*   

> Bonne initiative que de faire cet ebuild. Concernant son installation, il me semble que portage gère l'installation avec distutils et qu'il n'est pas nécéssaire de faire le python setup.py, pour que ca marche.
> 
> Essaye de regarder dans d'autres paquets python, mais il y a largement moyen de simplifier ça encore.

 

Oui j'y avais pensé mais mes tests n'ont pas été très réussi d'où j'ai prefere le mettre en dur.

Car j'ai l'impression que distutils ne passe pas l'argument --root=/var/tmp/portage/.....  à setup.py  

et dans mon cas  le setup.py en a absolument besoin car sinon j'ai des erreurs pour les données.

en plus il faut qu'il soit lancé en "python ./setup.py"  et non "python setup.py"

il y a eu pas mal de modification entre l'ebuild affiché en debut de sujet et les versions actuelles  :Smile: 

Mais merci pour ta remarque   :Very Happy: 

----------

## Nectroom

Voila j'ai trouvé  :Smile: 

En fait il faut que Python soit emergé avec un USE="+tcltk" 

et si ce n'est pas le cas  afficher un message d'erreur.

je vais aller m'inspirer de qqu ebuild  de dev-python  :Very Happy: 

----------

## Nectroom

Et voila c'est corrigé  :Smile:    j'ai mis l'archive à jour  :Smile: 

je vais de ce pas faire la modif sur bugzilla  :Smile: 

cscsnicko: si tu pouvais retester mon ebuild pour voir si ma procédure de verification est bonne ce serait vraimant sympa  :Smile: 

----------

## TGL

Argh! Pour moi, la compilation de dev-python/soya ne passe pas:

```
couic... pb résolu, pas besoin de surcharger ce thread, et puis c'est laid les erreurs de gcc...
```

Mon gcc2.95 aurait-il encore frappé ? Bon, j'irai faire un tour du côté de la ml de soya dès que j'aurai le temps.Last edited by TGL on Tue Apr 15, 2003 3:16 pm; edited 1 time in total

----------

## Nectroom

 *TGL wrote:*   

> Argh! Pour moi, la compilation de dev-python/soya ne passe pas 

 

les libsdl et opengl sont elles bien emergé ? 

mais c'est vrai que je ne l'ai pas testé sur du gcc 2.95  :Sad: 

c'est là qu'on se rencontre du boulot enorme qu'il y a derrière chaque ebuild  :Very Happy: 

----------

## TGL

 *Nectroom wrote:*   

> les libsdl et opengl sont elles bien emergé ? 

 

Ouais, de ce côté là pas de problème a priori, j'ai déjà qlqs jeux qui les utilisent.

 *Nectroom wrote:*   

> mais c'est vrai que je ne l'ai pas testé sur du gcc 2.95 
> 
> c'est là qu'on se rencontre du boulot enorme qu'il y a derrière chaque ebuild 

 

C'est clair que c'est du boulot, et surtout pour faire des ebuild qui marchent dans toute la variété des gentoo actuellement en service. Typiquement, les gens comme moi qui sont encore en gcc-2.95 font vraiment chier  :Very Happy: 

Et puis pas de bol, les archives de la ml soya sont en rade, va falloir que je m'abonne... bon je verrai tout ça ce soir.

----------

## cscsnicko

Ca y est ca marche le jeu est installé je peux le lancer mais je tourne a 6.2 images secondes. Pourtant g une geforce 2 les drivers nvidia sont installé, et par exemple tuxracer ou ut2003 tourne... Quand je lance le jeu voici ce que g:

root@linor slune # slune

Using OpenGL 1.3.1 NVIDIA 31.23

  - renderer : GeForce2 MX/AGP/3DNOW!

  - vendor : NVIDIA Corporation

  - maximum number of lights : 8

  - maximum number of clip planes : 6

  - maximum number of texture units : 2

  - maximum texture size : 2048 pixels

  - lock array extension found

* Py2Play * IDLER created !

open /dev/dsp: Is a directory

/dev/dsp: Is a directory

esd open sound failed.

No SDL: Fragment size must be a power of two

* Py2Play * creating active player Csnicko : ('Csnicko', 'linor.linworld.me', 36079)...

dealloc a model 0x845174c

dealloc an image

dealloc a coordsys object

* Py2Play * listen_port's thread finished !

* Soya3D * Quit...

root@linor slune #

Sniff... Pourkoi ke c tout lent ???

Merci en tout cas ppour cet ebuild...

----------

## Nectroom

 *TGL wrote:*   

> 
> 
> C'est clair que c'est du boulot, et surtout pour faire des ebuild qui marchent dans toute la variété des gentoo actuellement en service. Typiquement, les gens comme moi qui sont encore en gcc-2.95 font vraiment chier 
> 
> Et puis pas de bol, les archives de la ml soya sont en rade, va falloir que je m'abonne... bon je verrai tout ça ce soir.

 

Dans un sens ça pousse à bien construire l'ebuild donc c'est pas + mal  :Very Happy: 

tien si tu veux  de l'aide pour soya tu peu aussi passez par le forum de Nekeme ici  la partie sur slune n'est pas super active mais il suffit de poster pour les réveiller  :Very Happy: 

je vais aussi m'abonner à la ml ce sera + simple  :Very Happy: 

----------

## Nectroom

 *cscsnicko wrote:*   

> 
> 
> open /dev/dsp: Is a directory
> 
> /dev/dsp: Is a directory
> ...

 

je suppose que dans le jeux il n'y a pas de son  :Question: 

tu utilises des pilotes alsa ou oss ? ( même si ça n'a surement aucun rapport )

c'est quand même bizard comme bug  :Sad: 

----------

## cscsnicko

J utilise oss. Sous tuxracer g le son, mais sous ut ge l'ai pas.. En fin pour l'instant le son c pas grave ce qui m'inquiete c 6.2 images/secondes en fait...

----------

## Nectroom

 *cscsnicko wrote:*   

> J utilise oss. Sous tuxracer g le son, mais sous ut ge l'ai pas.. En fin pour l'instant le son c pas grave ce qui m'inquiete c 6.2 images/secondes en fait...

 

quand tu lances le jeux, ton cpu carbure ?

AMHA il doit y avoir une boucle infinie qui rallenti tout  :Sad: 

probablement des appels de sdl-sound.

Car ici j'ai un GF4 ti + les  drivers 31.23  aussi et ça passe à 48.9-52 FPS

avec une charge de 25-40% sur mon cpu (Athlon 1.4).

ou un problème de GLX  mais bon si Unreal tourne   :Shocked: 

----------

## TGL

Bon, j'ai trouvé la soluce pour mon problème de compil' avec gcc-2.95. (Facile en fait, c'est un problème d'include des headers freetype2 que j'avais déjà eu avec sawfish y'a pas très longtemps). 

J'ai proposé une solution sur le bug #19328, quelqu'un peut valider avec gcc-3.2 ? 

(Enfin, je vois pas pourquoi ça poserait problème, mais bon...)

----------

## Nectroom

Je viens de le valider avec  gcc 3.2.2  :Very Happy: 

Merci pour l'astuce  :Smile: 

----------

## TGL

Tiens, bah tant que j'y suis avec sed, tu devrais faire un petit:

```
sed -e s:"tempory":"temporary":
```

sur tes ebuilds  :Very Happy: 

Bon, et sinon, ça marche nickel chez moi. C'est chouette un jeu engagé  :Smile: 

----------

## Nectroom

 *TGL wrote:*   

> Tiens, bah tant que j'y suis avec sed, tu devrais faire un petit:
> 
> ```
> sed -e s:"tempory":"temporary":
> ```
> ...

 

Oups  :Very Happy:  , je vais le modifier en locale et à la prochaine maj ils seront corrigé. 

Car si je commence a rechanger encore une fois [edit]que je vient quand même de faire  :Very Happy:  [/edit] les archives sur bugzilla, les devels risquent de mal le prendre  :Very Happy: 

tien au passage personne ne sait comment et par qui sont écris les ChangLog   dans l'arbre de portage ?Last edited by Nectroom on Tue Apr 15, 2003 8:45 pm; edited 1 time in total

----------

## ghoti

 *cscsnicko wrote:*   

> J utilise oss. Sous tuxracer g le son, mais sous ut ge l'ai pas.. En fin pour l'instant le son c pas grave ce qui m'inquiete c 6.2 images/secondes en fait...

 J'ai eu le même problème la première fois que je l'ai lancé : c'était du genre 1FPS ...

Je crois qu'il y a un truc avec l'opengl.

Comme j'avais des problèmes avec des progs étrangers à Gentoo, j'avais émergé opengl-update (section x11-base) qui permet de passer de la version nvidia à la version xfree d'OpenGL.

Après avoir switché, ça a fonctionné, aussi bien en mode nvidia qu'en mode xfree (avec ce dernier, le son a du mal à suivre mais c'est peut-être un problème arts sous kde).

de 15 à 45 FPS suivant les scènes sur une Ti4200 et un celeron566@805.

Si tu as toujours des problèmes, essaye de redémarrer le serveur X entre les switches.

----------

## fb99

ghoti est-ce que tu pourrais poster ton xf86config, j'aimerais comparé la section carte graphique parce que j'ai aussi une ti4200 mais j'ai pas réussi à faire que X utilise les drivers nvidia

----------

## Nectroom

Pour ma ti4200 moi je prend celui-ci en simple  et celui-ci en dual

Mais ceux de Ghoti doivent être surement + complet   :Very Happy: 

----------

## jiba

Pour le FPS :

 - tu as quoi comme processeur ? Je crois que Slune demande pas mal de proç, et finalement assez peu de carte 3D...

 - tu peux désactiver le son dans les options, pour voir si c'est plus rapide

 - par défaut le FPS est verrouillé à 40, donc tu auras jamais plus (mais peut-etre moins).

(moi j'ai 80 FPS avec un P4 1,7 et une radéon M7 avec driver opensource assez lent...)

Pour le son, c'est OpenAL qui est utilisé ; normalement il se débrouille pour déléguer à ESD, OSS, ALSA, Arts, ...

----------

## ghoti

 *Nectroom wrote:*   

> Mais ceux de Ghoti doivent être surement + complet  

 

Détrompe-toi : je n'ai rien de plus que toi, sauf peut-être ceci, dans la section device de la carte :

```
Option       "NoLogo" "true"
```

Comme tu vois, ça fait toute la différence  :Wink:   :Very Happy: 

----------

## fb99

merci beaucoup Nectroom pour les XF86Config

----------

## Nectroom

Voila apres pas mal de temps et de modif  les ebuilds sont enfin été ajouté dans l'arbre officiel  :Smile: 

Encore merci pour Votre aide  :Smile: 

c'est actuelement la version  0.3.1 de slune qui est dans portage 

l'ebuild pour la 0.4.1 est deja écris mais etant donné le nombre de problème rencontré ici sur mes machines avec cette version,

je vais attendre la prochaine pour le poster.

----------

## DuF

C'est cool, je ne sais pas si tu l'as déjà fait, mais tu peux prévenir dans le forum gaming/players que l'ebuild est dispo et donc le jeu aussi !

----------

## alligator421

```

 ~ $ slune

Traceback (most recent call last):

  File "/usr/bin/slune", line 26, in ?

    import slune.globdef as globdef

  File "/usr/bin/../share/slune/globdef.py", line 20, in ?

    import soya.model as model, soya.soya3d as soya3d

  File "/usr/lib/python2.2/site-packages/soya/model.py", line 18, in ?

    import soya, soya.math3d as math3d, soya.soya3d as soya3d

  File "/usr/lib/python2.2/site-packages/soya/soya3d.py", line 174, in ?

    class Camera(soya._CObj, GraphicElement, soya.widget.Widget, _soya._Camera):

TypeError: type '_soya._Camera' participates in gc and is a base type but has inappropriate tp_free slot

~

```

----------

## Nectroom

Apres emerge ou directement en manuel avec la dernière version proposé sur le site officiel ?

Oui slune est plu trop suivis dans portage un peu de ma faute  :Sad: 

Si qqu veut reprendre la main...

----------

## jiba

C'est parce tu utilises Python 2.3... Pour que ça marche, il faut soit utiliser Python 2.2.x soit Soya >= 0.5 (la dernière version c'est le mieux).

----------

## alligator421

 *jiba wrote:*   

> C'est parce tu utilises Python 2.3... Pour que ça marche, il faut soit utiliser Python 2.2.x soit Soya >= 0.5 (la dernière version c'est le mieux).

 

```

~ python -v

# /usr/lib/python2.2/site.pyc matches /usr/lib/python2.2/site.py

import site # precompiled from /usr/lib/python2.2/site.pyc

# /usr/lib/python2.2/os.pyc matches /usr/lib/python2.2/os.py

import os # precompiled from /usr/lib/python2.2/os.pyc

import posix # builtin

# /usr/lib/python2.2/posixpath.pyc matches /usr/lib/python2.2/posixpath.py

import posixpath # precompiled from /usr/lib/python2.2/posixpath.pyc

# /usr/lib/python2.2/stat.pyc matches /usr/lib/python2.2/stat.py

import stat # precompiled from /usr/lib/python2.2/stat.pyc

# /usr/lib/python2.2/UserDict.pyc matches /usr/lib/python2.2/UserDict.py

import UserDict # precompiled from /usr/lib/python2.2/UserDict.pyc

# /usr/lib/python2.2/copy_reg.pyc matches /usr/lib/python2.2/copy_reg.py

import copy_reg # precompiled from /usr/lib/python2.2/copy_reg.pyc

# /usr/lib/python2.2/types.pyc matches /usr/lib/python2.2/types.py

import types # precompiled from /usr/lib/python2.2/types.pyc

# /usr/lib/python2.2/__future__.pyc matches /usr/lib/python2.2/__future__.py

import __future__ # precompiled from /usr/lib/python2.2/__future__.pyc

Python 2.2.3 (#1, Aug 26 2003, 13:32:56) 

[GCC 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r1, propolice)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

dlopen("/usr/lib/python2.2/lib-dynload/readline.so", 2);

import readline # dynamically loaded from /usr/lib/python2.2/lib-dynload/readlin                                                                                                     e.so

>>> 

# clear __builtin__._

# clear sys.path

# clear sys.argv

# clear sys.ps1

# clear sys.ps2

# clear sys.exitfunc

# clear sys.exc_type

# clear sys.exc_value

# clear sys.exc_traceback

# clear sys.last_type

# clear sys.last_value

# clear sys.last_traceback

# restore sys.stdin

# restore sys.stdout

# restore sys.stderr

# cleanup __main__

# cleanup[1] __future__

# cleanup[1] signal

# cleanup[1] site

# cleanup[1] posix

# cleanup[1] types

# cleanup[1] exceptions

# cleanup[1] readline

# cleanup[2] stat

# cleanup[2] copy_reg

# cleanup[2] posixpath

# cleanup[2] UserDict

# cleanup[2] os

# cleanup[2] os.path

# cleanup sys

# cleanup __builtin__

# cleanup ints: 4 unfreed ints in 1 out of 3 blocks

# cleanup floats

~

```

J'ai installe slune avec emerge.

Lors de l'installation, il a arrete a la moitie (6/14 emerge) et il m'a demande d'upgrader python (d'apres mes souvenirs et d'apres mon /var/log/emerge.log surtout  :Smile:  ), ce que j'ai fait.

----------

## claquos

Où est disponible l'ebuild, parce ke le lien donné marche pas chez moi ???

----------

