# Collaborer à FreeBSD

### Jordan Hubbard

$FreeBSD: doc/fr_FR.ISO8859-1/articles/contributing/article.sgml,v 1.8 2007/01/05 15:01:13 blackend Exp $

FreeBSD est une marque déposée de Wind River Systems, Inc. Il est prévu qu'elle change rapidement.

IEEE, POSIX, et 802 sont des marques déposées de Institute of Electrical and Electronics Engineers, Inc. aux Etats Unis.

Plusieurs désignations utilisées par les constructeurs et vendeurs pour distinguer leurs produits sont mentionnées comme des marques enregistrées. Lorsqu'elles apparaissent dans ce document et que le projet FreeBSD est au courant de cette mention, la désignation est suivie du symbole “™” ou du symbole “®”.

Cet article décrit les différentes manières pour une personne individuelle ou une organisation de collaborer au projet FreeBSD.

La redistribution du code source (SGML), modifié ou non, et compilé (HTML, PostScript, etc.) est soumise aux conditions suivantes :

1. Le copyright ci-dessus, la présente liste de conditions et l'avertissement qui la suit doivent figurer dans le code source.

2. Le code source distribué sous forme compilée doit faire apparaître le copyright ci-dessus, la présente liste de conditions et l'avertissement qui la suit.

CE DOCUMENT EST FOURNI ``TEL QU'EN L'ÉTAT'' PAR LE PROJET DE DOCUMENTATION FRANÇAISE DE FreeBSD ET IL N'EST DONNÉ AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, QUANT À SON UTILISATION COMMERCIALE, PROFESSIONNELLE OU AUTRE. LES COLLABORATEURS DU PROJET DE DOCUMENTATION FRANÇAISE DE FreeBSD NE PEUVENT EN AUCUN CAS ÊTRE TENUS POUR RESPONSABLES DE QUELQUE DOMMAGE OU PRÉJUDICE DIRECT, INDIRECT, SECONDAIRE OU ACCESSOIRE (Y COMPRIS LES PERTES FINANCIèRES DUES AU MANQUE À GAGNER, À L'INTERRUPTION D'ACTIVITÉS, OU LA PERTE D'INFORMATIONS ET AUTRES) DÉCOULANT DE L'UTILISATION DE LA DOCUMENTATION OU DE L'IMPOSSIBILITÉ D'UTILISER CELLE-CI, ET DONT L'UTILISATEUR ACCEPTE L'ENTIÈRE RESPONSABILITÉ.

Version française de Marc Fonvieille `<blackend@FreeBSD.org>`.

Première version de Tuyet Tram Dang Ngoc `<dntt@prism.uvsq.fr>`

[ Multiples pages HTML / Page HTML unique ]

Alors, comme ça vous voulez collaborer à FreeBSD? C'est génial! FreeBSD s'appuie sur les contributions de sa base d'utilisateurs pour survivre. Vos contributions ne sont pas seulement appréciées, elles sont vitales pour la constante progression de FreeBSD.

Contrairement à ce que certains pourraient vous faire croire, vous n'avez pas besoin d'être un expert programmeur ou un ami proche de l'équipe principale de FreeBSD pour avoir vos contributions acceptées. Un grand nombre, toujours en augmentation, de collaborateurs à travers le monde, dont les âges et l'expertise technique sont très variables, développent FreeBSD. Il y a toujours plus de travail à faire que de personnes disponibles pour s'en occuper, et davantage d'aide est toujours appréciée.

Le projet FreeBSD est responsable de tout l'environnement du système d'exploitation, et pas seulement d'un noyau ou de quelques utilitaires éparpillés. Ainsi, nos listes `TODO` (à faire) s'étendent sur une large gamme de tâches: depuis la documentation, les béta-tests et la présentation, jusqu'à l'installateur système et des types de développement du noyau hautement spécialisés. Des personnes de n'importe quel niveau de compétence, dans presque tous les domaines, pourront sûrement aider le projet.

