[PKGBUILD] Max reloaded

Mise à jour / Création /debug de paquetages
farvardin
Maître du Kyudo
Messages : 1084
Inscription : sam. 29 mars 2008, 22:56

[PKGBUILD] Max reloaded

Message par farvardin »

bonjour,

j'essaye de faire un paquet pour ce jeu qui semble pas mal :

http://happypenguin.org/show?M.A.X.%20Reloaded
http://www.maxthegame.de/

malheureusement, si la compilation semblait standardisée, à la fin cela utilise un truc pour installer, et je n'arrive pas à le détourner vers le dossier pkg :
make install-exec-hook
make[3]: entrant dans le répertoire « /home/eric/_mesdocs/mes_pkgbuild/maxr/src/maxr-0.2.2 »
./install-sh -d /usr/maxr
mkdir: ne peut créer le répertoire `/usr/maxr': Permission non accordée
make[3]: *** [install-exec-hook] Erreur 1
Voici le PKGBUILD, si vous avez une idée comment faire...

Code : Tout sélectionner

# Contributor:####
pkgname=maxr
pkgver=0.2.2
pkgrel=1
pkgdesc="Mechanized Assault and eXploration oo clone"
arch=(i686 x86_64)
url="http://www.maxthegame.de/"
license=('gpl')
depends=('sdl')
makedepends=('')
source=(http://www.maxthegame.de/downloads/$pkgname-$pkgver.tar.gz)
md5sums=('700c50a5495c559ce1949598cd8c3605')


build() {
  cd $srcdir/$pkgname-$pkgver
  ./bootstrap.sh
  ./configure --prefix=/usr
  make || return 1
  make DESTDIR=$pkgdir/ install || return 1
}

Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Re: [PKGBUILD] Max reloaded

Message par gyo »

Salut,

J’ai regardé le source de maxr, il faut modifier les fichiers Makefile.am et Makefile.in au niveau de la directive install-exec-hook (de mémoire), puis remplacer le DATADIR par DESTDIR/bin pour ce qui est de la copie du binaire maxr (et il faut auparavent créer le rep bin/ sous DESTDIR) et ensuite faut rajouter la directive DATADIR quand on appelle le make install, ce qui donne ça :

Code : Tout sélectionner

make DESTDIR=$pkgdir/usr DATADIR=$pkgdir/usr/share/maxr install || return 1
Il faut aussi supprimer le binaire maxr qui se trouve dans $srcdir/maxr-…/data/ avant compilation.

Bon j’espère que ça te met sur la piste.

[edit]
Le jeu utilise les bibliothèques sdl_net et sdl_mixer (de mémoire), donc la table des dépendences est plutôt (cf le fichier BUILDING) :

Code : Tout sélectionner

depends = ('sdl_net' 'sdl_mixer')
(la dépendance sdl est donc implicite).

Il faut mettre la licence en majuscule, s/gpl/GPL/
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 »

Merci.

Maintenant c'est un peu moins pire, mais pas encore ça

Code : Tout sélectionner

# Contributor: Eric Forgeot < http://ifiction.free.fr >
pkgname=maxr
pkgver=0.2.2
pkgrel=1
pkgdesc="Mechanized Assault and eXploration oo clone"
arch=(i686 x86_64)
url="http://www.maxthegame.de/"
license=('GPL')
depends=('sdl_net' 'sdl_mixer')
makedepends=('')
groups=()
source=(http://www.maxthegame.de/downloads/$pkgname-$pkgver.tar.gz)
md5sums=('700c50a5495c559ce1949598cd8c3605')


build() {
  cd $srcdir/$pkgname-$pkgver
  ./bootstrap.sh
  ./configure --prefix=/usr
  mkdir -p $pkgdir/usr/bin/
  mkdir -p $pkgdir/usr/share/
  rm $srcdir/$pkgname-$pkgver/data/maxr
  sed -i -e "s/$(INSTALL) -d $(DATADIR)/$(INSTALL) -d \$(DESTDIR)\//g" $srcdir/$pkgname-$pkgver/Makefile.am
  sed -i -e "s/\/data\/\* $(DATADIR)/\/data\/\* \$(DESTDIR)\/$(DATADIR)/g" $srcdir/$pkgname-$pkgver/Makefile.am
  sed -i -e "s/src\/maxr $(DATADIR)/src\/maxr \$(DESTDIR)\/$(DATADIR)/g" $srcdir/$pkgname-$pkgver/Makefile.am
  make DESTDIR=$pkgdir/usr/share DATADIR=$pkgdir/usr/share/maxr install || return 1
  make DESTDIR=$pkgdir install || return 1
  mv $pkgdir/usr/maxr $pkgdir/usr/share/
  ln -s /usr/share/maxr/maxr $pkgdir/usr/bin/maxr 
}

Cela copie bien les fichiers, mais a un moment cela place tout dans $pkgdir/usr/maxr au lieu de $pkgdir/usr/share/maxr
(EDIT: pour cela je pense qu'il fallait indiquer ./configure --prefix=/usr/share)

Pour le moment j'ai essayé de voir ce que cela donnait en déplaçant le dossier à la fin mais cela ne suffit pas à faire fonctionner le jeu, on voit l'écran de démarrage, et cela s'arrête.

NOTE : je viens d'essayer d'installer le fichier de manière "conventionnelle sous linux", c'est à dire salement et sans gestion de l'installation et de la désinstallation, avec un bête configure make et make install, cela installe le jeu dans /usr/local/maxr mais le jeu ne se lance pas pour autant...
Répondre