Du caca dans bitlbee

MAJ: Ainsi que l'on peut le voir dans les commentaires, j'ai tenté de contacter par email Wilmer, un des auteurs de bitlbee, afin de lui parler du projet et d'avoir son avis concernant l'éventuelle utilisation du nom bitlbee2 pour le projet. L'accueil a été très cassant, me demandant de changer le nom, et cherchant à critiquer le projet plutôt que de voir les bonnes idées que j'essaie de pratiquer dans ce projet.
Je reviendrai sur cette histoire dans un billet prochain. En attendant, le projet s'appelle maintenant Minbif.

Tout le monde connaît bitlbee, cette passerelle IRC vers des protocoles d'IM, qui a été créée il y a sept ans et qui est connu notamment pour son support Jabber désastreux.

Lorsqu'il fut créé, ce projet avait pompé du code de GAIM, un logiciel de messagerie instantanée d'abord orienté AIM puis qui est devenu multi-protocole. Bien évidemment, les récupérations upstreams se sont avérées faibles ou inexistantes, ainsi bitlbee bénéficie d'un support de très peu de protocoles : MSN Messenger, AIM, Yahoo et Jabber. En plus de ça, le code des protocoles de bitlbee est hacké de tous les côtés, et le support Jabber a mis très longtemps avant de devenir stable, même si il reste incomplet.
En outre, bitlbee ne supporte qu'une ancienne version du protocole de MSN Messenger (MSNP8 alors qu'on en est à MSNP15), qui ne supporte pas les transferts de fichiers, et est très peu robuste. Un patch avait été établi sur une ancienne version de bitlbee pour supporter le protocole MSN9 et MSN Plus!, mais il ne fut pas intégré à bitlbee, notamment en raison de fonctionnalités potentiellement coûteuses comme le transfert de fichier, posant d'éventuels problèmes sur leur serveur bitlbee public.

Ayant une installation propre de bitlbee, ne supportant plus les limitations de bitlbee, ne souhaitant pas m'attaquer au code incompréhensible (que j'avais eu l'occasion d'appercevoir lorsque j'avais fais un patch), et ayant du temps à perdre (bon ce n'est pas tout à fait vrai), je me suis donc lancé dans l'écriture d'une version 2 de bitlbee from scratch.

Écrit en C++, le grand apport de Bitlbee 2 est d'utiliser la libpurple, cette bibliothèque en C (avec la Glib) créée par et pour Pidgin, le nouveau nom de GAIM après un litige avec AOL, offre toute l'API nécessaire et suffisante pour créer des comptes permettant de se connecter à n'importe lequel des 13 protocoles supportés de base (sans compter les plugins) de façon transparente, gérer la liste des contacts, le transfert de fichier, etc.

Cherchant à éviter les défauts conceptuels de bitlbee, les changements fonctionnels seront (en partie) les suivants :

  • Suppression du robot root. Tout passe maintenant exclusivement par des commandes IRC.
  • Un compte est représenté par un serveur IRC. Ceux qui ignorent l'architecture d'un réseau IRC, celui-ci est composé de plusieurs serveurs reliés les uns aux autres, généralement en étoile.
  • La commande /map est utilisée pour lister les comptes, mais aussi en rajouter, en supprimer ou en modifier.
  • Pour se connecter à un compte, la commande à utiliser est naturellement /sconnect, et /squit pour s'y déconnecter.
  • Remplaçant l'identifiant numérique unique de bitlbee1, il y a maintenant deux manières de représenter un compte. L'identifiant court se présente sous forme <proto><num> ou sous forme longue (utilisée pour les serveurs) <username>:<proto><num>. Par exemple, romain@example.com:jabber0.
  • Chaque compte a son propre salon de statut. Il est également possible de faire partager le même salon de statut à plusieurs comptes.
  • Les salons de statut débutent par '&' alors que les salons sur IM débutent par '#'.
  • La commande /invite sera utilisée sur le salon de statut pour ajouter quelqu'un dans ses contacts.
  • La commande /kick pourra être utilisée pour retirer quelqu'un de ses contacts, et /ban pour bloquer le contact.