Les entités commerciales engagées dans des entreprises relatives à FreeBSD sont également encouragées à nous contacter. Vous avez besoin d'une extension spéciale pour faire fonctionner votre produit? Vous nous trouverez réceptif à vos requêtes, du moment quelles ne sont pas trop exotiques. Vous travaillez sur un produit à valeur ajoutée? Faites-le nous savoir! Nous serons peut être en mesure de coopérer sur certains aspects. Le monde du logiciel libre va à l'encontre de nombreuses idées reçues sur la manière dont les logiciels sont développés, vendus, et maintenus, et nous vous invitons à lui donner au moins un second regard.

## 1. Les besoins

La liste suivante de tâches et de sous-projets représente une sorte d'amalgame des différentes listes `TODO` et des demandes d'utilisateurs.

### 1.1. Tâches de non-programmeur

De nombreuses personnes impliquées dans FreeBSD ne sont pas des programmeurs. Le projet comprend des rédacteurs de documentation, des concepteurs de site web, et des personnes assurant le support. La contribution de ces personnes se matérialise sous la forme d'un investissement en temps et une volonté d'apprendre.

1. Lisez la FAQ et le Manuel régulièrement. Si quelque chose est mal expliquée, pas à jour ou tout simplement complètement faux, signalez-le nous. Mieux, envoyez nous un correctif (le SGML n'est pas difficile à apprendre, mais il n'y aucune objection à des soumissions en format ASCII).

2. Aidez à traduire la documentation FreeBSD dans votre langue. Si la documentation existe déjà dans votre langue, vous pouvez aider à traduire des documents supplémentaires ou contrôler que les traductions sont à jour. Consultez tout d'abord la FAQ sur les traductions dans l'Introduction au Projet de Documentation de FreeBSD. Notez que vous ne vous engagez pas à traduire chacun des documents FreeBSD ce faisant -- en tant que volontaire, vous pouvez faire autant que vous le désirez. Une fois que quelqu'un commence à traduire, presque toujours d'autres personnes rejoindront l'effort. Si vous n'avez le temps et l'énergie pour ne traduire qu'une partie de la documentation, traduisez les instructions d'installation.

3. Lisez la liste de diffusion pour les questions d'ordre général à propos de FreeBSD et le groupe de discussion comp.unix.bsd.freebsd.misc de temps en temps (ou même régulièrement). Il peut être très gratifiant de partager son expérience et d'aider les gens à résoudre leurs problèmes; parfois vous pourrez même apprendre quelque chose de nouveau! Ces forums peuvent être également une source d'idées sur ce qu'il faut améliorer.

### 1.2. Tâches de programmeur

La plupart des tâches listées ici nécessitent soit un investissement considérable en temps, soit une connaissance en profondeur du noyau, ou les deux. Cependant, il y a également de nombreuses tâches utiles pour les ``programmeurs occasionnels''.

1. Si vous utilisez FreeBSD-CURRENT et que vous avez une bonne connexion Internet, il existe une machine `current.FreeBSD.org` qui compile une version complète une fois par jour--à chaque fois, essayez d'installer la dernière version et rapportez toutes les erreurs durant le processus.

2. Lisez la liste de diffusion des rapports de bogue de FreeBSD. Il peut y avoir un problème que vous pouvez commenter de manière constructive ou avec des correctifs que vous pouvez tester. Ou vous pourrez même tenter de corriger un de ces problèmes vous-même.

3. Si vous connaissez un correctif qui a été appliqué avec succès sur la branche -CURRENT mais qui n'a pas été intégré dans la branche -STABLE après un intervalle de temps raisonnable (normalement quelques semaines), envoyez au responsable un rappel poli.

4. Déplacer des contributions logiciels vers `src/contrib` dans l'arborescence des sources.

5. Assurez vous que le code dans `src/contrib` est à jour.

6. Compiler l'arbre des sources (ou une partie) avec tous les messages d'avertissements activés et corriger les avertissements.

7. Corriger les avertissements pour les logiciels portés qui font des choses obsolètes comme utiliser `gets()` ou inclure `malloc.h`.

8. Si vous avez collaboré à un des logiciels portés, envoyez vos correctifs à leur auteur original (cela vous rendra la vie plus facile lors de la sortie de la prochaine version).

