Page 1 sur 1

[pkgbuild] desmume, mon premier paquet!!(résolu)

Publié : ven. 30 avr. 2010, 22:19
par Berillions
Et pas le dernier... Enfin j'espère :humour:

Premièrement bonsoir,

J'essaie actuellement de crée un petit paquet pour un émulateur Nintendo DS (desmume) vu qu'il n'est ni dans AUR ni dans archlinuxfr, je me demande si c'est un simple oubli ou si c'est normal. :mrgreen:

Soit, j'ai crée un petit PKGBUILD que voici :

Code : Tout sélectionner

# Contributor: Berillions
pkgname=desmume
pkgver=0.9.5
pkgrel=1
pkgdesc="Nintendo DS Emulator"
arch=(i686 x86_64)
url="http://desmume.org/"
license=('GPL')
depends=('agg')
source=(http://sunet.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
md5sums=('aca40a8507d4104626da7086d451037b')
 
build() {
  cd $srcdir/$pkgname-$pkgver
  ./configure
  make || return 1
  make install
}
En lisant le fichier README-LIN, il est dit que desmume est écrit en C utilisant les librairies gtk+ et SDL.
En ne mettant rien dans la partie "depends", ca a gueulé lors de la compile.

Code : Tout sélectionner

configure: error: Antigrain library is required to build desmume
Ce qui a eu pour conséquence l'installation et son rajout dans le pkgbuild d'agg.

Ceci rajouté, je relance la commande makepkg et cette fois-ci cela plante lors du passage dans la commande "make" :

Code : Tout sélectionner

mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
/bin/install: impossible de créer le fichier standard « /usr/local/share/locale/fr/LC_MESSAGES/desmume.mo »: Aucun fichier ou dossier de ce type
installing fr.gmo as /usr/local/share/locale/fr/LC_MESSAGES/desmume.mo
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
/bin/install: impossible de créer le fichier standard « /usr/local/share/locale/nb/LC_MESSAGES/desmume.mo »: Aucun fichier ou dossier de ce type
installing nb.gmo as /usr/local/share/locale/nb/LC_MESSAGES/desmume.mo
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
/bin/install: impossible de créer le fichier standard « /usr/local/share/locale/pt_BR/LC_MESSAGES/desmume.mo »: Aucun fichier ou dossier de ce type
installing pt_BR.gmo as /usr/local/share/locale/pt_BR/LC_MESSAGES/desmume.mo
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
/bin/install: impossible de créer le fichier standard « /usr/local/share/locale/sv/LC_MESSAGES/desmume.mo »: Aucun fichier ou dossier de ce type
installing sv.gmo as /usr/local/share/locale/sv/LC_MESSAGES/desmume.mo
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/share/locale »: Permission non accordée
/bin/install: impossible de créer le fichier standard « /usr/local/share/locale/zh_CN/LC_MESSAGES/desmume.mo »: Aucun fichier ou dossier de ce type
installing zh_CN.gmo as /usr/local/share/locale/zh_CN/LC_MESSAGES/desmume.mo
make[1]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/po »
Making install in src
make[1]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
Making install in .
make[2]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[3]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[3]: Rien à faire pour « install-exec-am ».
make[3]: Rien à faire pour « install-data-am ».
make[3]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[2]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
Making install in gtk-glade
make[2]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade »
Making install in doc
make[3]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[4]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[4]: Rien à faire pour « install-exec-am ».
test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"
/bin/mkdir: impossible de créer le répertoire « /usr/local/share/man/man1 »: Permission non accordée
make[4]: *** [install-man1] Erreur 1
make[4]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[3]: *** [install-am] Erreur 2
make[3]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[2]: *** [install-recursive] Erreur 1
make[2]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade »
make[1]: *** [install-recursive] Erreur 1
make[1]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make: *** [install-recursive] Erreur 1
Et je vous avoue que je n'y comprends rien. Du ce message d'appel à l'aide.
Autre petite question, pour désinstaller desmume, il suffit de faire un "make uninstall". Faut-il faire un fichier .install.

Merci pour vos aides et n'hésitez pas à me taper sur les doigts si j'ai mal lu la documentation quelque part. :non:

Re: [Paquet]C'est mon premier !!

Publié : ven. 30 avr. 2010, 22:46
par benjarobin
Bon tout est normal. Je te rassure...

Code : Tout sélectionner

make install
fait une copie des fichier compile sur le système. Hors ici tu es dans fakeroot qui t'isole du système pour question de sécurité. Et ici le but et de créer un paquage et pas d'installer directement sur le système. Il faut dire donc au make installe que tu n'installe pas depuis la racine mais depuis $pkg

Voici la "correction"

Code : Tout sélectionner

# Contributor: Berillions
pkgname=desmume
pkgver=0.9.5
pkgrel=1
pkgdesc="Nintendo DS Emulator"
arch=(i686 x86_64)
url="http://desmume.org/"
license=('GPL')
depends=('agg')
source=(http://sunet.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
md5sums=('aca40a8507d4104626da7086d451037b')

build() {
  cd $srcdir/$pkgname-$pkgver || return 1
  ./configure --prefix=/usr --program-prefix=$pkgdir || return 1
  make || return 1
  make install || return 1
}
Je n'ai pas tester mais c'est quelque chose dans ce genre, je n'ai fait que lire le fichier INSTALL

Re: [Paquet]C'est mon premier !!

Publié : ven. 30 avr. 2010, 22:59
par ddup1
Dans ton fichier PKGBUILD remplace :

Code : Tout sélectionner

make install
Par :

Code : Tout sélectionner

make PREFIX=${pkgdir}/usr install || return 1
En effet avec makepkg l'objectif est de générer un paquet non pas de faire un make install sur le système de fichier courant, donc on change le chemin d'installation en ajoutant PREFIX=${pkgdir}/usr au make install.

Concernant la désinstallation tu n'as pas à t'en occupé, pacman s'en chargera.
Bon me suis fait devancé et oui il faut aussi modifier le ./configure --prefix=/usr

Re: [Paquet]C'est mon premier !!

Publié : ven. 30 avr. 2010, 23:03
par benjarobin
J'ai lu le fichier INSTALL et je ne pense pas que
make PREFIX=${pkgdir}/usr install || return 1
soit la bonne solution. J'ai édité... Bref n'ayant pas testé je ne dirai rien

Re: [Paquet]C'est mon premier !!

Publié : ven. 30 avr. 2010, 23:21
par Berillions
Voici mes retours et rien ne fonctionne. :mrgreen:
J'ai la même erreur pour vos 2 corrections.

Code : Tout sélectionner

/bin/install: impossible de créer le fichier standard « /usr/share/locale/fr/LC_MESSAGES/desmume.mo »: Permission non accordée
installing fr.gmo as /usr/share/locale/fr/LC_MESSAGES/desmume.mo
/bin/install: impossible de créer le fichier standard « /usr/share/locale/nb/LC_MESSAGES/desmume.mo »: Permission non accordée
installing nb.gmo as /usr/share/locale/nb/LC_MESSAGES/desmume.mo
/bin/install: impossible de créer le fichier standard « /usr/share/locale/pt_BR/LC_MESSAGES/desmume.mo »: Permission non accordée
installing pt_BR.gmo as /usr/share/locale/pt_BR/LC_MESSAGES/desmume.mo
/bin/install: impossible de créer le fichier standard « /usr/share/locale/sv/LC_MESSAGES/desmume.mo »: Permission non accordée
installing sv.gmo as /usr/share/locale/sv/LC_MESSAGES/desmume.mo
/bin/install: impossible de créer le fichier standard « /usr/share/locale/zh_CN/LC_MESSAGES/desmume.mo »: Permission non accordée
installing zh_CN.gmo as /usr/share/locale/zh_CN/LC_MESSAGES/desmume.mo
make[1]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/po »
Making install in src
make[1]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
Making install in .
make[2]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[3]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[3]: Rien à faire pour « install-exec-am ».
make[3]: Rien à faire pour « install-data-am ».
make[3]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make[2]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
Making install in gtk-glade
make[2]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade »
Making install in doc
make[3]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[4]: entrant dans le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[4]: Rien à faire pour « install-exec-am ».
test -z "/usr/share/man/man1" || /bin/mkdir -p "/usr/share/man/man1"
 /bin/install -c -m 644 'desmume-glade.1' '/usr/share/man/man1//home/berillions/Desktop/desmume/pkgdesmume-glade.1'
/bin/install: impossible de créer le fichier standard « /usr/share/man/man1//home/berillions/Desktop/desmume/pkgdesmume-glade.1 »: Aucun fichier ou dossier de ce type
make[4]: *** [install-man1] Erreur 1
make[4]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[3]: *** [install-am] Erreur 2
make[3]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade/doc »
make[2]: *** [install-recursive] Erreur 1
make[2]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src/gtk-glade »
make[1]: *** [install-recursive] Erreur 1
make[1]: quittant le répertoire « /home/berillions/Desktop/desmume/src/desmume-0.9.5/src »
make: *** [install-recursive] Erreur 1
==> ERREUR: La compilation a échoué.
    Abandon...

Re: [Paquet]C'est mon premier !!

Publié : ven. 30 avr. 2010, 23:39
par tuxce
remplace "make install" par:

Code : Tout sélectionner

make DESTDIR="$pkgdir" install
le dernier || return 1 est inutile

@benjarobin, --program-prefix (ou suffix) permet de modifier le nom des executable, par exemple si tu sais qu'un programme va fournir disons, un /usr/bin/urxvt, si tu configures avec --program-sufix=mieux (et bien sûr si le Makefile est bien fait), il t'installera /usr/bin/urxvt-mieux

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 00:19
par Berillions
Bonsoir 'sieur Tuxce,

Concernant ta correction, c'est bon, le paquet est bien crée.

Ensuite, j'ai lancé un "pacman -U fichier.pkg.tar.xz" et il s'est installé correctement. Le hic, j'ai bien un lanceur dans le menu mais il ne se passe rien, nada quand je le lance.

J'ai fouillé dans /usr/local et l'executable de l'émulateur se trouve dans /usr/local/bin.

Le lanceur qui se trouve dans /usr/local/share/applications a cette tête là :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=DeSmuME (Gtk)
Comment=Nintento DS emulator
TryExec=desmume
Exec=desmume
Icon=DeSmuME
Categories=GNOME;GTK;Game;Emulator;
MimeType=application/x-nintendo-ds-rom;
Par contre, l'émulateur se lance correctement si je fais un clic-droit -> Executer ou un simple clic-gauche.
Ai-je oublié de mentionner quelque chose dans le PKGBUILD ?

Merci

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 00:30
par tuxce
Berillions a écrit : J'ai fouillé dans /usr/local et l'executable de l'émulateur se trouve dans /usr/local/bin.
c'est que t'as pas mis le --prefix=/usr que t'as indiqué benjarobin

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 00:51
par Berillions
Merci Tuxce, ca fonctionne correctement maintenant. Par contre, j'ai 1-2 questions encore (les dernières).

1- Je n'ai qu'un package pour l'arch64. Je suis obligé de relancer un makepkg sur une Archlinux 32 bits pour faire le package de cette architecture?
Je pensais que j'allais faire les deux en même temps. :mrgreen:

2- Je peux envoyer le paquet sur archlinuxfr voire AUR :?:

M'enfin, même avec votre aide, suis fier de moi :bravo:

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 01:01
par ddup1
1/ Tu dois pouvoir générer un paquet 32 bits mais faut installer la chaîne pour cross compiler, bref c'est inutile si tu mets ton paquet sur AUR

2/Sur AUR on ne met pas les paquets mais ce qui permet de le construire.
La ou il y a ton fichier pkgbuild, lance la commande makepkg --source cela va te génerer une archive des fichiers nécessaires à l'élaboration du paquet concerné puis tu le déposes sur AUR.

Edit : et mets ton mail dans le PKGBUILD # Maintainer : pseudo <mail>
Edit 2 : le paquet desmume existe déjà sur AUR : http://aur.archlinux.org/packages.php?ID=8059

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 03:00
par benjarobin
Alors la :bravo: J'aurais du vérifier qu'il n'était pas sur AUR
Sinon :resolu:

Re: [pkgbuild] desmume, mon premier paquet!!

Publié : sam. 01 mai 2010, 09:54
par Berillions
Ah tiens oui...
Pourtant j'avais recherché. Bon, c'est pas si grâve que cela, ça m'a permis de m'entrainer :mrgreen:

Re: [pkgbuild] desmume, mon premier paquet!!(résolu)

Publié : sam. 01 mai 2010, 12:09
par chipster
Félicitation :chinois:

Re: [pkgbuild] desmume, mon premier paquet!!(résolu)

Publié : sam. 01 mai 2010, 21:52
par ddup1
Et c'est là toute la puissance d'Archlinux, il est aisé de générer un paquet pour soi.