[PKGBUILD] slimevolley

Mise à jour / Création /debug de paquetages
Répondre
Avatar de l’utilisateur
DarkBaboon
Daikyu
Messages : 89
Inscription : mar. 24 juin 2008, 11:48
Localisation : Rennes

[PKGBUILD] slimevolley

Message 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. 8)

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 :shock: . 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. :P
Avatar de l’utilisateur
DarkBaboon
Daikyu
Messages : 89
Inscription : mar. 24 juin 2008, 11:48
Localisation : Rennes

Message 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) :roll:
Dernière modification par DarkBaboon le mer. 03 déc. 2008, 23:51, modifié 1 fois.
titoucha
Daikyu
Messages : 81
Inscription : mar. 02 sept. 2008, 16:58
Localisation : Genève

Message par titoucha »

Et si tu mets à la place

Code : Tout sélectionner

cmake -DCMAKE_INSTALL_PREFIX=/usr .
pour modifier le préfixe.
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message 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
}
commentaire rédigé à l’aide d’un clavier ergonomique bépo
KISS MY ARCH
farvardin
Maître du Kyudo
Messages : 1084
Inscription : sam. 29 mars 2008, 22:56

Message par farvardin »

reste plus qu'à le proposer sur AUR et tout le monde pourra se retrouver en slime pour jouer au volley.
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

Message 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 
}
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message 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 :roll:

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)
commentaire rédigé à l’aide d’un clavier ergonomique bépo
KISS MY ARCH
Avatar de l’utilisateur
DarkBaboon
Daikyu
Messages : 89
Inscription : mar. 24 juin 2008, 11:48
Localisation : Rennes

Message 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 !
farvardin
Maître du Kyudo
Messages : 1084
Inscription : sam. 29 mars 2008, 22:56

Message 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 ?
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message 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).
commentaire rédigé à l’aide d’un clavier ergonomique bépo
KISS MY ARCH
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message 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 8)

Et il ne patch pas :lol:
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
DarkBaboon
Daikyu
Messages : 89
Inscription : mar. 24 juin 2008, 11:48
Localisation : Rennes

Message 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 ?
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message 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
Avatar de l’utilisateur
DarkBaboon
Daikyu
Messages : 89
Inscription : mar. 24 juin 2008, 11:48
Localisation : Rennes

Message par DarkBaboon »

Ouais bon j'ai pas über-super bien regardé non plus, je l'avoue... :oops: et puis c'est tordu de le coller dans le dossier debian, comme ça sans prévenir... :roll:
Répondre