Le but à terme est de réimplémenter toutes les fonctionnalités de bitlbee à travers les commandes IRC, et des extra. Je me suis par exemple intéressé ce matin à réaliser ceci :

rendu ASCII-art de l'avatar avec libcaca

Malheureusement, libpurple ne supporte pas la webcam, ce qui est fort dommage, mais j'ai d'autres idées sympa en tête.

13 Responses to “Du caca dans bitlbee”


  • Oh super sympas, j’ai hâte de voir ça, en espérant que ton projet écrase le présent bitlbee :)
  • As-tu demandé aux initiateurs du projet BitlBee si tu pouvais exploiter le nom de leur projet pour revendiquer la version 2 ?
  • Le nom « bitlbee » est nullement déposé, je ne vois donc pas l’inconvénient. Tout du moins, je suis d’accord que pour le moment, il s’agit davantage d’un nom de code. Je compte voir avec eux si ils souhaitent que bitlbee2 soit le successeur de bitlbee, et/ou si ils ne voient pas d’inconvénient à utiliser le même nom. Je ne compte pas rentrer en conflit avec eux, mais bénéficier de la notoriété de bitlbee est un plus :)
  • En matière de droit d’auteur, pour autant que je sache, tu n’as aucun besoin de déposer quoi que ce soit.
  • Le logiciel est libre et sous licence GPL, ainsi que son nom, je pense que ça ne devrait pas poser de problème à ce sujet. Et le droit d’auteur est plus sur le contenu que sur le nom.
  • Le nom n’est effectivement pas couvert par le droit d’auteur, et je pense que sans dépôt au préalable il n’y a aucune protection.
    De toute façon les noms sont différents :) Il s’agit de bitlbee et bitlbee2 et je ne crois pas qu’il y ait des problèmes entre « emacs » et « xemacs ».
  • I want you to cease using the name BitlBee *NOW*.

    I know I have no legal rights on the name and I can’t legally demand this, but any decent person would realise that this is a stupid and lame idea.

    As you say yourself, you’re just copying the name to lift on BitlBee’s reputation. And worst of all, what if I want to release a BitlBee version 2.0?

    By the way, for one of your boasted « shiny extra features », BitlBee supports using more than just numeric account ID’s for *years* already and this is clearly documented.

    Writing a clone of another OSS project because you don’t like the original is a natural thing. Stealing its name, however, is fucking hostile.

  • Someone in #bitlbee just pointed me at

    http://symlink.me/projects/show/minbif

    Is that your new name? I see your name under members so that seems likely. If so, thank you.

  • Actually, the name was bitlbee2, not BitlBee 2.0.
  • Wilmer: The project’s name is changed since this afternoon, as I looked for a new name since your email. As you could see, this article was posted some weeks ago.

    I asked you with good will before any release, so stop being crazy.

  • You asked me before doing any release, but not before using the name on ohloh and many other places already. And yes, you asked, but in your e-mail you wisely didn’t mention that your big plan was to hijack the BitlBee name + project to make yours more successful. :-)

    @pankkake: I’ve seen at least one place where the project was called bitlbee v2.

    But as I already noted before; I see you changed the name. That’s all I wanted, so thank you.

  • Je comprends la déception de l’auteur du projet d’origine, bitlbee. Tu as bien fait de changer de nom, même si — comme je te l’ai déjà dit — un nom plus original (à savoir sans aucune référence à bitlbee) aurait mieux fait l’affaire. Mais, comme je te l’ai dit aussi, tu es maître à bord de ton projet, tant que tu respectes les autres (projets).
  • Franchement je trouve ça dégueulasse de la part de Wilmer de dire des trucs pareils… Je le pensais pas comme ça.

    Je m’en vais de ce pas installer bitlbee2. Merci pour ce joli projet.

Leave a Reply