Gnou

Le Blog de Thomas

Logiciels libres, informatique et autres ...

Bitkeeper


Aujourd'hui, j'ai eu besoin d'utiliser Bitkeeper dans le cadre de mon stage. Pour ceux qui ne savent pas, c'est un outil de gestion de versions notamment utilisé par les développeurs du noyau Linux. D'ailleurs, son utilisation avait provoqué de nombreux débats à l'époque, en raison du caractère non-libre de Bitkeeper. Les sources sont disponibles, mais la licence est plutôt restrictive. En fait, il est distribué sous 4 licences différentes.

Je commence par télécharger Bitkeeper. Il faut obligatoirement passer par un formulaire, donner son nom et son e-mail et dire "non, merci, je ne veux pas recevoir vos publicités à deux sous". Je reçois alors un mail contenant le précieux mot de passe pour télécharger le logiciel. Le login n'est autre que bitkeeper et le mot de passe get bitkeeper, ça doit donc être le même login/pass pour tout le monde ...

J'installe ensuite la chose, une jolie interface me pose deux ou trois questions, et j'ai enfin la chose installée dans ~/bin/, histoire de pas polluer le système avec ce genre de saletés ;-)

Ensuite, je commence à récupérer un arbre Bitkeeper, en utilisant la commande bk clone : bk clone bk:/ /sources.mvista.com/linux-2.5-marvell. Le logiciel mouline pendant un paquet de temps pour récupérer tout le bazar. Si j'ai bien compris, il récupère tout l'historique de tous les fichiers, pour que je puisse en local revenir en arrière, repartir, etc...

Une fois le téléchargement terminé, je m'aperçois qu'il n'y rien dans les répertoires ... pas de fichiers. Ils sont dans un format bizarroïde dans un sous-répertoire SCCS. En fait, il faut faire un bk get si on veut voir le fichier, et un bk edit si on veut l'éditer (avec un bk get il est en lecture seule). Et pour l'éditer, il faut apparemment passer par la commande bk vi, je n'ai pas encore bien compris pourquoi. Je fais donc deux modifications à la noix dans deux fichiers, juste pour tester et voir comment se passe un commit.

Je tente donc un bk citool qui lance un outil graphique pour entrer les logs de commit, on peut aussi faire bk ci pour avoir la même chose en mode texte apparemment. Un truc sympa, c'est qu'on peut entrer un message de log pour chaque fichier, et un message de log pour le changeset complet. Je fais tout ça, et je clique sur le bouton commit. Et là, ça se met à mouliner, puis après ça me dit qu'il est pas content, parce qu'il ne peut pas contacter openloggin.org.

Alors là, je trouve ça louche. Pourquoi il veut contacter ce site quand je committe ? Je vais donc voir sur le fameux OpenLogging, et j'y lis : This site contains the changelog information for all projects which use BitKeeper? under the free use license (BKL). The intent is that anyone may watch what is going on in the distributed collection of BitKeeper? repositories worldwide. En gros, dans la version gratuite de Bitkeeper, tu es obligé d'envoyer des changelog à OpenLogging?, c'est comme ça. C'est super, non ?

Je reviens sur le site de Bitkeeper, pour voir de quoi il retourne, et je tombe sur la licence "gratuite", la fameuse BKL, et j'y lis non-commercial users must participate in Open Logging and may receive a reduced level of support. Et dans le chapitre 3 de la licence BKL, on trouve :

3.  LICENSEE OBLIGATIONS

       (a)  Maintaining  Open Logging Feature: You hereby warrant
            that you will not take any action to disable or  oth-
            erwise interfere with the Open Logging feature of the
            BitKeeper Software.  You hereby warrant that you will
            take  any  necessary  actions to ensure that the Bit-
            Keeper Software successfully transmits  the  Metadata
            to  an  Open Logging server within 7 days of the cre-
            ation of said Metadata.  By transmitting the Metadata
            to an Open Logging server, You hereby grant BitMover,
            or any other operator of an Open Logging server, per-
            mission  to  republish  the Metadata sent by the Bit-
            Keeper Software to the Open Logging server.


Donc on est obligé de conserver cette "fonctionnalité". Une autre partie intéressante de la licence, qui avait fait couler beaucoup d'encre, c'est l'impossibilité d'utiliser Bitkeeper si on participe au développement d'un autre outil de gestion de version :

(d)  Notwithstanding any other terms in this License, this
            License is not available to You if  You  and/or  your
            employer  develop,  produce,  sell,  and/or  resell a
            product which contains substantially similar capabil-
            ities  of  the BitKeeper Software, or, in the reason-
            able opinion of BitMover, competes with the BitKeeper
            Software.


Voilà, donc Bitkeeper, d'un point de vue licence, ça craint vraiment. Heureusement qu'il existe des alternatives viables comme Subversion ou GNU Arch !
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]