Serge MIGAYRON Ingénieur SUPELEC Expert en Informatique et en Technologies de l’Information Expert près les Cours d’Appel et Administrative d’Appel de PARIS LINAGORA / BLUE MIND Note Technique établie à la demande de la société LINAGORA 18 février 2013 1 Contexte et mission 2 2 Identification des logiciels et programmes comparés 4 3 1 ère comparaison (version ancienne de BLUE MIND) 7 4 2 ème comparaison (version récente de BLUE MIND) 20 5 Synthèse 33 6 Annexes 39 74, rue Falguière, 75015 PARIS - Std : 33 (0)1 43 22 64 64 - Fax : 33 (0)1 43 22 01 01 Dir : 33 (0)1 43 22 24 19 [email protected] Serge MIGAYRON - 18 février 2013 1 Contexte et mission La société LINAGORA est spécialisée, depuis une dizaine d’années, dans l’édition de logiciels Open Source et la fourniture de prestations de support et de services associés. Elle emploie environ 150 collaborateurs en FRANCE, en BELGIQUE et aux ETATS UNIS. Sa clientèle est autant publique (Armée de l’Air, Assemblés Nationale, Ratp, Ministère de la Défense …) que privée (Macif, France 24, Fnac, Carrefour, Bouygues Telecom…) Parmi les logiciels édités par la société LINAGORA figure une application libre de messagerie collaborative nommée OBM. La société BLUE MIND est également spécialisée, depuis 2010, dans le domaine de l’édition de logiciels libres et la fourniture de prestations de support et de services a ssociés. Elle propose un logiciel de messagerie collaborative Open Source nommé BLUE MIND. Selon la société LINAGORA, le logiciel BLUE MIND utiliserait des sous -ensembles du logiciel OBM sans respecter les termes du contrat de licence s’appliquant à ces sousensembles (licence GNU/GPL v2 ou toute version ultérieure). C’est dans ce contexte que la société LINAGORA nous a demandé de procéder à une analyse comparative des 2 logiciels afin de dire : · si le logiciel BLUE MIND utilise ou non des sous -ensembles du logiciel OBM · dans l’affirmative, si les termes de la licence s’appliquant à ces sous-ensembles du logiciel OBM sont ou non respectés par la société BLUE MIND · dans l’affirmative, si les mentions de paternité figurant dans ces sous -ensembles du logiciel OBM ont ou non été conservées dans le logiciel de la société BLUE MIND 2 Serge MIGAYRON - 18 février 2013 Pour exécuter notre mission, nous nous sommes rendus dans les locaux de la société LINAGORA à LYON où nous avons procédé, en présence de techniciens de cette société, à une analyse comparative des 2 logiciels. A la suite de quoi, nous avons été en mesure d’établir la présente note technique en réponse à notre mission. 3 Serge MIGAYRON - 18 février 2013 2 4 Identification des logiciels et programmes comparés Présentation de la solution OBM OBM est une solution collaborative (dite « groupware ») libre qui permet à des utilisateurs de stocker, organiser et partager des fichiers de rendez-vous, de contacts, de courriels, de documents. OBM offre également des fonctions de gestion de projet et de planning. L’architecture de la solution est composée d’un serveur qui est accessible, soit via un navigateur web, soit via un logiciel installé s ur le poste du client tel qu’OUTLOOK (« client lourd ») pour la messagerie (IMAP ou POP3) ou l’annuaire (LDAP). OBM se synchronise (soit en mode direct, soit via des outils complémentaires tel qu’ACTIVESYNC) avec de nombreux terminaux mobiles tels que des smarphones. OBM supporte de nombreux standards de communication tels que SOAP, LDAP, ICAL, HTTP, HTTPS, SMTP, IMAP, POP3... La solution OBM peut être utilisée de façon autonome ou être intégrée à un système d'information existant. Périmètre de comparaison Nous avons concentré notre comparaison sur 2 modules du logiciel OBM nommés OBM-SYNC et OBM OPUSH (ou OPUSH), tous 2 soumis à la licence GNU/GPL v2 ou Serge MIGAYRON - 18 février 2013 toute version ultérieure. OBM-SYNC fournit les fonctions qui permettent de synchroniser les agendas, les fichiers de contacts et les tâches avec les clients lourds (tels qu’OUTLOOK), les terminaux mobiles (tels que les PDA ou assistants personnels). Ces fonctions sont mises à la disposition des développeurs sous forme de web services. OPUSH fournit les fonctions de synchronisation de périphériques mobiles au standard ACTIVESYNC de MICROSOFT. Il permet à un terminal portable (supportant ce protocole) tel un smartphone d'être synchronisé avec un PC de bureau ou un serveur MICROSOFT EXCHANGE. Les fonctions de synchronisation offertes par ces 2 modules sont essentielles à des ut ilisateurs mobiles ou distants de messageries collaboratives car elles leur permettent de bénéficier, sur leurs différents lieux de travail ou de déplacement d’informations à jour en temps réel. Dans ces 2 modules, nous avons retenu les 9 programmes (ou « classes ») suivants : · Programme 1 : “Ical4jHelper.java” (OBM SYNC) pour intégrer une librairie (iCal4j) de manipulation du format iCalendar (Rfc) · Programme 2 : “CalendarBindinglmpl.java” (OBM SYNC) contient la logique métier des web services de manipulatio n du calendrier · Programme 3 : “CalendarHome.java” (OBM SYNC) contient la logique d’accès aux données pour les web services de manipulation du cale ndrier · Programme 4 : “BookItemsWriter.java” (OBM SYNC) de codification des données d’entrée et de sortie des web services de gestion des contacts · Programme 5 : “ResultSetProxy.java” (OPUSH) relative à l'interaction technique avec la base de données · Programme 6 : “SyncHandler.java” (OPUSH) d'implémentation de la logique liée à une commande de synchronisation d u protocole Microsoft Activ eSync · Programme 7 : “EmailManager.java” (OPUSH) de synchronisation des emails dans opush 5 Serge MIGAYRON - 18 février 2013 · 6 Programme 8 :“EventConverter.java” (OPUSH) de conversion entre le modèle de données OBM et le modèle de données Microsoft ActiveSync · Programme 9 :“ActiveSyncServlet.java” (OPUSH) d'implémentation générique de commande Microsoft ActiveSync Ces 9 programmes représentent environ 8.000 lignes soit 10 % des lignes totales des 2 modules OBM SYNC et OPUSH (80.000 lignes). Versions comparées des modules Nous avons retenu les versions suivantes des modules : · OBM SYNC version 2.3.9. Archive « obm-sync-2.3.9.tar.gz » téléchargée à partir de l’adresse « obm.org/content/old-versions ». L’empreinte md5 de l’archive est : « 488e07dc572fec9ff46c10c08fca8f55 » · OPUSH version 2.3.24. Archive « opush-2.3.24.tar.gz » téléchargée à partir d’un serveur de la société LINAGORA. L’empreinte md5 de l’archive est : « 1a2b01f487530192b33a85c1641efae7 » Nous avons également téléchargé cette archive à partir de l’adresse « code.google. com/p/o-push/source/checkout » puis avons procédé à une comparaison de ces 2 archives, classe par classe, afin de vérifier leur identité (cf. annexes 1). · BLUEMIND : Archives téléchargées à partir de l’adresse « http://git.blue- mind.net ». Nous avons retenu : · la version la plus ancienne de l’archive d’empreinte md5 d’empreinte md5 « 3b684cfa13279f0be6abe2dbc035aa4df963dbc4 » · la version la plus récente de « 25ad84c706b0ced827d308f67407654ba6a5a769 » l’archive Serge MIGAYRON - 18 février 2013 3 1 ère comparaison (version ancienne de BLUE MIND) Programme 1, “Ical4jHelper.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 2.1. 91% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 7 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1. 8 Serge MIGAYRON - 18 février 2013 Programme 2, “CalendarBindinglmpl.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 2.2. 61% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 9 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 10 Serge MIGAYRON - 18 février 2013 Programme 3, “CalendarHome.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 2.3. 69% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 11 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1. 12 Serge MIGAYRON - 18 février 2013 Programme 4, “BookItemsWriter.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 2.4. 62% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 13 Serge MIGAYRON - 18 février 2013 Programme 5, “ResultSetProxy.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 2.5. 100% des lignes des 2 programmes sont identiques . Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 14 Serge MIGAYRON - 18 février 2013 Programme 6, “SyncHandler.java” (OPUSH) Les résultats de la comparaison réalisée figurent en annexe 2.6. 92% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 15 Serge MIGAYRON - 18 février 2013 Programme 7, “EmailManager.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 2.7. 89% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme dans le programme : 16 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 17 Serge MIGAYRON - 18 février 2013 Programme 8, “EventConverter.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 2.8. 89% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 18 Serge MIGAYRON - 18 février 2013 Programme 9, “ActiveSyncServlet.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 2.9. 82% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 19 Serge MIGAYRON - 18 février 2013 4 2 ème comparaison (version récente de BLUE MIND) Programme 1, “Ical4jHelper.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 3.1. 89% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 20 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 21 Serge MIGAYRON - 18 février 2013 Programme 2, “CalendarBindinglmpl.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 3.2. 49% des lignes des 2 programmes sont identiq ues. Licence LINAGORA dans le programme : 22 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 23 Serge MIGAYRON - 18 février 2013 Programme 3, “CalendarHome.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en annexe 3.3. 52% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 24 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 25 Serge MIGAYRON - 18 février 2013 Programme 4, “BookItemsWriter.java” (OBM SYNC) Les résultats de la comparaison réalisée figurent en a nnexe 3.4. 56% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 26 Serge MIGAYRON - 18 février 2013 Programme 5, “ResultSetProxy.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 3.5. 98% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 27 Serge MIGAYRON - 18 février 2013 Programme 6, “SyncHandler.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 3.6. 83% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 28 Serge MIGAYRON - 18 février 2013 Programme 7, “EmailManager.java” (OPUSH) Les résultats de la comparaison réalisée figurent en annexe 3.7. 78% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : 29 Serge MIGAYRON - 18 février 2013 Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1. 30 Serge MIGAYRON - 18 février 2013 Programme 8, “EventConverter.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 3.8. 80% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 31 Serge MIGAYRON - 18 février 2013 Programme 9, “ActiveSyncServlet.java” (OPUSH) Les résultats de la comparaison réalisée figurent en a nnexe 3.9. 77% des lignes des 2 programmes sont identiques. Licence LINAGORA dans le programme : Néant Licence BLUE MIND dans le programme : Le fichier “License.txt” d’exceptions de BLUE MIND est joint en annexe 4.1 . 32 Serge MIGAYRON - 18 février 2013 5 33 Synthèse La solution OBM Les logiciels constituant la solution OBM développée par la société LINAGORA s’inscrivent dans le contexte évolutif et innovant des outils collaboratifs dits de « groupware ». Ces outils permettent à chacun de nous d’utiliser sa messagerie, ses contacts, son agenda, sur ses différents lieux de travail ou de mobilité. Les informations sont mises à jour en temps réel grâce aux fonctions de synchronis ation supportées par ces outils. L’usage, généralisé depuis quelques années, des terminaux mobiles tels que les smar tphones (iPhone, Galaxy Androïd …) ou les tablettes (iPad), tant dans la vie privée que dans la vie professionnelle, impose des solutions particulièrement performantes, en termes de fiabilité, d’ergonomie et de rapidité. Ce secteur est un des plus dynamiques et créatifs de l’industrie informatique. Résultats des comparaisons effectuées Les taux d’identité constatés dans les comparaisons réalisées, sont, programme par programme, les suivants : Serge MIGAYRON - 18 février 2013 34 Version Version ancienne de récente de BLUEMIND BLUEMIND Programme 1 (OBM SYNC , Ica l4jHe lper.ja va ) 91 % 89 % Programme 2 (OBM SYNC , Ca lendarBindin glmp l.java ) 61 % 49 % Programme 3 (OBM SYNC , Ca lendarHome.ja va ) 69 % 52 % Programme 4 (OBM SYNC , BookIte msWr iter.java ) 62 % 56 % Programme 5 (OPUSH, Resu lt SetProxy.j ava ) 100% 98 % Programme 6 (OPUSH , S yncH andler.ja va ) 92 % 83 % Programme 7 (OPUSH , E ma ilM anager.java ) 89 % 78 % Programme 8 (OPUSH , E ventConverter.java ) 89 % 80 % Programme 9 (OPUSH , Act ive SyncServlet.java ) 82 % 77 % Programme Ces taux d’identité sont très élevés, ne peuvent s’expliq uer par des contraintes techniques et ne laissent aucun doute quant à une origine commune des programmes comparés. Les noms des programmes sont d’ailleurs identiques dans les 2 logiciels. On constate que les taux d’identité mesurés diminuent lentement dans le temps mais demeurent encore très élevés aujourd’hui. Licences des programmes comparés Les licences identifiées dans les codes sources des programmes comparés sont les su ivantes : Licence Licence LINAGORA BLUEMIND GNU GPL v2 ou GNU GPL Affero vers ultérieure v3 / CeCILL v2 Programme Programme 1 (OBM SYNC, Ica l4jHe lper.ja va ) Serge MIGAYRON - 18 février 2013 35 Programme 2 (OBM SYNC, Ca lendarBin- GNU GPL v2 ou GNU GPL Affero din g lmpl.ja va ) vers ultérieure v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero vers ultérieure v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero vers ultérieure (1) v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero Programme 3 (OBM SYNC, Ca lendarHome.ja va ) Programme 4 (OBM SYNC, BookIte msWr iter.java ) Programme 5 (OPUSH, Resu lt SetProxy.j ava ) vers ultérieure (1) v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero vers ultérieure (1) v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero vers ultérieure v3 / CeCILL v2 Programme 6 (OPUSH, S yncH andler.ja va ) Programme 7 (OPUSH, E ma ilM anager.java ) GNU GPL v2 ou GNU GPL Affero vers ultérieure (1) v3 / CeCILL v2 GNU GPL v2 ou GNU GPL Affero vers ultérieure (1) v3 / CeCILL v2 Programme 8 (OPUSH, E ventConverter.java ) Programme 9 (OPUSH, Act ive SyncServlet.java ) Il est à noter que l’indication de licence commerciale suivante est présente dans les programmes de BLUE MIND : « Blue Mind SAS also offers commercial licenses with additional warranties » Concernant les programmes sans mention de licence dans le code source (1), la société LINAGORA nous a indiqué qu’ils étaient soumis à la licence GNU GPL v2 ou toute version ultérieure. Cette explication est corroborée par la présence, à la racine du répertoire « Obm-Sync 2.3.9 », du fichier « header » suivant : Serge MIGAYRON - 18 février 2013 36 Selon l’explication fournie par la société LINAGORA et l’observation qui précède, les programmes 4, 5, 6, 8 et 9 du tableau ci-dessus apparaissent donc également soumis à la licence GNU v2 ou plus. Il apparaît que pour chacun des 9 programmes la licence applicable a été supprimée et remplacée. Mentions de paternité des programmes comparés Les mentions de paternité identifiées dans les codes sources des programmes de LI- NAGORA sont les suivantes : Programme Programme LINAGORA Programme BLUEMIND Copyright © Blue Mind SAS, Programme 1 (OBM SYNC, Ica l4jHe lper.ja va ) Copyright © 1997 - 2008 2012 Aliasource - Groupe Linagora Pas de mention de patern ité d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Programme 2 (OBM SYNC, Copyright © 1997 - 2008 CalendarB ind ing lmpl.java ) Aliasource - Groupe Linagora 2012 Pas de mention de patern ité d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Programme 3 (OBM SYNC, CalendarHome.java ) Copyright © 1997 - 2008 2012 Aliasource - Groupe Linagora Pas de mention de patern ité d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Copyright © 1997 - 2008 Programme 4 (OBM SYNC, 2012 Aliasource - Groupe Linagora Pas de mention de patern ité BookItemsWr iter.ja va ) (2) d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Copyright © 1997 - 2008 Programme 5 (OPUSH, Re- 2012 Aliasource - Groupe Linagora Pas de mention de patern ité sultSetProxy.java ) (2) d’Aliasource ou de Linagora Programme 6 (OPUSH , S yn- Copyright © 1997 - 2008 Copyright © Blue Mind SAS, Serge MIGAYRON - 18 février 2013 cHand ler.java ) 37 Aliasource - Groupe Linagora (2) 2012 Pas de mention de patern ité d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Programme 7 (OPUSH, Ema ilManager.ja va ) Copyright © 1997 - 2008 2012 Aliasource - Groupe Linagora Pas de mention de patern ité d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Copyright © 1997 - 2008 Programme 8 (OPUSH, 2012 Aliasource - Groupe Linagora EventConverter.java ) Pas de mention de patern ité (2) d’Aliasource ou de Linagora Copyright © Blue Mind SAS, Copyright © 1997 - 2008 Programme 9 (OPUSH, Act i- 2012 Aliasource - Groupe Linagora veSyncSe rvlet.ja va ) Pas de mention de patern ité (2) d’Aliasource ou de Linagora Concernant les programmes 4, 5, 6, 8, 9 (2), la société LINAGORA nous a indiqué que la mention de paternité « Copyright © 1997 - 2008 Aliasource - Groupe Linagora » s’appliquait. Cette explication est corroborée par le contenu du fichier « header » précédent. On constate donc que les mentions de paternité LINAGORA ne sont présentes dans aucun des 9 programmes BLUE MIND. Serge MIGAYRON - 18 février 2013 38 A PARIS, le 18 février 2013 Serge MIGAYRON