Page 1 sur 1

[Nut] 1er PKGBUILD, demande de conseils [annulé]

Publié : sam. 26 oct. 2013, 18:40
par Eniotan
Bonjour,
Je souhaite essayer un logiciel qui n'est pas pour l'instant dispo sur AUR. (http://nut.sourceforge.net/)
Pour cela, j'ai créé un PKGBUILD, et quand je tape "makepkg", quelques erreurs se produisent :

Code : Tout sélectionner

mkdir: impossible de créer le répertoire « /usr/local/lib/nut »: Permission non accordée
mkdir: impossible de créer le répertoire « /usr/local/man/man1 »: Permission non accordée
...
Ces erreurs sont-elles normales ? (je pense que oui, étant donné que je ne lance pas makepkg en root)
Que dois-je faire pour installer le paquet sur mon système ? (une option de yaourt ?)

Ci-dessous le PKGBUILD en question :

Code : Tout sélectionner

# Maintainer: Eniotan <toineplume at gmail dot com>
pkgname="nut"
pkgver=19.0
pkgrel=1
pkgdesc="nutrition software to record and analyze what you eat "
arch=("x86_64")
url="http://${pkgname}.sourceforge.net"
license=('GPLv2')
groups=()
depends=('fltk')
makedepends=('')
install=
source=("${pkgname}-${pkgver}.tar.gz::http://sourceforge.net/projects/${pkgname}/files/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz/download")
noextract=()

build() {
  tar xvzf nut-19.0.tar.gz
  cd "$srcdir/$pkgname-$pkgver"
  make install
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  make DESTDIR="$pkgdir" install
}

md5sums=('57313f5fa714b1ebcb62c1ee6113452f')
En vous remerciant d'avance de votre aide, et de vos remarques sur la (non-)qualité du PKGBUILD.

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 18:58
par Ypnose
Normalement, tu ne dois pas utiliser /usr/local. Ce dossier est uniquement utilisé si tu compiles depuis les sources, sans utiliser makepkg
https://wiki.archlinux.org/index.php/Cr ... 9_function
J'ai vite fait regardé le Makefile, tu devrais écrire make prefix=/usr (sans les majuscules) pour régler le soucis. Le make install est fait dans package(), pas le peine de le faire dans build().
EDIT: Le pkg semble exister sur AUR: https://aur.archlinux.org/packages/nut/

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:05
par Eniotan
Merci beaucoup.
Parmi tes recommandations, l'une me pose pb :
Makefile, tu devrais écrire make prefix=/usr
Tu veux dire qu'il faut que j'intervienne sur le makefile ?
C'est pas moi qui ait codé l'appli (mais au vu des questions que je pose, tu dois t'en douter...), ça se fait de modifier le makefile ?

Pour les autres recommandations, ok.

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:17
par Ypnose
Eniotan a écrit :Tu veux dire qu'il faut que j'intervienne sur le makefile ?
Tu m'as mal compris. Nul besoin d'éditer le Makefile. Parfois lorsque tu compiles des logiciels, tu peux passer des "options" à make, du genre PREFIX ou DESTDIR par exemple. Ainsi, tu peux "modifier" certaines options de compilation.
Je t'avais suggéré de remplacer:

Code : Tout sélectionner

build() {
  tar xvzf nut-19.0.tar.gz
  cd "$srcdir/$pkgname-$pkgver"
  make install
}
par

Code : Tout sélectionner

build() {
  tar xvzf nut-19.0.tar.gz
  cd "$srcdir/$pkgname-$pkgver"
  make prefix=/usr
}
Cette option se rapporte aux lignes suivantes du Makefile:

Code : Tout sélectionner

prefix = /usr/local
libdir = $(prefix)/lib/nut
bindir = $(prefix)/bin
mandir = $(prefix)/man/man1
Ainsi make prefix=/usr, va permette d'installer les exécutables dans /usr/bin, au lieu de /usr/local/bin. Les libs seront installées dans /usr/lib/nut, au lieu de /usr/local/lib/nut
J'espère que tu m'as compris.

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:32
par Eniotan
OK, merci pour le mal que tu te donnes. :chinois:
Là,il faudrait que je le fasse exprès pour ne pas comprendre tes indications.

Donc le PKGBUILD final est :

Code : Tout sélectionner

# Maintainer: Eniotan <toineplume at gmail dot com>
pkgname="nut"
pkgver=19.0
pkgrel=1
pkgdesc="nutrition software to record and analyze what you eat "
arch=("x86_64")
url="http://${pkgname}.sourceforge.net"
license=('GPLv2')
groups=()
depends=('fltk')
makedepends=('')
install=
source=("${pkgname}-${pkgver}.tar.gz::http://sourceforge.net/projects/${pkgname}/files/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz/download")
noextract=()

build() {
  tar xvzf nut-19.0.tar.gz
  cd "$srcdir/$pkgname-$pkgver"
  make prefix=/usr
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  make DESTDIR="$pkgdir" install
}

md5sums=('57313f5fa714b1ebcb62c1ee6113452f')
                                              
Mais ça ne me dit pas comment je fais pour l'utiliser... :oops:

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:35
par Ypnose
Tu n'as pu vu mon EDIT pour le 2nd post? Il semble que le pkg existe déjà: https://aur.archlinux.org/packages/nut/
Il faudrait peut-être le rafraichir, mais le plus gros est déjà fait.

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:38
par benjarobin
Le paquet existe déjà sur AUR...
Sinon il n'a jamais dit de modifier le Makefile

Re: [Nut] 1er PKGBUILD, demande de conseils

Publié : sam. 26 oct. 2013, 19:40
par Eniotan
Non, j'avais pas vu...

Donc sujet clos. Mais tes explications me seront utiles dans un avenir proche...

EDIT : quand je vois la différence avec le PKGBUILD d'AUR, je constate que la route est encore longue avant que je devienne mainteneur de paquets.... (y'a qd meme pas mal de petits trucs à savoir)

Re: [Nut] 1er PKGBUILD, demande de conseils [annulé]

Publié : dim. 27 oct. 2013, 09:16
par FoolEcho
Eniotan a écrit :EDIT : quand je vois la différence avec le PKGBUILD d'AUR, je constate que la route est encore longue avant que je devienne mainteneur de paquets.... (y'a qd meme pas mal de petits trucs à savoir)
Au passage, tu n'aurais pas eu besoin de décompresser l'archive par toi-même dans package(), makepkg s'en charge (et ça poserait des problèmes si tu avais une fonction prepare() pour patcher les sources).
Sinon le reste t'a été dit: un paquet ne trifouille jamais le système de fichier, pas d'installation dans /usr/local, etc..

PKGBUILD
Makepkg
Standard_paquetage