Il y a un an jour pour jour que je faisais mon premier commit dans les ports
FreeBSD sous le mentorat jadawin@ et tabthorpe@ merci à eux :).
Ça passe vite... :)
Le bilan de cette première année est plutôt positif je pense malgré quelques ratés.
Plein de bonnes choses mais aussi quelques trucs que je pensais faire que je n'ai
pas encore réussi à pousser.
Je vais commencer par les échecs et finir par les réussites c'est toujours
mieux de finir par les bonnes choses :)
Pas Bien
Il y a un moment déjà que je bossai sur un framework d'options pour les ports
qui viserai à remplacer l'actuel en offrant plus de fonctionnalités: groupe
d'options, options incompatibles, options dépendantes d'autres options etc. Dans
ce cahier des charges, il fallait aussi que le nouveau framework puisse remplacer
le vieux de manière transparente.
La première étape je l'ai atteinte assez facilement, la complication est venue
quand il a fallu faire la seconde. Du coup un an après je n'ai toujours pas pu
pousser mon framework et il reste toujours le vieux dans l'infrastructure.
J'espère pouvoir changer ça rapidement, j'ai une idée à creuser sous le coude :).
Un autre loupé pour le moment c'est le fakeroot ou pkgdir. J'aimerai bien
pouvoir construire des packages sans avoir à les installer. J'aimerai aussi que
l'on ne puisse pas installer de packages depuis les ports dont le PLIST est
foireux. Je me suis donc lancé dans la création d'un patch fakeroot (en fait
j'ai piqué dans un premier temps ce que nos voisins de midnightbsd avaient fait
quand ils ont forké notre système de ports). Au final j'ai obtenu quelque chose
qui marche dans 80% des cas. C'est pas mal, mais c'est complexe et je n'aime pas
ne pas proposer de choses simples. Donc il n'a pour le moment pas été plus loin.
En revanche j'ai récemment eu de nouvelles idées à ce sujet et devrait apporter
de bonnes choses :). Wait and See.
Moyen pas bien ou moyen bien au choix
Passons des loupés de cette année aux choses mitigées: libreoffice. J'ai fait le
port de la version 3.3 avec succès. J'avais 2 motivations pour ça: réutiliser au
maximum ce qui est déjà dans les ports (ajouter les ports nécessaires si besoin)
et pouvoir tourner sur pointyhat. Dans les deux cas c'est réussit.
En revanche, du côté de 3.4 c'est une autre
paire de manches. Pour des raison qui m'échappent pour le moment je n'arrive pas
à le compiler :( alors que la version 3.5 (git) compile sans trop de
difficultés je galère sur la version 3.4. En même temps je ne consacre pas
beaucoup de temps à libreoffice du coup je ne suis pas de près les évolutions et
découvre les problèmes sur le tard. J'ai créé il y a peu une équipe office@ pour
en prendre soin, en espérant que à plusieurs personnes, on arrive à toujours
rester synchronisés avec l'upstream. Pour le moment la mayonnaise à l'air de
prendre.
Bien
Les réussites maintenant:
Je suis portmgr@ maintenant, ce qui veut dire que mes démarches pour essayer
d'améliorer les choses ont été bien acceptées :). Je ne
m'attendais vraiment pas à devenir portmgr et encore moins aussi rapidement.
Comme quoi s'investir est payant :)
Les campagnes de "deprecation". Les ports sont tout sauf dictatoriaux, du
coup tout le monde peut y mettre ce qu'il veut ou presque. Mais le problème
c'est que très peu de gens pensent à enlever les ports morts. Ceux, dont il n'y a plus
de distfile publiquement dispo, dont le projet est totalement abandonné, etc. Tout le monde
laisse traîner ça dans ports@. Moi je n'aime pas laisser traîner les vieux trucs
partout comme ça, j'ai donc lancé 2 campagnes de "deprecation" la première a
déjà viré environ 500 ports, la seconde devrait en virer 200 dans quelques jours, je
pense que c'est une réussite et je vais le renouveler régulièrement. :)
Enfin last but not least, PKGNG :). Il y a un peu plus d'un an je tentai de
porter pkgin sur FreeBSD. Je pense avec un certain succès
dans le sens où ça a fonctionné pour de vrai.
Mais j'étais déçu par le côté trop pkgsrc (logique en même temps :)) de l'outil
et par les tours de magie qu'il aurait fallu réaliser pour le faire fonctionner
vraiment correctement sur FreeBSD.
La faute n'est pas à pkgin mais plutôt aux différences entre les ports
et pkgsrc.
Bref de là je me dit qu'il faudrait tout refaire "from scratch", en profiter
pour avoir une architecture autour d'une bibliothèque et tout et tout. En gros je
pensais partir sur une n-ième libpkg-qui-n-aboutira-jamais(c)(tm), pas très motivant :).
Heureusement je n'étais pas seul à m'intéresser au sujet. Deux personnes qui ne
sont pas motivées à l'idée de faire un projet qui n'aboutira pas et qui si même
si il aboutissait ne serait jamais accepté ... Bah c'est assez con pour se
lancer dedans :). Julien Laffaye et moi nous lançons donc dans le projet
(aidé, surtout au début, de Philippe Pépiot), de longs mois plus tard, et toujours
pas convaincu de ne pas faire ça pour rien, on décide de parler du projet
pour le faire connaître. En effet nous avions quelque chose de viable et
espérions ramener ainsi du monde sur le projet. Ce fut une très bonne idée ce
mail :), dans la foulée nous avons été invité à participer au BSDCan pour
présenter pkgng, et participer au groupe de travail sur pkgng. Le baptême du
feu :). Préparé à recevoir des volées de critiques sur le pourquoi de SQLite, ou
de tel autre choix, nous pensions devoir défendre notre bout de gras.
Bilan: pkgng a été accepté sans trop de discussions (grosse surprise :), et est maintenant
clairement vu que le remplaçant des pkg_* tools. Dans quelques jours, on devrait
sortir l'alpha2 avec beaucoup d'évolutions. Mais pas de teasing pour le moment :).
PS: pkgng c'est ici que ça se passe :)