URL: https://linuxfr.org/users/grom/journaux/pkgconf-un-pkg-config-qui-ne-se-mord-pas-la-queue Title: pkgconf: un pkg-config qui ne se mord pas la queue Authors: Bapt Date: 2012年09月28日T12:25:42+02:00 Tags: autotools et alpinelinux Score: 32 Depuis la version 0.26, [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config) utilise glib2, très bien, pourquoi pas... Là où ça se complique, c'est que : les versions précédentes de pkg-config embarquaient les morceaux de la glib1 qui étaient utilisés afin d'éviter une dépendance externe, la version 0.26 - elle - dépend de la glib2 uniquement en externe, rendant du coup impossible la compilation _from scratch_ sans horribles _hacks_. Bah oui, pkg-config dépend de glib2 pour se compiler et glib2 dépend de pkg-config qui dépend de glib2 qui dépend de pkg-config qui dépend de... Du coup, certains ont pondu : http://sourceforge.net/projects/pkgconfiglite/ et le dev de pkg-config a ajouté un switch permettant en 0.27 d'utiliser une version embarquée de glib2 : http://cgit.freedesktop.org/pkg-config/commit/?id=c74da521af566bc208ff9a2da3e43634817f73d5 Pour pallier ce problème, plusieurs initiatives de développement d'alternative à pkg-config ont vu le jour. En particulier, [pkgconf](https://github.com/pkgconf/pkgconf), cette version a plusieurs mérites : * 0 dépendances : pkg-config devient un élément clef d'une chaîne de compilation ; faire en sorte qu'elle ait le moins de dépendances et de complexité permet de simplifier la vie des gens ayant besoin de créer un système "_from scratch_" (sans dépendance, le nombre de lignes de code est pourtant similaire) * _Test driven_ : le développement de pkgconf est "_test driven_", à chaque fois qu'une anomalie est remontée, un jeu de test est ajouté pour éviter le maximum de régression possible. L'ajout de fonctionnalité ne peut se faire que si des fichiers de test ont été ajoutés d'abord. * 100% compatible avec pkg-config, toutes les incompatibilités doivent être corrigées si il y en a encore, même les idioties de pkg-config ont été ajoutées, un gros travail a été fait pour aussi permettre aux scripts de configure "idiot" de fonctionner avec pkgconf de la même manière qu'avec pkg-config (par exemple beaucoup de scripts cherchent les espaces dans la sortie de pkg-config, etc.) * Rapide, pkgconf est plus rapide que pkg-config, ce qui ne semble pas très important de prim'abord, mais le devient rapidement lorsque que vous avez un programme un peu conséquent faisant des centaines d'appels à pkg-config dans sa chaîne de compilation. * Très ouvert : il est très simple de proposer des idées ou des patchs ; c'est en général pris en compte très rapidement, mais attention, si vos contributions sont appréciées, vous risquez rapidement de devenir développeur officiel du projet ! * Des idées folles pour l'avenir :) ( https://github.com/pkgconf/pkgconf/wiki/Roadmap ) * Une jolie licence BSD :) Beaucoup de projets ont déjà adoptés pkgconf : * [FreeBSD](http://www.FreeBSD.org) : pkg-config a été supprimé totalement de l'arbre des ports et remplacé par pkgconf * [Alpine](http://www.alpinelinux.org) : - pkg-config a été supprimé et remplacé par pkgconf * [Gentoo](http://www.gentoo.org) : (http://packages.gentoo.org/package/dev-util/pkgconf), Disponible en alternative à pkg-config * [Funtoo](http://www.funtoo.org) : utilise uniquement pkgconf * [ArchLinux](http://www.archlinux.org) : Disponible via AUR (https://aur.archlinux.org/packages.php?ID=60768). * [Sabotage](https://github.com/rofl0r/sabotage) : utilise uniquement pkgconf Certainement d'autres, mais personne ne nous l'a dit :) Vous pouvez venir discuter de pkgconf sur irc : #pkgconf sur freenode.

AltStyle によって変換されたページ (->オリジナル) /