9. Récupérer des copies de normes précises comme POSIX®. Vous pouvez trouver des liens sur ces normes sur le site du Projet FreeBSD de conformité aux normes C99 et POSIX. Comparer le comportement de FreeBSD avec celui requis par la norme. Si le comportement diffère, en particulier pour des éléments subtiles et obscures de la spécification, envoyez un rapport de bogue à ce sujet. Si vous en êtes capable, déterminez comment le corriger et joignez un correctif à votre rapport de bogue. Si vous pensez que la norme est erronée, demandez à l'organisme de normalisation de considérer la question.

10. Suggérer d'autres tâches pour cette liste!

### 1.3. Travailler avec la base de données des rapports de bogue (PR)

La liste des PRs de FreeBSD donne tous les rapports de problème actuellement actifs et les demandes d'amélioration qui ont été soumis par les utilisateurs de FreeBSD. La base de données des PRs comprend des tâches de programmeurs et de non-programmeurs. Consultez les PRs ouverts, et voyez s'il y a quelque chose qui peut vous intéresser. Certaines de ces tâches peuvent être des tâches très simples qui ne nécessitent qu'une paire d'yeux supplémentaire pour vérifier et confirmer que le correctif dans le PR est correct. D'autres peuvent être bien plus complexes, ou pourront même ne pas inclure de correctif du tout.

Commencez avec des PRs qui n'ont pas été assignés à quelqu'un d'autre. Si le PR est assigné à quelqu'un d'autre, mais qu'il semble que c'est quelque chose dont vous pouvez vous charger, envoyez un courrier électronique à la personne en question et demandez si vous pouvez travailler dessus--elle pourra déjà avoir un correctif prêt à être testé, ou des idées supplémentaires sur lesquelles vous pourrez discuter.

## 2. Comment participer

Les contributions au système tombent généralement dans une ou plusieurs des 5 catégories suivantes:

### 2.1. Rapport de bogue et commentaires généraux

Une idée ou une suggestion d'intérêt technique général devrait être envoyée à la liste de diffusion pour les discussions techniques sur FreeBSD. De même, les personnes intéressées par de telles choses (et qu'un grand volume de courrier électronique ne dérange pas) devraient s'abonner à la liste de diffusion pour les discussions techniques sur FreeBSD en envoyant un courrier électronique à `<majordomo@FreeBSD.org>`. Voir le Manuel FreeBSD pour plus d'information à ce propos et sur les autres listes de diffusion.

Si vous trouvez un bogue ou que vous soumettez une modification spécifique, rapportez-le en utilisant le programme send-pr(1) ou son équivalent web. Essayez de remplir chaque champ du rapport de bogue. A moins qu'ils ne dépassent 65KO, inclure tous les correctifs directement dans le rapport. Si le correctif peut être appliqué directement sur l'arbre des sources ajoutez `[PATCH]` dans le synopsis du rapport. Quand vous ajoutez des correctifs, ne pas utiliser le copier-coller car ce dernier transforme les tabulations en espaces et rend les correctifs inutilisables. Pensez à compresser les correctifs et à utiliser uuencode(1) s'ils dépassent 20KO.

Après avoir rempli un rapport, vous devriez recevoir une confirmation accompagnée d'un numéro de suivi. Conservez ce numéro de suivi afin que vous puissiez nous soumettre plus de détails au sujet du problème en envoyant un courrier électronique à `<FreeBSD-gnats-submit@FreeBSD.ORG>`. Utilisez le numéro comme sujet du message, e.g. `"Re: kern/3377"`. Toute information supplémentaire sur un rapport de bogue devrait être soumise de cette manière.

Si vous ne recevez aucune confirmation dans un temps raisonnable (de 3 jours à une semaine, en fonction de votre connexion pour le courrier électronique) ou qu'il vous est, pour quelque raison que ce soit, impossible d'utiliser la commande send-pr(1), vous pouvez demander à quelqu'un de le faire pour vous en envoyant un courrier électronique à la liste de diffusion des rapports de bogue de FreeBSD.

Voir aussi cet article sur comment écrire de bon rapports de bogue.

### 2.2. Modifications de la documentation

Les modifications de la documentation sont supervisées par la liste de diffusion du groupe de documentation de FreeBSD. Veuillez consulter l'Introduction au Projet de Documentation de FreeBSD pour des instructions complètes. Envoyez les soumissions et les modifications (même les plus petites sont les bienvenues!) en utilisant la commande `send-pr` comme décrit dans Rapport de bogue et commentaires généraux.

