Nous sommes actuellement le Lun 21 Avr 2014, 16:41
Messages depuis 12 | 24 | 36 heures.




 [ 12 messages ]  Publier une réponse
 Sujet du message: [customizepkg] outil de personalisation des PKGBUILD
MessagePublié: Dim 01 Avr 2007, 23:06 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
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:
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.

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Mar 10 Avr 2007, 23:59 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
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.

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Mer 11 Avr 2007, 09:41 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 27 Oct 2006, 10:48
Messages: 1752
Localisation: Nantes (44)
:dix: :applaudit:

simplement énorme !

à voter ! 8)

_________________
Ne vous emmerdez plus, emmerdez les autres.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Mer 11 Avr 2007, 12:25 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 17:05
Messages: 1639
Localisation: Collonges (01) France
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


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 12 Avr 2007, 18:26 
Elfe
Avatar de l’utilisateur

Inscrit le: Sam 30 Sep 2006, 22:30
Messages: 555
Localisation: Toulouse
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.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 12 Avr 2007, 19:03 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
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:
customizepkg --modify -o="--usesudo --syncdeps --builddeps --clean --install --force --rmdeps"

ou
Code:
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:

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 12 Avr 2007, 19:59 
Elfe
Avatar de l’utilisateur

Inscrit le: Sam 30 Sep 2006, 22:30
Messages: 555
Localisation: Toulouse
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.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 13 Avr 2007, 18:17 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
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:
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é.

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 13 Avr 2007, 18:54 
Chu Ko Nu

Inscrit le: Lun 18 Sep 2006, 16:21
Messages: 405
Localisation: france, yvelines 78
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)


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 13 Avr 2007, 20:05 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
_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)

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Lun 16 Juil 2007, 15:31 
yeomen

Inscrit le: Dim 18 Mars 2007, 00:24
Messages: 284
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.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Lun 16 Juil 2007, 18:50 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
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:

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
 [ 12 messages ]  Répondre au sujet


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr
phpBB SEO


© 2009-2010 Archlinux.fr ~ Communauté Francophone Arch Linux