®om's blog { un blog libre }

Contributions

Une liste des quelques contributions que j’ai effectuées sur des projets libres, avec une description succincte.

Mes mini-projets

libusb

libusb est une bibliothèque C pour communiquer sur USB.

J’ai corrigé un bug qui pouvait provoquer l’arrêt de l’event thread udev lors d’un signal. En particulier, il s’arrêtait à chaque fois qu’une FileDialog Qt/QML était ouverte.
contribution acceptée et mergée (cf commit 0a02d12)

F-Droid

F-Droid est un store d’applications libres pour Android. Cet article LinuxFR fournit un bon résumé.

J’ai corrigé quelques bugs qui m’agaçaient lors de l’utilisation de l’application.

L’état de l’application n’était pas mis à jour immédiatement lors d’une installation ou désinstallation d’une application (l’écran affichait donc une information erronée).
contribution acceptée et mergée

L’application plantait lors de la désinstallation d’applications.
contribution acceptée et mergée

L’application pouvait également planter pour une autre raison si l’activité avait été détruite par le système pendant l’installation ou la désinstallation d’une application.
contribution acceptée et mergée

Android Universal Image Loader

Android-Universal-Image-Loader est une bibliothèque facilitant le chargement d’images dans les applications Android.

J’ai corrigé un bug aspect-ratio sur les images circulaires.
contribution en attente d’acceptation

VLC

J’ai corrigé un problème de deadlock pouvant survenir lors de l’arrêt d’un flux UDP sur le lecteur vidéo VLC.
contribution refusée (ne corrige pas la cause profonde du problème)
Le deadlock se produit lorsque les appels rapprochés à deux fonctions surviennent dans un certain ordre. Mon patch empêchait le deadlock dans ce cas. Un développeur de VLC considère plutôt que la cause du problème est que ces deux fonctions ne devraient jamais être appelées dans cet ordre.

Android Open Source Project

J’ai rapporté un bug constaté sur l’utilisation loaders lors de la rotation d’écran, pour lequel j’ai ensuite proposé un patch.
contribution en attente d’acceptation

J’ai également supprimé une petite erreur dans la documentation de SharedPreferences.
contribution acceptée et mergée

GoogleCast

J’ai corrigé une fuite mémoire sur la CastCompanionLibrary (la bibliothèque de Google pour communiquer avec un chromecast).
contribution acceptée (mais réimplémentée par naddaf)

Serval/Batphone

Le projet Serval, en particulier son application Batphone pour Android, a pour but de faire communiquer les téléphones sur un réseau maillé (sans infrastructure). Voir par exemple les articles du Monde, de Next Inpact ou de Korben.

Protocole MDP

J’ai effectué deux modifications concernant le protocole MDP (l’équivalent de l’UDP sur réseau Mesh).

La première rend l’utilisation du MDP similaire à l’API socket standard C, et rend possible l’utilisation de plusieurs services simultanés.
contribution acceptée et mergée (cf commit 954a8a0)

La seconde implémente les “bindings Java” permettant d’utiliser les sockets MDP en Java, de manière similaire à l’API socket Java.
non mergée

Talkie-walkie mesh

J’ai ensuite développé, en utilisant le protocole MDP ainsi modifié, un mode talkie-walkie (communication n-to-n) sur réseau mesh.
(, ) non destiné à être mergé en l’état

Support du Galaxy Nexus et de la Nexus 7 avec ROM modifiée

Thinktube a modifié Android pour y ajouter le support du mode ad-hoc. En particulier, ils ont codé le pilote pour le faire fonctionner sur Galaxy Nexus. Cependant, tel quel, Serval ne pouvait pas piloter le wifi sur ce téléphone. J’ai donc ajouté la “colle” manquante. J’ai ensuite fait de même pour la Nexus 7.
() non destiné à être mergé en l’état (mais partiellement intégré)
contribution acceptée et mergée

Parallélisation de Rhizome

Tous les traitements de Serval sont effectués dans un seul thread, ce qui pose problème avec Rhizome, qui exécute des actions longues, bloquant tous traitements liés au routage et au transfert de données.

J’ai proposé une implémentation de parallélisation de Rhizome basée sur les threads POSIX.
contribution non mergée

Réflexions sur Rhizome

Ce n’est pas du code, mais des réflexions sur le fonctionnement de Rhizome.

Rhizome over Git

J’ai aussi implémenté un PoC pour explorer le principe d’implémenter la partie stockage de Rhizome par-dessus git.

Autres contributions

AndroidAnnotations

AndroidAnnotations est un framework qui aide au développement d’applications Android en générant du code à partir d’annotations lors de la compilation.

Annotation @Background

J’ai ajouté la possibilité de sérialiser, à la demande, l’exécution de tâches en arrière-plan. Concrètement, cela permet d’écrire @Background(serial="some_id") pour garantir que toutes les actions ayant le même identifiant soient séquentielles.
contribution acceptée et mergée

J’ai ensuite ajouté la possibilité d’annuler des tâches exécutées en arrière-plan.
contribution acceptée et mergée

Intégration plus simple avec Ant

Le wiki propose une intégration d’AndroidAnnotations avec Ant trop compliquée et intrusive. J’en propose une autre, plus simple et plus naturelle.

Autres contributions

K9mail

K9mail est un client mail Android.

J’ai effectué une minuscule modification d’optimisation des performances.
contribution acceptée et mergée

XBMC-remote

XBMC-remote est un client Android pour XBMC.

Pour générer un programme exécutable à partir des sources, j’ai généré les scripts de build Ant pour le projet et pour une bibliothèque utilisée en dépendance.
contribution acceptée et mergée

MPDroid

MPDroid est un client Android pour MPD.

Pour générer un programme exécutable à partir des sources, j’ai généré les scripts de build Ant.
contribution acceptée et mergée

MyFreeTV

Un petit logiciel pour regarder la TV avec la Freebox que j’ai commis en 2005. myfreetv.sourceforge.net maintenant obsolète