### 2.3. Modifications dans le code source existant

Un ajout ou une modification du code source existant est une toute autre affaire et dépend beaucoup de comment est à jour votre version par rapport à l'état courant du développement de FreeBSD. Il y a une version spéciale de FreeBSD, connue sous le nom de ``FreeBSD-CURRENT'' qui est disponible de diverses manières pour le confort des développeurs qui travaillent activement sur le système. Voir le Manuel FreeBSD pour plus d'informations sur la manière d'obtenir et d'utiliser FreeBSD-CURRENT.

Travailler sur des sources plus anciennes signifie que malheureusement parfois vos modifications pourront être trop obsolètes ou trop divergentes pour permettre une réintégration aisée dans FreeBSD. On peut limiter ce type de changements en souscrivant à la liste de diffusion pour les annonces relatives à FreeBSD et la liste de diffusion à propos de la branche FreeBSD-CURRENT, où des discussions sur l'état courant du système ont lieu.

En supposant que vous pouvez vous arranger pour avoir de manière sure des sources à jour comme base pour vos modifications, l'étape suivante est de produire un ensemble de diffs à envoyer à ceux qui sont chargés de maintenir FreeBSD. Cela est fait à l'aide de la commande diff(1).

Le format diff(1) préféré pour soumettre des correctifs est le format unifié généré par la commande `diff -u`. Cependant, pour des correctifs qui modifient sensiblement une partie du code, le format de contexte généré par `diff -c` peut s'avérer plus lisible et donc préférable.

Par exemple:

    % diff -c oldfile newfile

ou

    % diff -c -r olddir newdir

générera un ensemble de ``context diffs'' pour un fichier source ou une hiérarchie de répertoires donnés.

De même,

    % diff -u oldfile newfile

ou

    % diff -u -r olddir newdir

effectuera la même chose, mais dans le format unifié.

Voir la page de manuel de diff(1) pour plus de détails.

Une fois que vous avez un ensemble de diffs (que vous pouvez tester avec la commande patch(1)), vous devrez les soumettre pour qu'ils puissent être inclus dans FreeBSD. Utiliser le programme send-pr(1) comme décrit dans Rapport de bogue et commentaires généraux. Ne pas simplement envoyez les diffs à la liste de diffusion pour les discussions techniques sur FreeBSD ou ils seront perdus! Nous apprécions énormément votre soumission (c'est un projet fait par des volontaires!), mais parce que nous sommes très occupés, nous ne pourrons pas les étudier immédiatement, mais cela restera dans la base de données des PRs jusqu'à ce que nous le fassions. Identifiez votre soumission en ajoutant `[PATCH]` dans le synopsis du rapport.

Si cela vous semble approprié (e.g. vous avez ajouté, effacé ou renommé des fichiers), archivez vos modifications dans un fichier `tar` et lancez le programme uuencode(1) dessus. Les archives shar(1) sont aussi les bienvenues.

Si votre modification est de nature potentiellement sensible, e.g. si vous n'êtes pas sûr des problèmes de copyright concernant sa distribution ou que vous n'êtes tout simplement pas prêt à le distribuer sans relecture attentive, alors vous devriez l'envoyer directement à la liste de diffusion de l'équipe de base de FreeBSD plutôt que de le soumettre avec send-pr(1). La liste de diffusion de l'équipe de base atteint un plus petit groupe de personnes qui réalise la plupart du travail quotidien de FreeBSD. Notez que ce groupe est aussi très occupé et donc que vous ne devriez leur envoyez de courrier électronique que lorsque cela est vraiment nécessaire.

Veuillez vous référer à intro(9) et style(9) pour plus d'informations sur la manière de coder. Nous apprécierons le fait que vous soyez au moins conscient de ces problèmes avant de soumettre du code.

### 2.4. Nouveau code source ou logiciel à valeur ajoutée importante

