====== L'écho des gnous 108 Face B ====== Diffusée le 15 février 2015. Présents : Sébastien, Antonin Vous pourrez réagir en direct * sur IRC : http://webchat.freenode.net/ canal #chtinux * au téléphone : 03 20 91 24 00 (pendant les pauses musicales) Sources : * [[https://aful.org/ressources/fourches-forks]] ====== Sujet ====== Le fork (au sens "développement logiciel"). Qu'est-ce qu'un fork? Réussite ou échec? ====== Qu'est-ce qu'un fork? ====== * Un fork est une duplication du code source d'un logiciel déjà existant, dont les droits autorisent l'utilisation, la modification et la redistribution de ce code source. * Pas forcément une particularité du logiciel libre. Ex: lors d'un rachat d'une entreprise par une autre. Secret puisque le code n'est pas disponible. * Un fork est facilement effectué via des plateformes en ligne de gestion de sources, tel que Gitorious, Bitbucket ou encore GitHub. ====== Les enjeux ====== Un fork peut naître de plusieurs façons: * divergence d'opinion de la part des développeurs du projet, * le refus d'incorporer des améliorations légitimes (type précis de fork appelé spork), * nécessité de sauver un projet dans sa licence actuelle (en prévention d'un futur rachat par exemple), * agonie du projet source et nécessité de lui redonner une nouvelle vie sous une nouvelle forme. * La libération d'un programme initialement sous licence propriétaire (le rachat des droits d'auteur de Blender en 2002). * Rendre propriétaire un logiciel libre. * Acquérir une indépendance par rapport à une entreprise commerciale (Mageia, LibO). On différencie les forks amicaux (rapports amicaux entre le projet parent et le projet fils) des forks inamicaux (rapports conflictuels entre le projet parent et le projet fils). * Spork : Refus plus ou moins légitime d'un mainteneur de paquet d'appliquer des corrections et améliorations. * Permet aussi de créer un projet intermédiaire pour maintenir les paquets communs de manière commune. * Le meilleur exemple : LibreOffice. Devant le manque de visibilité du projet offert par Oracle, la communauté de dev crée The Document Fondation pour entité juridique du projet. Elle demande à Oracle de lui céder le nom Ooo et de lui céder le nom du projet => refus. * Finalement, projet cédé à la fondation Apache, qui est devenu Apache OpenOffice. Résultat : LibO est le descendant naturel d'Ooo. * Indépendance gagnée par le projet par rapport à la stratégie commerciale d'Oracle. ====== Effets sur le projet original ====== Les enjeux sont donc de se conformer à une spécifité / fonctionnalité d'un logiciel précis, en fonction de son opinion ou alors de la légitimité du code source, de sa licence. * Soit ça ne fait rien (Free BSD continue son bonhomme de chemin malgré les nombreux forks, Debian également). * Soit ça tue complétement le projet original (LibreOffice a tué Ooo, Inkscape a tué Sodipodi...) * Soit la fourche meurt (difficulté de maintenir un projet en étant seul par exemple) La survie de la fourche dépend : * de la pertinence de la fourche (le but est-il légitime ou farfelu, genre défi technologique). * de la notoriété de la personne qui fourche (grand nom reconnu ou pas) * des réactions du projet original (en fonction de leur amour ou non du logiciel libre). * des utilisateurs. Accueillent-ils le projet de manière favorable. * de la volonté de la personne qui fourche. Arrive-t-elle à constituer une équipe ou restera-t-elle seule ? ====== Les grands avantages ====== * Pas de risque de perdre un logiciel en cas de litige * Capacité de continuer un projet basé sur ses propres opinions, librement * Avantage de ne pas commencer un nouveau projet à zéro ====== Les grands inconvénients ====== * Les forks sont souvent interprétés négativement pour le développement -> risque de conflits entre projets (forks inamicaux) * Dispersion des ressources au lieu de donner l'avantage à la contribution * Incompatibilité des versions et grande confusion occasionnée chez l'utilisateur et le développeur * Le fork et le travail sur un projet a un coût (matériel et temporel) * Risque de tuer le projet mère * Rapide obsolescence du fork s'il n'est pas rapidement suivi ====== Les fusions ====== Attention : ne pas confondre les forks avec les fusions (fusion de deux projets pour une nouvelle version donnée). * LxQt, gestionnaire de bureau léger, fusion de LXDE et RazorQT * Compiz et Beryl ont fondé CompizFusion en 2007 ====== Quelques exemples (re)connus ====== * LibreOffice, fork d'OpenOffice. * Les distributions qui proposent une expérience facilitée : Ubuntu (Debian), Manjaro (Archlinux)... * Les gestionnaires de bureau (shell) : MATE (GNOME 2) * Le renommage des applications Mozilla par Debian [[http://fr.wikipedia.org/wiki/Renommage_des_applications_de_Mozilla_par_Debian]] * Frise des forks des distributions Linux [[http://en.wikipedia.org/wiki/Fork_%28software_development%29#mediaviewer/File:Linux_Distribution_Timeline.svg]]