utilisation de cmake dans PKGBUILD

Mise à jour / Création /debug de paquetages
Répondre
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

utilisation de cmake dans PKGBUILD

Message par celmir »

Bonjour,
je tente d'installer paintown mais je n'arrive pas à fabriquer un PKGBUILD correct

Code : Tout sélectionner

# Contributor: Celmir <xxxxxxxxxxxxxxxxxxx@wanadoo.fr>
pkgname=paintown
pkgver=3.0
pkgrel=1
pkgdesc="old school game"
arch=(i686)
license=('GPL') 
url="http://paintown.sourceforge.net"
options=('')
makedepends=('cmake')
depends=('allegro' 'zlib' 'libpng' 'dumb' 'freetype2')
source=(http://mesh.dl.sourceforge.net/sourceforge/paintown/$pkgname-$pkgver.tar.gz)
md5sums=('8da1467b6accfba76a707c329950dec7')

build() {
      cd $startdir/src/$pkgname-$pkgver
    mkdir -p arch_build
    cd arch_build
    cmake -DCMAKE_INSTALL_PREFIX=/usr ../
    make || return 1
    make DESTDIR=$startdir/pkg install || return 1
}
Qui me donne l'erreur
makepkg -f
==> Extraction des sources...
-> bsdtar -x -f paintown-3.0.tar.gz
==> Suppression du répertoire pkg/ existant...
==> Entre dans l'environnement fakeroot...
==> Début de la compilation...
CMake Error: Oops. Don't do an in-source build. Create an extra directory change into it and run cmake pointing to the base directory. IE:
mkdir mybuild && cd mybuild && cmake ../ && make
You may need to remove CMakeCache.txt and the CMakeFiles directory in /var/abs/local/paintown/src/paintown-3.0 if you can't get rid of this error.
-- Configuring done
make: *** Pas de règle pour fabriquer la cible « install ». Arrêt.
==> ERREUR: La compilation a échoué.
Abandon...
:(

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Salut!

Pour moi ton PKGBUILD est bon. Tu devrais supprimer ton répertoire src et recommencer pour voir. La configuration se passe bien chez moi:

Code : Tout sélectionner

==> Extraction des sources...
  -> bsdtar -x -f paintown-3.0.tar.gz
==> Entre dans l'environnement fakeroot...
==> Début de la compilation...
-- Check for working C compiler: /usr/lib/ccache/bin/gcc
-- Check for working C compiler: /usr/lib/ccache/bin/gcc -- works
-- Check size of void*
-- Check size of void* - done
-- Check for working CXX compiler: /usr/lib/ccache/bin/c++
-- Check for working CXX compiler: /usr/lib/ccache/bin/c++ -- works
-- Found ZLIB: /usr/lib/libz.so
-- Found PNG: /usr/lib/libpng.so
-- Found Allegro: -L/usr/lib -Wl,--export-dynamic -lalleg-4.2.2 -lalleg_unsharable
-- Found Freetype: /usr/lib/libfreetype.so
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/paintown/src/paintown-3.0/arch_build
Scanning dependencies of target main_module
[  0%] Building CXX object CMakeFiles/main_module.dir/src/configuration.o
[  1%] Building CXX object CMakeFiles/main_module.dir/src/game.o
[  1%] Building CXX object CMakeFiles/main_module.dir/src/globals.o
[  2%] Building CXX object CMakeFiles/main_module.dir/src/loading.o
Mais je plante à la compilation ensuite à 100% grr

Code : Tout sélectionner

[ 98%] Building C object src/dumb/CMakeFiles/dumb_module.dir/src/allegro/packfile.o
Linking C static library ../../lib/libdumb_module.a
[ 98%] Built target dumb_module
Scanning dependencies of target menutest
[ 98%] Building CXX object CMakeFiles/menutest.dir/src/menu/menutest.o
Linking CXX executable bin/menutest
[ 98%] Built target menutest
Scanning dependencies of target paintown
[ 99%] Building CXX object CMakeFiles/paintown.dir/src/xmain.o
Linking CXX executable bin/paintown
[ 99%] Built target paintown
Scanning dependencies of target test
[100%] Building CXX object CMakeFiles/test.dir/src/test.o
Linking CXX executable bin/test
[100%] Built target test
make: *** Pas de règle pour fabriquer la cible « install ». Arrêt.
==> ERREUR: La compilation a échoué.
    Abandon...
Je sais pas ce qu'est ce module "test", peut-être qu'une option adéquate dans la configuration permettrait de résoudre ce dernier problème ?
Dernière modification par wain le mer. 20 févr. 2008, 10:02, modifié 1 fois.
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

Message par celmir »

merci pour ta réponse rapide

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

Message par celmir »

version opérationnelle pour moi

Code : Tout sélectionner

# Contributor: Celmir <scribe-celmir@wanadoo.fr>
pkgname=paintown
pkgver=3.0
pkgrel=1
pkgdesc="90's Beat them all like Game"
arch=(i686)
license=('GPL')
url="http://paintown.sourceforge.net"
makedepends=('cmake')
depends=('allegro' 'zlib' 'libpng' 'dumb' 'freetype2')
source=(http://mesh.dl.sourceforge.net/sourceforge/paintown/$pkgname-$pkgver.tar.gz)
md5sums=('8da1467b6accfba76a707c329950dec7')
build() {
cd $startdir/src/$pkgname-$pkgver
mkdir -p arch_build
cd arch_build
cmake ../ || return 1
make || return 1
mkdir -p $startdir/pkg/usr/share/games/paintown/data
mkdir -p $startdir/pkg/usr/games
cd ..
./install.sh -d $startdir/pkg/usr/share/games/paintown -b $startdir/pkg/usr/games
cp $startdir/src/$pkgname-$pkgver/arch_build/bin/paintown $startdir/pkg/usr/share/games/paintown/paintown-bin
sed -e 's/\/var\/abs\/local\/paintown\/pkg//g' -i $startdir/pkg/usr/games/paintown
}
mais namcap me signale quelques problèmes
paintown E: Dependency detected and not included (gcc-libs) from files ['usr/share/games/paintown/paintown-bin']
paintown W: Dependency included but already satisfied (zlib)
paintown W: Dependency included and not needed (dumb)
paintown W: File (usr/games/) exists in a non-standard directory.
paintown W: File (usr/games/paintown) exists in a non-standard directory.
Pour gcc-libs je comprends, pour le reste un peu moins car zlib est requis par exemple et concernant /usr/games là c'est un mystère pour moi

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
Avatar de l’utilisateur
Skunnyk
Maître du Kyudo
Messages : 1137
Inscription : mer. 06 sept. 2006, 21:31
Localisation : IRC
Contact :

Message par Skunnyk »

Hello !
Merci pour le package, j'avais justement envie de tester ce jeux (news vu sur jeuxlinux.fr ).

Pour /usr/games, c'est parce qu'il faut /usr/share/games :)
zlib est une dépendance de libpng, donc pas besoin de le préciser en plus :)
Voilà, il ne te reste plus qu'a corriger (la partie install notamment, je pense qu'il y a des choses a modifier) et on pourra mettre le package sur [archlinuxfr] si tu le souhaite ;)
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] »

