Page 1 sur 2

[PKGBUILD] rar 3.7.1

Publié : jeu. 29 nov. 2007, 20:45
par TuxSpirit
Bonjour,

Je me suis lancé dans l'écriture de quelques PKGBUILD. Celui-ci concerne rar 3.7.1 en version shareware.

Code : Tout sélectionner

# $Id: PKGBUILD,v 1.00 2007/11/19 19:50 UTC TuxSpirit Exp$
# Maintainer: TuxSpirit<tuxspirit@voila.fr>
pkgname=rar
pkgver=3.7.1
pkgrel=1
pkgdesc="A command-line port of the rar compression utility"
arch=('i686' 'x86_64')
licence=('shareware')
depends=('bash')
url="http://www.rarlab.com"
source=(http://www.rarlab.com/rar/rarlinux-$pkgver.tar.gz)
options=(!emptydirs)
md5sums=('b52249002e279a3e97afc25b5758ec7c')
build() {
  mkdir -p ${startdir}/pkg/usr/bin
  mkdir -p ${startdir}/pkg/usr/lib/rar
   
  install -m755 ${startdir}/src/rar/rar ${startdir}/pkg/usr/bin/ 
  install -m755 ${startdir}/src/rar/unrar ${startdir}/pkg/usr/bin/
  install -m755 ${startdir}/src/rar/default.sfx ${startdir}/pkg/usr/bin/
  install -m755 ${startdir}/src/rar/* ${startdir}/pkg/usr/lib/rar
}
Pourriez-vous me dire si je fais juste. D'avance merci pour vos suggestions, commentaires, ceux-ci ne peuvent être que constructif.

Publié : jeu. 29 nov. 2007, 21:13
par bapt
Désolé, mais il est déjà disponible sur aur. http://aur.archlinux.org/packages.php?d ... =1&ID=5872

Dans tous les cas ça te permettra de comparer au tien, voir de proposer des amélioration à l'auteur.

Publié : jeu. 29 nov. 2007, 22:15
par marc[i1]
Salut,

je vais y aller de mes remarques ;)

Maintainer
Ce titre est normalement réservé aux devs 'officiels' de Arch, pour nous les archers d'en bas, on doit mettre Contributor

licence=('shareware')
* la variable licence n'existe pas ! c'est license le nom de la variable.
* ('shareware') n'existe pas n'ont plus, les licences incluses dans Arch sont dans /usr/share/licenses/common/, si la licence n'existe pas alors on doit mettre ('custom') et copier la licence dans un répertoire dans /usr/share/licenses/$pkgname/COPYING

depends=('bash')
Il est de coutume de préciser uniquement les dépendances qui ne sont pas présente par défaut sur le système, et bash fait parti de la base du système donc c'est inutile, de plus bapt va devoir se priver de ton paquetage car il utilise zsh ! ;)

Voilà, pense à lire le wiki, tout y est bien décris :p
http://wiki.archlinux.fr/arch:pkgbuild
http://wiki.archlinux.fr/howto:archlinu ... gstandards
http://wiki.archlinux.fr/howto:archlinu ... rguideline

En tous cas, beau boulot c'est vraiment bien fait ! un futur contributeur en vue ! :D

Publié : ven. 30 nov. 2007, 09:13
par bapt
Merci marc[i1] de penser à moi comme ça :)

@TuxSpirit un dernier conseil, la commande "install" est capable de créer l'arborescence pour toi donc le mkdir est inutile si tu rejoute l'option -D au début des commandes install

La dernière ligne de install, ce ne sont pas lib donc ça n'a rien à faire dans /usr/lib/rar

à la rigueur dans /usr/share/doc/rar, mais sous arch on n'aime pas s'encombrer de fichiers inutils, donc ils sont même pas a traiter à mon avis sauf le license.txt qui est selon moi à mettre dans /usr/share/licenses/$pkgname éventuellement en le renommant COPYING.

Voila

PS: d'ailleur en regardant de plus près celui de aur, les choix d'arborescence sont meilleur chez lui, par contre la méthode "install" est meilleure dans ton PKGBUILD, le plus sympas serait que tu reprennes le PKGBUILD de aur et que tu le modifies avec ce qu'il y a de mieux dans le tien, que tu rajoute ton nom dans les contributeurs, et que tu le soumettes à l'auteur.

Publié : ven. 30 nov. 2007, 10:16
par TuxSpirit
Bonjour à tous,

merci pour vos conseils, je vais les suivre et contacter l'auteur du PKGBUILD.

Publié : ven. 30 nov. 2007, 11:25
par TuxSpirit
Bonjour,

J'ai suivi vos conseils et voici la proposition que j'ai envoyé par e-mail à la personne qui a fait le PKGBUILD :

Code : Tout sélectionner

# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
# Contributor: TuxSpirit<tuxspirit@voila.fr>   2007/11/30 09:51 UTC TuxSpirit
pkgname=rar
pkgver=3.7.1
pkgrel=1
pkgdesc="The RAR compression program"
arch=('i686' 'x86_64')
licence=('custom')
depends=('gcc')
url="http://www.rarlab.com"
source=(http://www.rarlab.com/rar/rarlinux-$pkgver.tar.gz)
options=(!emptydirs)
md5sums=('b52249002e279a3e97afc25b5758ec7c')
build() {
  #Program
  install -D -m 755 ${startdir}/src/${pkgname}/rar ${startdir}/pkg/usr/bin/rar 
  install -D -m 755 ${startdir}/src/${pkgname}/unrar ${startdir}/pkg/usr/bin/unrar

  #Additional files
  install -D -m 755 ${startdir}/src/${pkgname}/default.sfx ${startdir}/pkg/usr/lib/${pkgname}/default.sfx
  #install -D -m 755 ${startdir}/src/${pkgname}/rarfiles.lst ${startdir}/pkg/etc/rarfiles.lst
  
  #License
  install -D -m 755 ${startdir}/src/${pkgname}/license.txt ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
  
  #Documentations
  #install -D -m 755 ${startdir}/src/${pkgname}/rar.txt ${startdir}/pkg/usr/share/doc/${pkgname}/rar.txt
  #install -D -m 755 ${startdir}/src/${pkgname}/readme.txt ${startdir}/pkg/usr/share/doc/${pkgname}/readme.txt
  #install -D -m 755 ${startdir}/src/${pkgname}/whatsnew.txt ${startdir}/pkg/usr/share/doc/${pkgname}/whatsnew.txt
  #install -D -m 755 ${startdir}/src/${pkgname}/technote.txt ${startdir}/pkg/usr/share/doc/${pkgname}/technote.txt
  
}

Publié : ven. 30 nov. 2007, 11:28
par bapt
C'est bien sauf que tout ce qui n'es pas binaire doit plutôt avoir les droit 644 (-m644) genre rarfiles.lst et tous les txt

Pour le default.sfx je ne sais pas à quoi ça correspond. doit je ne sais pas quels sont les droits les plus appropriés

Publié : ven. 30 nov. 2007, 11:33
par marc[i1]
TuxSpirit a écrit :

Code : Tout sélectionner

...
licence=('custom')
...
rrhhhhooooooooooooo
license=('custom')
:D

Publié : ven. 30 nov. 2007, 11:52
par TuxSpirit
^^ je viens de m'apercevoir pour licence ;)

le fichier default.sfx est pour créer des fichiers autoextractible, donc je pense que je dois le laisser en 755, je vais corriger le PKGBUILD et merci pour vos remarques et surtout votre patience.

Publié : ven. 30 nov. 2007, 11:54
par TuxSpirit
alors voici la version corrigée selon vos indications :

Code : Tout sélectionner

# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
# Contributor: TuxSpirit<tuxspirit@voila.fr>   2007/11/30 10:54 UTC TuxSpirit
pkgname=rar
pkgver=3.7.1
pkgrel=1
pkgdesc="The RAR compression program"
arch=('i686' 'x86_64')
license=('custom')
depends=('gcc')
url="http://www.rarlab.com"
source=(http://www.rarlab.com/rar/rarlinux-$pkgver.tar.gz)
options=(!emptydirs)
md5sums=('b52249002e279a3e97afc25b5758ec7c')
build() {
  #Program
  install -D -m755 ${startdir}/src/${pkgname}/rar ${startdir}/pkg/usr/bin/rar 
  install -D -m755 ${startdir}/src/${pkgname}/unrar ${startdir}/pkg/usr/bin/unrar

  #Additional files
  install -D -m755 ${startdir}/src/${pkgname}/default.sfx ${startdir}/pkg/usr/lib/${pkgname}/default.sfx
  #install -D -m644 ${startdir}/src/${pkgname}/rarfiles.lst ${startdir}/pkg/etc/rarfiles.lst
  
  #License
  install -D -m644 ${startdir}/src/${pkgname}/license.txt ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
  
  #Documentations
  #install -D -m644 ${startdir}/src/${pkgname}/rar.txt ${startdir}/pkg/usr/share/doc/${pkgname}/rar.txt
  #install -D -m644 ${startdir}/src/${pkgname}/readme.txt ${startdir}/pkg/usr/share/doc/${pkgname}/readme.txt
  #install -D -m644 ${startdir}/src/${pkgname}/whatsnew.txt ${startdir}/pkg/usr/share/doc/${pkgname}/whatsnew.txt
  #install -D -m644 ${startdir}/src/${pkgname}/technote.txt ${startdir}/pkg/usr/share/doc/${pkgname}/technote.txt
  
}

Publié : ven. 30 nov. 2007, 12:08
par bapt
Là ça me semble bon :)

Publié : ven. 30 nov. 2007, 12:18
par TuxSpirit
salut bapt,

merci pour tes conseils. je viens de recevoir un e-mail de la personne qui a fait la première version du PKGBUILD, elle est un peu hésitante à inclure le unrar, car il existerait un paquet spécifique pour ce dernier et m'indique que rar ne tourne pas sur le 64 bit.

je suis étonné, car j'ai un ordinateur mac 64 bit et rar en ligne de commande fonctionne parfaitement. y-a-t-il une différence entre le 64 bit utilisé pour Arch et celui d'Apple ?

Publié : ven. 30 nov. 2007, 14:27
par bapt
rar fonctionne parfaitment en 64bit si il a été compilé pour, certainement que la version rar pour Apple est compilé en 64bit, alors qu'elle est uniquement compilé en 32 bit pour linux.

Enfin oui unrar est distribué avec les sources par rarlab (il n'est pas libre pour autant) donc il peut être compilé ainsi le PKGBUILD disponible le compile en fonction de l'architecture, mais il s'agit du même soft que celui précompilé dans ton paquet rar, donc inutile de le fournir.

Enfin pour exécuter rar 32bit sur arch64, tu auras besoin d'un certain de lib 32bit, en effet ton Arch64 est capable d'exécuter du 32bit à partir du moment où il as toutes la chaîne de bibliothèque 32bit dans le cas de rar certainement lib32-glibc et lib32-gcc-libs

Publié : ven. 30 nov. 2007, 17:18
par lenglemetz
Bingo !

Code : Tout sélectionner

rar        E: Dependency detected and not included (lib32-gcc-libs) from files ['usr/bin/rar', 'usr/bin/unrar']
Tu as plus qu'a faire un if pour distingué les dependance 32 et 64 bits, apres je l'ai pas testé :p

Publié : ven. 30 nov. 2007, 17:48
par TuxSpirit
re,

moi j'ai un ordi 32 bit avec Arch, j'ai pas de PC 64 bit (ormis mon mac, mais bon mac os x cela ne le fera pas pour Arch ;D)

merci bapt et Lenglemetz pour vos précisions. je vais essayer de faire le if proposé par lenglemetz, puis ensuite, je verrais si je trouve quelqu'un qui a un Arch64 pour tester le fichier.

Publié : ven. 30 nov. 2007, 18:18
par TuxSpirit
voici la version avec le vérification des dépendances i686 x86_64. est-ce correcte?

Code : Tout sélectionner

# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
# Contributor: TuxSpirit<tuxspirit@voila.fr>   2007/11/30 10:54 UTC TuxSpirit
pkgname=rar
pkgver=3.7.1
pkgrel=1
pkgdesc="The RAR compression program"
arch=('i686' 'x86_64')
license=('custom')
if [ "$CARCH" = "i686" ]; then
    depends=('gcc')
elif [ "$CARCH" = "x86_64" ]; then
    depends=('gcc' 'lib32-gcc-libs')
fi
url="http://www.rarlab.com"
source=(http://www.rarlab.com/rar/rarlinux-$pkgver.tar.gz)
options=(!emptydirs)
md5sums=('b52249002e279a3e97afc25b5758ec7c')
build() {
  #Program
  install -D -m 755 ${startdir}/src/${pkgname}/rar ${startdir}/pkg/usr/bin/rar 
  install -D -m 755 ${startdir}/src/${pkgname}/unrar ${startdir}/pkg/usr/bin/unrar

  #Additional files
  install -D -m 755 ${startdir}/src/${pkgname}/default.sfx ${startdir}/pkg/usr/lib/${pkgname}/default.sfx
  #install -D -m 644 ${startdir}/src/${pkgname}/rarfiles.lst ${startdir}/pkg/etc/rarfiles.lst
  
  #License
  install -D -m 644 ${startdir}/src/${pkgname}/license.txt ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
  
  #Documentations
  #install -D -m 644 ${startdir}/src/${pkgname}/rar.txt ${startdir}/pkg/usr/share/doc/${pkgname}/rar.txt
  #install -D -m 644 ${startdir}/src/${pkgname}/readme.txt ${startdir}/pkg/usr/share/doc/${pkgname}/readme.txt
  #install -D -m 644 ${startdir}/src/${pkgname}/whatsnew.txt ${startdir}/pkg/usr/share/doc/${pkgname}/whatsnew.txt
  #install -D -m 644 ${startdir}/src/${pkgname}/technote.txt ${startdir}/pkg/usr/share/doc/${pkgname}/technote.txt
  
}

Publié : ven. 30 nov. 2007, 23:43
par bapt
Je testerai si tu veux

Publié : sam. 01 déc. 2007, 11:49
par TuxSpirit
salut bapt,

oki,mais sur une machine de teste uniquement, voudrais pas que tu aies un souci.

Publié : sam. 01 déc. 2007, 12:25
par mimas
À vu d'œil cela ne semble pas mal.

Par contre je me demande bien pourquoi tu mets gcc en dépendance pour l'exécution. ÀMHA il vaudrait mieux supprimer gcc et mettre gcc-libs pour l'exécution sur i686.

Publié : sam. 01 déc. 2007, 14:40
par bapt
Ne t'inquiète pas, je sais ce que je fait avec ma machine :)