[customizepkg] outil de personalisation des PKGBUILD

Annonces, dépannage, évolution du projet yaourt
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

[customizepkg] outil de personalisation des PKGBUILD

Messagepar wain » Dim 01 Avr 2007, 23:06

Customizepkg est un nouvel outil qui permet de modifier automatiquement un PKGBUILD, c'est à dire changer les dépendances, ajouter ou supprimer des options de compilation etc...

Suite à cette discussion, je vous propose aujourd'hui une première version sur laquelle j'attends vos commentaires :D
Téléchargement: http://archiwain.free.fr/os/i686/custom ... pkg.tar.gz

L'utilisation est simple:
Lancer la commande customizepkg dans un dossier contenant un PKGBUILD.
Si votre paquetage s'appelle 'mplayer', customizepkg ira chercher un fichier "/etc/customizepkg.d/mplayer".
Ce fichier contient la liste des modifications à apporter au PKGBUILD.
Un exemple est fournit dans /etc/customizepkg.d/mplayer.example.

/etc/customizepkg.d/mplayer.example a écrit : remove#depends#smbclient
remove#depends#dbus-glib
remove#depends#jack-audio-connection-kit
remove#depends#aalib
remove#makedepends#lirc-utils
remove#makedepends#libcaca
add#conflicts#mplayer-svn
remove#global#--enable-tv-v4l[0-9]
remove#global#--enable-runtime-cpudetection
replace#global#--enable-smb#--disable-smb
replace#global#--enable-lirc#--disable-lirc
replace#global#--enable-aa#--disable-aa
replace#global#--language=all#--language=fr


La syntaxe est assez parlante:

Code : Tout sélectionner

action  #  contexte #  patron  #  valeur

- l'action peut être: remove (supprimer), add (ajouter) ou replace (remplacer)
- le contexte est un nom de variable (pkgver, depends, conflicts) ou global. Global signifie que la modification sera apportée sur tout le fichier et pas seulement parmi les variables.
- le patron (pattern) est le mot recherché: une expression régulière.
- la valeur n'est utilisée que pour l'action de remplacement. C'est la nouvelle valeur qui sera écrite à la place du patron recherché

Vous vous en doutez, customizepkg est utilisé par yaourt pour modifier à la volée le PKGBUILD d'un programme à installer :wink:
Attention: il vous faudra la version yaourt 0.7.1 minimum.

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

Messagepar wain » Mar 10 Avr 2007, 23:59

La version 0.2 est dispo sur AUR:
http://aur.archlinux.org/packages.php?d ... 1&ID=10314

Elle fournit d'autres exemples dans le répertoire /etc/customizepkg.d/ et corrige quelques bugs.

Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : Ven 27 Oct 2006, 10:48
Localisation : Nantes (44)
Contact :

Messagepar marc[i1] » Mer 11 Avr 2007, 09:41

:dix: :applaudit:

simplement énorme !

à voter ! 8)
Ne vous emmerdez plus, emmerdez les autres.

Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1639
Inscription : Ven 11 Août 2006, 17:05
Localisation : Collonges (01) France
Contact :

Messagepar warnaud » Mer 11 Avr 2007, 12:25

Faudrait le prêter aux devs d'arch pour la migration d'abs vers pacman3 :french: :shock:
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt

Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : Sam 30 Sep 2006, 22:30
Localisation : Toulouse

Messagepar mimas » Jeu 12 Avr 2007, 18:26

Vraiment sympa comme outil.

Je pense qu'avec quelques petites lignes en plus on pourrait y lui permettre de lancer automatiquement makepkg si on n'utilise pas yaourt (ce qui est mon cas mais je n'en pense pas pour autant du mal :p).

Juste une idée en l'air. ;)
Anarchy for the triple A.

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

Messagepar wain » Jeu 12 Avr 2007, 19:03

mimas a écrit :Je pense qu'avec quelques petites lignes en plus on pourrait y lui permettre de lancer automatiquement makepkg si on n'utilise pas yaourt (ce qui est mon cas mais je n'en pense pas pour autant du mal :p).

Juste une idée en l'air. ;)


oui ça serait un peu comme versionpkg qui modifie le PKGBUILD puis lance la compilation. Encore faut-il décider des options qu'on souhaite passer à makepkg, et la liste est longue selon qu'on utilise sudo ou pas, qu'on souhaite installer le paquetage ou pas, supprimer les dépendances ou pas etc... etc...

Je te propose d'ajouter une option -o="options" qui te laisse le choix.
example:

Code : Tout sélectionner

customizepkg --modify -o="--usesudo --syncdeps --builddeps --clean --install --force --rmdeps"

ou

Code : Tout sélectionner

customizepkg -m -o="-Ssbcifr"
:D

Mais personnellement, je ne vois l'intérêt de modifier un PKGBUILD avec customizepkg que pour les paquetages issus d'ABS. Ainsi lorsqu'une mise à jour est détectée par yaourt, celui-ci déclenche l'upgrade du paquet à partir du PKGBUILD modifié.
Mais bon chacun fait comme il veut et je suis très content déjà que ça vous plaise :lol:

Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : Sam 30 Sep 2006, 22:30
Localisation : Toulouse

Messagepar mimas » Jeu 12 Avr 2007, 19:59

Oups, je suis tête en l'air. Il est sûrement possible de lancer customizepkg à partir de makepkg le mettant dans /etc/makepkg.conf, qui est un script shell.

Désolé pour le bruit. :|

As-tu prévu quelque chose pour changer les sources à la volée, et ce de façon générique donc potentiellement sur tous les paquets ? Je m'explique, les sources des PKGBUILD pointent parfois (heu.. souvent) vers des fichiers hébergés sur les sites principaux et surchargés. Il serait sympa de pouvoir réécrire les addresses pour qu'elles pointent vers des mirroirs.

Voilà un vraie idée. :)

Enfin, je crois. :?: :?:
Anarchy for the triple A.

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

Messagepar wain » Ven 13 Avr 2007, 18:17

mimas a écrit :Oups, je suis tête en l'air. Il est sûrement possible de lancer customizepkg à partir de makepkg le mettant dans /etc/makepkg.conf, qui est un script shell.

Désolé pour le bruit. :|

Pas du tout, j'ai déjà implémenté cette fonction, dans la prochaine release il sera possible de lancer customizepkg comme ceci:

Code : Tout sélectionner

customizepkg --build="-Sci"



mimas a écrit :As-tu prévu quelque chose pour changer les sources à la volée, et ce de façon générique donc potentiellement sur tous les paquets ? Je m'explique, les sources des PKGBUILD pointent parfois (heu.. souvent) vers des fichiers hébergés sur les sites principaux et surchargés. Il serait sympa de pouvoir réécrire les addresses pour qu'elles pointent vers des mirroirs.

Voilà un vraie idée. :)