Salut,

concernant namcap,
zlib est peut considéré comme paquetage essentiel au fonctionnement de Arch, vu que c'est une dépendance de libarchive qui est une dépendance de pacman.
/usr/games n'est pas standard, il est préférable de ranger les binaires dans /usr/bin. Dans ton cmake, tu dois pouvoir lui préciser.
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

Message par celmir »

Bon même opérationnel, je vais suivre vos conseils et améliorer le PKGBUILD. J'ai suivi les préconisations de paintown, mais je vais corriger !
## Default data directory is /usr/share/games
## Default bin directory is /usr/games
/usr/game/paintown n'est pas un binaire c'est un script qui lance le binaire qui est dans /usr/share/games/paintown et qui se nomme paintown-bin. Dans ce cas où dois-je positionner le script ?

Pour les dépendances, j'ai suivi là encore les préconisations de paintown:
You need the following libraries to compile paintown

* Allegro - 4.1 or higher. http://alleg.sf.net
* zlib - http://www.zlib.net/
* libpng - http://www.libpng.org/pub/png/libpng.html
* pthreads - If you are on Unix you should have this or you can install glibc and you will get it. Windows people: http://sources.redhat.com/pthreads-win32/
* DUMB - http://dumb.sf.net
* freetype - Installed on most Unix systems along with X11. Windows people: http://gnuwin32.sourceforge.net/packages/freetype.htm.. OSX doesn't come with freetype either, get it from here - freetype.sf.net
je vais ajouter gcc-libs et retirer zlib et dumb

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

Message par celmir »

http://blog.fedora-fr.org/celmir/post/paintown
/usr/bin/paintown pour le lancer :-)

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
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] »

cowl :D
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

ouep nickel en plus ce ptit jeu. Merci Celmir :D
Avatar de l’utilisateur
celmir
Daikyu
Messages : 78
Inscription : jeu. 10 janv. 2008, 19:38
Localisation : La Rochelle (17)

Message par celmir »

disponible sur AUR depuis hier je crois car avant-hier je ne l'avais pas trouvé avec yaourt :D
http://aur.archlinux.org/packages.php?ID=14943

Computer science is no more about computers than astronomy is about telescopes - Edsger Dijkstra
http://celmir.tuxfamily.org
Répondre