Dans le cas d'une contribution importante, ou l'addition d'une importante fonctionnalité à FreeBSD, il devient presque nécessaire d'envoyer les modifications soit sous la forme d'archives tar uuencodées soit en les chargeant sur un site web ou FTP. Si vous n'avez pas accès à un site web ou FTP, demandez sur la liste de diffusion appropriée à ce que quelqu'un héberge ces modifications pour vous.

Lorsque l'on travaille avec un grand volume de code, le sujet sensible des copyrights revient invariablement. Les copyrights acceptables pour le code inclus dans FreeBSD sont:

1. Le copyright BSD. Ce copyright est le plus apprécié de par son côté ``sans attaches'' et très attractif pour les entreprises commerciales. Loin de décourager un usage commercial, le projet FreeBSD encourage activement une telle participation avec intérêts commerciaux pour ceux qui pourraient être tentés par la suite d'investir quelque chose dans FreeBSD.

2. La Licence Publique Générale GNU, ou ``GPL''. Cette licence n'est pas aussi populaire chez nous à cause du volume d'efforts supplémentaires demandés à celui qui voudrait utiliser le code dans un but commercial, mais étant donné la quantité de code GPL dont nous avons actuellement besoin (compilateur, assembleur, formateur de texte, etc...) il serait absurde de refuser des contributions sous cette licence. Le code sous GPL va également dans une partie différente de l'arborescence, soit `/sys/gnu` soit`/usr/src/gnu`, et est de ce fait aisément identifiable par toute personne pour laquelle la licence GPL poserait un problème.

Les contributions venant avec un autre type de copyright doivent être soigneusement vérifiées avant que leur intégration à FreeBSD ne soit prise en considération. Les contributions pour lesquelles des restrictions commerciales particulières s'appliquent sont généralement rejetées, bien que les auteurs sont toujours encouragés à rendre disponible de telles modifications par leurs propres moyens.

Pour mettre un copyright de ``style BSD'' sur votre travail, inclure le texte suivant au tout début de chaque fichier de code source que vous voulez protéger, en remplaçant le texte entre les `%%` par l'information appropriée.

    Copyright (c) %%proper_years_here%%
            %%your_name_here%%, %%your_state%%  %%your_zip%%.
        All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer as
       the first lines of this file unmodified.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.

    THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

            $Id$

Pour votre convenance, une copie de ce texte peut être trouvée dans `/usr/share/examples/etc/bsd-style-copyright`.

### 2.5. Contribution financière, matérielle ou accès Internet

Nous sommes toujours très heureux d'accepter des donations pour poursuivre la cause du projet FreeBSD, et dans un effort volontaire comme le notre, un rien peut faire du chemin! Les donations de matériel sont également très importantes pour augmenter notre liste de périphériques supportés puisque nous manquons généralement de fonds pour acheter de tels éléments nous-mêmes.

#### 2.5.1. Donation de fonds

La Fondation FreeBSD est une fondation à but non lucratif et exempte d'impôts fondée pour servir les objectifs du projet FreeBSD. En tant qu'entitée 501(c)3, la Fondation est généralement exempte de l'impôt fédéral des Etats Unis comme de l'impôt de l'état du Colorado. Les dons à une entitée exempte d'impôts sont souvent déductibles de l'impôt fédéral.

Les dons sous forme de chèques peuvent être adressés à:

The FreeBSD Foundation
7321 Brockway Dr.
Boulder, CO 80303
USA

La Fondation FreeBSD est désormais en mesure d'accepter les donations par l'intermédiaire du service web PayPal. Pour faire un don, veuillez visiter le site web de la Fondation.

Plus d'informations au sujet de la Fondation FreeBSD peuvent être trouvés dans La Fondation FreeBSD -- une introduction. Pour contacter la Fondation par courrier électronique, écrire à `<bod@FreeBSDFoundation.org>`.

#### 2.5.2. Contribution en matériel

Le projet FreeBSD accepte avec joie les donations de matériel. Si vous êtes interessés pour nous faire un don de matériel, contactez le Bureau de liaison des donations.

#### 2.5.3. Contribution d'accès Internet

Nous pouvons toujours utiliser de nouveau sites miroirs pour les site FTP, WWW ou `cvsup`. Si vous voulez devenir un tel miroir, voyez le document devenir un site mirroir FreeBSD pour plus d'informations.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.