Page 1 sur 1
[PKGBUILD] slimevolley
Publié : dim. 30 nov. 2008, 00:30
par DarkBaboon
Je suis en ce moment en plein apprentissage dans l'art de construction de paquet.
J'ai besoin d'aide pour la construction du PKGBUILD de ce jeu de simulation photoréaliste de volley (tout le monde sait que les slimes sont de loin les meilleurs joueurs de volleyball de tout l'univers.
Code : Tout sélectionner
# $Id: PKGBUILD,v 1.00 2008/11/29 17:44 darkbaboon Exp $
# Contributor: Ronan Rabouin <darkbaboon@gmail.com>
# Maintainer: Ronan Rabouin <darkbaboon@gmail.com>
pkgname=slimevolley
pkgver=2.4.0
pkgrel=1
license=('GPL')
arch=('x86_64')
pkgdesc="2D volleyball game written in C using SDL"
url="http://slime.tuxfamily.org"
depends=('sdl')
source=(http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/$pkgname_$pkgver.tar.gz)
md5sums=('5fc652e262db89ffa51a24ef7a490e6e')
build() {
cd $startdir/$pkgname-$pkgver
cmake .
make || return 1
make DESTDIR=$startdir/pkg install
}
Je n'ai pas pu aller bien loin dans le test puisque après avoir lancé la commande makepkg, j'ai eu ceci :
Code : Tout sélectionner
makepkg
==> Création du paquet slimevolley 2.4.0-1 x86_64 (dim. nov. 30 00:15:32 CET 2008)
==> Vérification des dépendances...
==> Vérification des dépendances pour la compilation...
==> Récupération des sources...
-> Téléchargement de 2.4.0.tar.gz...
--2008-11-30 00:15:33-- http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/2.4.0.tar.gz
Résolution de downloads.tuxfamily.org... 212.85.158.13
Connexion vers downloads.tuxfamily.org|212.85.158.13|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
2008-11-30 00:15:33 ERREUR 404: Not Found.
==> ERREUR: Erreur lors du téléchargement de 2.4.0.tar.gz
J'ai comme l'impression que le souligné bas n'est rendu le $pkgname invisible

. Que dois je mettre alors pour que le underscore ne mette tout en l'air. En même temps si certains voient d'autres erreurs/oublis/négligences de ma part dans le PKGBUILD, soyez gentils, signalez-le moi.

Publié : dim. 30 nov. 2008, 02:59
par DarkBaboon
Après un petit tour sur IRC, la solution m'a été donné par quinq, merci à lui.
Voici le PKGBUILD revu et corrigé :
Code : Tout sélectionner
# $Id: PKGBUILD,v 1.00 2008/11/29 17:44 darkbaboon Exp $
# Contributor: Ronan Rabouin <darkbaboon@gmail.com>
# Maintainer: Ronan Rabouin <darkbaboon@gmail.com>
pkgname=slimevolley
pkgver=2.4.0
pkgrel=1
license=('GPL')
arch=('x86_64')
pkgdesc="2D volleyball game written in C using SDL"
url="http://slime.tuxfamily.org"
depends=('sdl')
source=(http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/${pkgname}_${pkgver}.tar.gz)
md5sums=('5fc652e262db89ffa51a24ef7a490e6e')
build() {
cd $startdir/src/$pkgname-$pkgver
cmake .
make || return 1
make DESTDIR=$startdir/pkg install
}
Plus d'erreur, la compilation se passe sans problème.

Pour l'explication, c'est simple, pkgname_ est vu comme une variable, je ne sais pas à quoi cela correspond au juste, mais comme il n'y a pas de variable pkgname renseignée dans mon PKGBUILD, cela apparaissait comme une variable sans valeur d'où l'erreur pendant lancement de la commande makepkg.
Par contre quand je fais un yaourt -U slimevolley-2.4.0-1-x86_64.pkg.tar.gz, il m'installe dans /usr/local/bin et /usr/local/share

, or si je veux pouvoir le proposer dans AUR, il faut absolument qu'il soit installé dans /usr/bin et /usr/share (voir
Paquetage Étiquette)