Enfin, je crois. :?: :?:

Pour la modif des urls de téléchargement des sources, tu peux déjà le faire paquetage par paquetage avec le regexp adéquat.
Pour ce qui est des modifications globales sur l'ensemble des paquetages, j'ai plein d'idées mais cela nécessite encore un peu de travail et beaucoup de réflexion.
Pour faire une implémentation "propre", il faut absoluement faire évoluer la syntaxe du fichier PKGBUILD. Vu les commentaires sur le forum anglais, c'est mal barré.

_alexmyself
Chu Ko Nu
Messages : 405
Inscription : Lun 18 Sep 2006, 16:21
Localisation : france, yvelines 78
Contact :

Messagepar _alexmyself » Ven 13 Avr 2007, 18:54

un truc qui passe,
les "#" comme séparateur ça fait pas chier si je veut commenter une ligne ?

ah oui, j'oubliais:
mortel wain, mortel !!! ça bute encore ce truc !! :D

et aussi pour les options générales, est-ce qu'un simple fichier all-packs utilisant la meme syntaxe ne serait pas suffisant/super simple a gérer ?

et enfin des interrogations:
je fait un fichier pour mplayer
qu'est-ce qui va se passer si je fait yaourt -S mplayer ?

yaourt 7.1 il utilise quel pacman ? (non, c'est faux, je n'ai pas peur de pacman 3)

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

Messagepar wain » Ven 13 Avr 2007, 20:05

_alexmyself a écrit :un truc qui passe,
les "#" comme séparateur ça fait pas chier si je veut commenter une ligne ?

En fait un dièse vaut un séparateur, mais deux dièses valent un dièse.
donc "replace#global#make###make" va commenter la ligne "make"

_alexmyself a écrit :ah oui, j'oubliais:
mortel wain, mortel !!! ça bute encore ce truc !! :D

merci :)

_alexmyself a écrit :et aussi pour les options générales, est-ce qu'un simple fichier all-packs utilisant la meme syntaxe ne serait pas suffisant/super simple a gérer ?
oui et non, c'est difficile de dire prévoire l'impact que pourrait avoir un remplacement global dans tous les PKGBUILDs. Je bosse toujours sur la question.

_alexmyself a écrit :et enfin des interrogations:
je fait un fichier pour mplayer
qu'est-ce qui va se passer si je fait yaourt -S mplayer ?

Si tu crée un fichier /etc/customizepkg.d/mplayer (même vide) puis que tu fais un yaourt -S mplayer, ce n'est pas le binaire qui sera téléchargé mais le paquetage sera recompilé.
Idem lors d'un yaourt -Su

_alexmyself a écrit :yaourt 7.1 il utilise quel pacman ? (non, c'est faux, je n'ai pas peur de pacman 3)

eh oui la version 7 (actuellement 0.7.5) ne fonctionne qu'avec pacman3. Si t'es un aventurier, n'hésites pas à tester 8)

Avatar de l’utilisateur
Tebo
yeomen
Messages : 295
Inscription : Sam 17 Mars 2007, 23:24

Messagepar Tebo » Lun 16 Juil 2007, 15:31

Très partique cet outil.
Seulement la gestion des orphelins est douteuse avec makepkg -s.
Exemple:
Je compile avec l'aide d'abs customizepkg et makepkg claws-mail.
Je compile "makepkg -sc" il installe "vte" avec pacman. Mais le paquet est installer explicitement donc si je supprime claws-mail, vte ne sera pas considéré comme orphelin.

C'est très chiant, très chaint aussi d'avoir user/mpd pour Aur et le bugtrack. Wain en à parler ici.

Mais la solution arrive quelqu'un à proposé quelque chose hier.

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1853
Inscription : Ven 11 Août 2006, 19:15
Localisation : Nancy (54)
Contact :

Messagepar wain » Lun 16 Juil 2007, 18:50

oui plus que douteuse la gestion des dépendances...
Ce bug introduit dans makepkg par pacman 3.0 sera corrigé dans la version 3.1
Patience donc :lol:


Revenir vers « Yaourt »



Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit