Tutoriel : Comment devenir conforme à REUSE

You are reading an inofficial translation of the original page.

Ce tutoriel explique les méthodes de base permettant de rendre un projet logiciel conforme à REUSE. À la fin de ce document, tous vos fichiers auront clairement leurs droits d’auteur et licences marqués, et vous pourrez le vérifier à l’aide de l’outil d’assistance REUSE.

Rendre votre projet conforme à REUSE peut se faire en trois étapes simples :

  1. Choisir et fournir des licences
  2. Ajouter les informations de droit d’auteur et de licence pour chaque fichier
  3. Confirmer la conformité REUSE

Pour les besoins de ce tutoriel, nous supposerons que le répertoire de votre projet ressemble à ceci :

project/
├── img/
│   ├── cat.jpg
│   └── dog.jpg
├── src/
│   └── main.c
├── .gitignore
├── Makefile
└── README.md

Si vous souhaitez reproduire les étapes de ce tutoriel sur votre propre ordinateur, vous pouvez cloner le répertoire d’exemple. La branche noncompliant correspond à la structure ci-dessus, tandis que la branche master est le résultat réussi de ce répertoire.

Pour chacune de ces étapes, vous apprendrez d’abord à les réaliser manuellement. Cependant, l’outil d’aide REUSE vous assiste dans la plupart des tâches, et les commandes nécessaires seront également répertoriées dans les cases réductibles. Nous vous recommandons de comprendre d’abord le principe de base avant d’exécuter simplement les commandes de l’outil.

1. Choisir et fournir des licences

La première chose à faire est de choisir une licence. Pour ce tutoriel, nous supposons que vous avez choisi la GNU Licence publique générale (GPL) v3.0 ou toute version ultérieure. Plus que simplement en choisissant une licence, vous devez mettre la licence dans le répertoire de votre projet.

Vous trouvez votre licence dans la Liste des licences SPDX. SPDX est une norme ouverte pour la communication des informations de licence et de droit d’auteur. Chaque licence est identifiée de manière unique par un raccourci Identificateur de licence SPDX. L’identifiant de licence SPDX pour la licence choisie est GPL-3.0-or-later.

Vous créez un répertoire LICENSES dans la racine de votre projet qui contiendra toutes les licences que vous utilisez dans votre projet. Vous téléchargez ensuite votre licence depuis le référentiel license-list-data et placez-la dans le répertoire LICENSES. Le nom de la licence doit être son identifiant de licence SPDX suivi d’une extension de fichier (dans cet exemple, GPL-3.0-or-later.txt).

Vous pouvez initialiser votre projet en utilisant reuse init. Dans une boîte de dialogue interactive, vous pouvez définir certaines propriétés de votre projet ainsi qu’une ou plusieurs licences. À la fin, ces licences seront automatiquement téléchargées au bon emplacement.

La commande reuse download vous permet de télécharger une licence spécifique. reuse download GPL-3.0-or-later remplirait la tâche décrite dans les instructions du manuel ci-dessus. L’exécution de reuse download --all télécharge automatiquement toutes les licences que l’outil d’assistance REUSE détecte comme étant utilisées dans votre projet.

2. Ajouter des informations sur les droits d’auteur et les licences à chaque fichier

Maintenant que vous disposez d’une licence, vous devez indiquer dans les fichiers correspondants que ces fichiers relèvent de cette licence. Vous modifiez l’en-tête de commentaire de src/main.c comme tel :

/*
 * SPDX-FileCopyrightText: 2019 Jane Doe <jane@example.com>
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

La balise SPDX-FileCopyrightText enregistre les années de publication et le titulaire du droit d’auteur du contenu du fichier. Vous pouvez en savoir plus sur les années de publication à utiliser et quels sont les titulaires de droits d’auteur dans la FAQ.

La balise SPDX-License-Identifier est suivie d’une expression de licence SPDX valide, généralement juste l’identifiant de licence SPDX de la licence.

Chaque fichier doit toujours contenir ces deux balises dans l’en-tête. Vous êtes autorisé à utiliser les balises plusieurs fois si vous avez plusieurs détenteurs de droits d’auteur ou licences.

Dans l’exemple de projet, vous modifiez également Makefile et README.md en utilisant ces informations d’en-tête, mais bien sûr avec la syntaxe de commentaire correspondante.

La commande reuse addheader aide à ajouter des informations de licence et de droit d’auteur à vos fichiers. Pour la tâche ci-dessus, la commande suivante ferait le travail :

reuse addheader --copyright="Jane Doe <jane@example.com>" --license="GPL-3.0-or-later" src/main.c Makefile README.md

Veuillez consulter la documentation de l’outil sur addheader pour plus d’options comme les styles de commentaires et les modèles

Fichiers binaires et non commentables

Vous souhaitez également obtenir une licence pour vos fichiers image sous GPL-3.0-or-later. Malheureusement, les images et autres fichiers binaires n’ont pas d’en-tête de commentaire que l’on peut facilement modifier. D’autres exemples incluent des fichiers générés automatiquement et certains fichiers de données et de configuration pour lesquels les commentaires ne sont pas triviaux.

Il existe une astuce simple pour contourner cela. Créez les fichiers cat.jpg.license et dog.jpg.license, chacun contenant les mêmes informations sur la licence et le détenteur des droits d’auteur que ci-dessus.

L’outil d’assistance REUSE devrait détecter automatiquement les fichiers binaires et donc créer automatiquement un fichier .license correspondant.

Si ce n’est pas le cas, ou si vous souhaitez appliquer cela, ajoutez l’argument --explicit-license à la commande addheader. Ainsi, la commande pour la tâche ci-dessus peut ressembler à ceci :

reuse addheader --copyright="Jane Doe <jane@example.com>" --license="GPL-3.0-or-later" --explicit-license img/cat.jpg img/dog.jpg

Modifier les informations de licence

Vous découvrez que les photos du chat et du chien n’étaient pas du tout sous licence GPL, mais sous Creative Commons Attribution 4.0 International, propriété de Max Mehl.

L’identifiant de licence SPDX de cette licence est CC-BY-4.0. Vous créez le fichier LICENSES/CC-BY-4.0.txt, en suivant les mêmes étapes que vous avez utilisées pour GPL-3.0-or-later.

Vous modifiez ensuite cat.jpg.license et dog.jpg.license pour dire :

SPDX-FileCopyrightText: 2019 Max Mehl <max.mehl@fsfe.org>

SPDX-License-Identifier: CC-BY-4.0

À l’heure actuelle, l’outil ne permet pas de remplacer les informations de copyright et de licence existantes conformes à REUSE. Une exécution de la commande addheader ne remplacerait pas mais étendrait les fichiers .license avec deux lignes supplémentaires indiquant le copyright de Max Mehl et la licence CC-BY-4.0. Vous devrez donc les mettre à jour manuellement.

Cependant, la commande download par la suite vous permettrait de télécharger la nouvelle licence automatiquement, donc soit avecreuse download CC-BY-4.0 ou simplement reuse download --all.

Artefacts de construction

Lorsque vous compilez votre programme, vous générez des artefacts de construction, tels que src/main.o. Vous n’avez pas besoin de fournir d’informations de licence pour ces fichiers. Utilisez simplement votre fichier .gitignore pour ignorer ces artefacts de construction. L’outil REUSE respectera le contenu de .gitignore.

Fichiers insignifiants

Vous aurez probablement des fichiers dans votre projet que vous ne trouvez pas particulièrement protégés par le droit d’auteur, par exemple des fichiers de configuration tels que .gitignore. Intuitivement, vous ne voudrez peut-être pas octroyer une licence à ces fichiers, mais l’idée fondamentale de REUSE est que tous vos fichiers porteront clairement leur droit d’auteur et leur licence.

Si vous n’exercez aucun droit d’auteur sur ce fichier, vous pouvez utiliser la licence CC0. Ceci est fonctionnellement identique à placer le fichier dans le domaine public. Modifiez le fichier pour qu’il contienne :

# SPDX-FileCopyrightText: 2019 Jane Doe <jane@example.com>
#
# SPDX-License-Identifier: CC0-1.0

Par conséquent, vous devrez également fournir la licence CC0-1.0 dans le répertoire LICENSES/, tout comme la GPL-3.0-or-later et CC-BY-4.0 auparavant.

Pour plus d’informations sur les fichiers protégés par des droits d’auteur, consultez la FAQ REUSE.

Comme précédemment, une combinaison des commandes addheader et download remplira l’étape ci-dessus :

reuse addheader --copyright="Jane Doe <jane@example.com>" --license="CC0-1.0" .gitignore

reuse download --all

Résultat

L’arborescence de votre projet ressemblera maintenant à ceci :

project/
├── img/
│   ├── cat.jpg
│   ├── cat.jpg.license
│   ├── dog.jpg
│   └── dog.jpg.license
├── LICENSES/
│   ├── CC0-1.0.txt
│   ├── CC-BY-4.0.txt
│   └── GPL-3.0-or-later.txt
├── src/
│   └── main.c
├── .gitignore
├── Makefile
└── README.md

3. Confirmer la conformité REUSE

Maintenant que vous avez marqué tous les fichiers avec leurs droits d’auteur et licences, il est temps de vérifier si vous n’avez rien manqué. Pour ce faire, nous vous fournissons un outil d’aide à utiliser. Vous pouvez lire la documentation complète, ou lire les étapes rapides ci-dessous.

Suivez les instructions d’installation disponibles pour plusieurs plates-formes. Allez maintenant dans le répertoire du projet et exécutez le linter.

$ cd chemin/vers/le/projet/
$ reuse lint
# SUMMARY

* Bad licenses:
* Deprecated licenses:
* Licenses without file extension:
* Missing licenses:
* Unused licenses:
* Used licenses: CC-BY-4.0, CC0-1.0, GPL-3.0-or-later
* Read errors: 0
* Files with copyright information: 6 / 6
* Files with license information: 6 / 6


Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)

Comme vous pouvez le voir dans la dernière ligne, l’outil confirme que votre projet est maintenant conforme à REUSE ! Pour savoir ce que signifient les différentes sections, veuillez consulter la documentation de la commande lint.

Obtenir de l’aide

Après avoir parcouru ce tutoriel, vous avez compris REUSE et les trois étapes de base pour obtenir une licence correcte de votre projet logiciel – bravo ! Mais bien que nous ayons couvert quelques cas extrêmes, vous pourriez bientôt rencontrer d’autres questions. Mais ne vous inquiétez pas, nous sommes là pour vous aider ! :

Si aucun des liens ci-dessus ne répond à votre question, veuillez nous contacter par :

  • ouvrir une issue sur reuse-docs pour des questions sur le tutoriel, la FAQ ou la spécification ;

  • ouverture d’une issue sur reuse-tool pour des questions sur l’outil REUSE ;

  • ou envoi d’un e-mail à la FSFE. Veuillez noter que nous préférerions les issues car elles peuvent être recherchées publiquement pour d’autres personnes.

Merci pour votre précieuse contribution à la réutilisation des logiciels !