Publié : dim. 30 nov. 2008, 07:23
par titoucha
Et si tu mets à la place
pour modifier le préfixe.
Publié : dim. 30 nov. 2008, 13:58
par gyo
Voici un PKGBUILD plus correct.
– Prise en compte de l’architecture i686 (il faut que tout le monde puisse en profiter

)
– On force le binaire slimevolley à se mettre dans /usr/bin/ et pas /usr/games par défaut
– Ajout des dépendances sdl_ttf et sdl_image (peut-être rajouter sdl_net pour gérer le réseau ?)
– Ajout de la dépendance cmake pour le build
Code : Tout sélectionner
# $Id: PKGBUILD,v 1.00 2008/11/29 17:44 darkbaboon Exp $
# Contributor: Ronan Rabouin <darkbaboon@gmail.com>
# Maintainer: Ronan Rabouin <darkbaboon@gmail.com>
pkgname=slimevolley
pkgver=2.4.0
pkgrel=1
license=('GPL')
arch=('i686' 'x86_64')
pkgdesc="2D volleyball game written in C using SDL"
url="http://slime.tuxfamily.org"
depends=('sdl_ttf' 'sdl_image')
makedepends=('cmake')
source=(http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/${pkgname}_${pkgver}.tar.gz)
md5sums=('5fc652e262db89ffa51a24ef7a490e6e')
build() {
cd $startdir/src/$pkgname-$pkgver
sed -i '/STRING.*USR_PREFIX/d' CMakeLists.txt || return 1
cmake -DSV_PORTABLE=0 -DCMAKE_INSTALL_PREFIX=/usr . || return 1
make || return 1
make DESTDIR=$startdir/pkg install
}
Publié : dim. 30 nov. 2008, 19:37
par farvardin
reste plus qu'à le proposer sur AUR et tout le monde pourra se retrouver en slime pour jouer au volley.
Publié : dim. 30 nov. 2008, 20:50
par wido
edite le PKGBUILD
version du Slime volley:2.4.1
http://slime.tuxfamily.org/down.php
Code : Tout sélectionner
# $Id: PKGBUILD,v 1.00 2008/11/29 17:44 darkbaboon Exp $
# Contributor: Ronan Rabouin <darkbaboon@gmail.com>
# Maintainer: Ronan Rabouin <darkbaboon@gmail.com>
pkgname=slimevolley
pkgver=2.4.1
pkgrel=1
license=('GPL')
arch=('i686' 'x86_64')
pkgdesc="2D volleyball game written in C using SDL"
url="http://slime.tuxfamily.org"
depends=('sdl_ttf' 'sdl_image')
makedepends=('cmake')
source=(http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/${pkgname}_${pkgver}.tar.gz)
md5sums=('59e570b4442c9a3eec3827f850185456')
build() {
cd $startdir/src/$pkgname-$pkgver
sed -i '/STRING.*USR_PREFIX/d' CMakeLists.txt || return 1
cmake -DSV_PORTABLE=0 -DCMAKE_INSTALL_PREFIX=/usr . || return 1
make || return 1
make DESTDIR=$startdir/pkg install
}
Publié : lun. 01 déc. 2008, 10:03
par gyo
farvardin a écrit :reste plus qu'à le proposer sur AUR et tout le monde pourra se retrouver en slime pour jouer au volley.
Trop tard, il y a déjà un PKGBUILD sur AUR :
http://aur.archlinux.org/packages.php?ID=21925
Edit : J’ai posté un commentaire sur le AUR et c’est un gars de dlfp qui a posté ce paquet
( http://linuxfr.org/comments/986857.html#986857)
Publié : lun. 01 déc. 2008, 23:05
par DarkBaboon
Oh, j'ai été pris de cours... bon bah slimevolley ne sera pas mon premier paquet proposé sur AUR. Heureusement, le monde du Libre est vaste, même au niveau des jeux n'en déplaisent aux idées reçues qui ont la vie dure.
Bon bah il ne me reste plus qu'a voté pour sur AUR à défaut de le proposer, si on est deux à avoir eu la même idée au même moment, c'est la preuve que c'est un bon jeu !
Publié : mar. 02 déc. 2008, 00:39
par farvardin
il reste beaucoup de jeux à proposer sur AUR

Dommage pour ton PKGBUILD. Sinon je trouve aussi que c'est plus pratique de "patcher" directement dans le PKGBUILD au lieu d'utiliser un fichier externe, surtout quand c'est pour modifier une seule ligne.
J'allais te proposer PainTown à faire la recette, mais c'est déjà présent.
Pour en revenir à slimevolley, comment cela se fait qu'il se retrouve déjà dans "community" ? Et pourquoi on ne le trouve pas avec yaourt ?
Publié : mar. 02 déc. 2008, 09:26
par gyo
DarkBaboon a écrit :Oh, j'ai été pris de cours... bon bah slimevolley ne sera pas mon premier paquet proposé sur AUR. Heureusement, le monde du Libre est vaste, même au niveau des jeux n'en déplaisent aux idées reçues qui ont la vie dure.
Bon bah il ne me reste plus qu'a voté pour sur AUR à défaut de le proposer, si on est deux à avoir eu la même idée au même moment, c'est la preuve que c'est un bon jeu !
Oui, le gars t’a coupé l’herbe sous le pied, mais ce qui est important c’est que, par la pratique, tu apprennes les ficelles de la construction d’un PKGBUILD.
Le dernier PKGBUILD que le gars propose dans le AUR est un peu « cracra », ça laisse un répertoire vide /usr/games/ (et pourquoi donc il ne le supprime pas ?).
Pour quelques éclaircissement sur mon PKGBUILD, j’ai retiré la dépendance sdl en la remplaçant par sdl-ttf et sdl-image car les deux dépendent de sdl c’est pourquoi on retire celle-ci et pendant la compile on voit bien qu’explicitement il a besoin de ces 2 là.
Une autre méthode pour connaître les dépendances d’un logiciel est de faire un
ldd sur le ou les binaires pour savoir à quelles bibliothèques sont liés les binaires…
favardin a écrit :Sinon je trouve aussi que c'est plus pratique de "patcher" directement dans le PKGBUILD au lieu d'utiliser un fichier externe, surtout quand c'est pour modifier une seule ligne.
Je suis tout à fait d’accord, mais le gars qui maintien le paquet sur AUR est de mauvaise fois quand il dit que c’est plus que crade de faire un « sed patch » qu’utiliser un patch fichier surtout si c’est pour une ligne (c’est un peu comme vouloir tuer un moustique avec un bazooka).
Publié : mar. 02 déc. 2008, 09:58
par marc[i1]
Pour info,
slimevolley est dans community car un TU l’a pris, et ce
TU est français donc si vous voulez lui écrire faut pas hésiter … par contre il est un peu 'sec', vous voila prévenu
Et il ne patch pas

Publié : mer. 03 déc. 2008, 23:35
par DarkBaboon
Content de voir que
slimevolley est arrivé aussi vite dans
community.
Ceci étant, j'ai jeté un coup d'oeil au PKGBUILD sur AUR qui est donc la même version que l'officiel dans community (
de notre bien-aimé TU)
Code : Tout sélectionner
# Maintainer: Geoffroy Carrier <gcarrier@aur.archlinux.org>
# Contributor: Joel Schaerer <joel.schaerer@laposte.net>
pkgname=slimevolley
pkgver=2.4.1
pkgrel=4
pkgdesc="A simple yet fun arcade volley game"
arch=('i686' 'x86_64')
url="http://slime.tuxfamily.org/index.php"
license=('GPL')
depends=('sdl_net' 'sdl_ttf' 'sdl_image')
makedepends=('cmake')
source=("http://downloads.tuxfamily.org/slime/debian/dists/stable/main/source/${pkgname}_${pkgver}.tar.gz")
build() {
cd "$srcdir/$pkgname-$pkgver"
cmake -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr . || return 1
make || return 1
make DESTDIR="$pkgdir/" install
install -d "$pkgdir"/usr/bin
mv "$pkgdir"/usr/games/slimevolley "$pkgdir"/usr/bin/slimevolley
}
J'ai eu le plaisir de voir qu'une nouvelle entrée pour
slimevolley était rajoutée dans mon menu XFCE dans la catégorie Jeux.
Mais la question que je me pose c'est
quelle ligne génère le
.desktop dans le PKGBUILD ? J'ai regardé dans les sources, il y a bien l'
icone de fournit mais pas de
.desktop, or pour mon précedent paquet
grabouille, marc[i1] m'expliquait que :
marc[i1] a écrit :Pour qu'un programme apparaisse dans le menu, il faut un fichier .desktop, dans ton cas, ce sera
grabouille.desktop et ce dernier est à placer dans
/usr/share/applications.
Je te laisse lire la page de wiki dédié aux fichiers desktop :
http://wiki.archlinux.fr/howto:comprendre:desktopfile
Est-ce que c'est le
install -d qui fait tout le boulot ?
Publié : jeu. 04 déc. 2008, 00:03
par tuxce
DarkBaboon a écrit : J'ai regardé dans les sources, il y a bien l'icone de fournit mais pas de .desktop,
t'as pas bien regardé

, il est dans debian/slimvolley.desktop
Publié : jeu. 04 déc. 2008, 01:00
par DarkBaboon
Ouais bon j'ai pas über-super bien regardé non plus, je l'avoue...

et puis c'est tordu de le coller dans le dossier debian, comme ça sans prévenir...
