Підручник: Як стати сумісним з REUSE

Ви читаєте неофіційний переклад оригінальної сторінки.

Цей посібник пояснює основи того, як зробити програмний проєкт REUSE-сумісним. Мета полягає в тому, щоб просто, повно і недвозначно заявити про свої авторські права і ліцензування у спосіб, який машиночитабельний. Наприкінці цього уроку ви зрозумієте три фундаментальні етапи використання:

  1. Виберіть і вкажіть ліцензії
  2. Додайте інформацію про авторські права та ліцензію до кожного файлу
  3. Підтвердьте відповідність REUSE

Для цього навчання ми припустимо, що каталог вашого проєкту має такий вигляд:

project/
├── src/
│   └── main.c
├── Makefile
└── README.md

Якщо ви хочете відтворити кроки цього посібника на своєму комп’ютері, ви можете клонувати [репозиторій прикладів] (https://codeberg.org/fsfe/reuse-tutorial-example). Гілка non-compliant відповідає наведеній вище структурі, тоді як гілка compliant є успішним результатом цього посібника.

Для кожного з цих кроків ви спочатку дізнаєтеся, як виконати їх вручну. Втім, [інструмент REUSE] (https://github.com/fsfe/reuse-tool) допоможе вам у виконанні більшості завдань, а необхідні команди також будуть перераховані у розгортуваних блоках. Ми рекомендуємо спочатку зрозуміти основний принцип, перш ніж просто виконувати команди інструменту.

1. Виберіть і надайте ліцензії

Перше, що вам потрібно зробити, це обрати ліцензію. У цьому посібнику ми припускаємо, що ви вибрали Загальну публічну ліцензію GNU (GPL) v3.0 або новішу версію. Обравши ліцензію, вам потрібно розмістити ліцензію в каталозі вашого проєкту.

Знайдіть свою ліцензію в [Списку ліцензій SPDX] (https://spdx.org/licenses/). SPDX - це відкритий стандарт для передачі інформації про ліцензії та авторські права. Кожна ліцензія унікально ідентифікується за допомогою короткого ідентифікатора ліцензії SPDX. Ідентифікатор ліцензії SPDX для обраної вами ліцензії - GPL-3.0-or-later.

Створіть каталог LICENSES/ у корені вашого проєкту, який міститиме всі ліцензії, які ви використовуєте у вашому проєкті. У вашому випадку, це означає створення файлу GPL-3.0-or-later.txt у цьому каталозі, який міститиме повний текст ліцензії. Назва файлу — ідентифікатор ліцензії SPDX. Ви можете знайти текст ліцензії для багатьох ліцензій на вільне програмне забезпечення у репозиторії license-list-data.

Команда reuse download дає вам змогу завантажити певну ліцензію. reuse download GPL-3.0-or-later або пізнішої версії виконало б завдання, описане у настановах посібника вище. Виконання команди reuse download --all автоматично завантажить усі ліцензії, які інструмент REUSE виявить як такі, що використовуються у вашому проєкті.

2. Додайте відомості про авторські права та ліцензування до кожного файлу

Тепер, коли у вас є ліцензія, вам потрібно вказати у відповідних файлах, що ці файли підпадають під дію цієї ліцензії. Відредагуйте заголовок коментаря до файлу src/main.c як такий:

/*
 * SPDX-FileCopyrightText: 2024 Джейн Доу <jane@example.com>
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

Тег SPDX-FileCopyrightText записує роки публікації та авторські права власника авторських прав на вміст файлу. Ви можете прочитати докладніше який рік публікації використовувати і які бувають власники авторських прав у розділі поширених запитань.

За тегом SPDX-License-Identifier слідує дійсний вираз ліцензії SPDX, як правило, лише ідентифікатор ліцензії SPDX.

Кожен файл завжди повинен містити ці два теги в заголовку. Ви можете використовувати тег SPDX-FileCopyrightText декілька разів, якщо у вас є декілька власників авторських прав.

У прикладі проєкту ви також редагуєте Makefile і README.md, використовуючи цю інформацію заголовка, але, звичайно, з відповідним синтаксисом коментарів.

Команда reuse annotate допомагає додавати до ваших файлів інформацію про ліцензування та авторські права. Для наведеного вище завдання підійде така команда:

reuse annotate --copyright="Джейн Доу <jane@example.com>" --license="GPL-3.0-or-later" src/main.c Makefile README.md

3. Підтвердьте відповідність повторного використання

Після додавання ліцензії до вашого репозиторію і додавання інформації про авторські права та ліцензування до кожного файлу, ваше дерево проєктів тепер матиме такий вигляд:

project/
├── LICENSES/
│   └── GPL-3.0-or-later.txt
├── src/
│   └── main.c
├── Makefile
└── README.md

Щоб переконатися, що ви нічого не пропустили, вам слід підтвердити відповідність REUSE за допомогою інструменту REUSE. Дотримуйтесь інструкцій зі встановлення, доступних для різних платформ, потім перейдіть до каталогу проєкту і запустіть linter.

$ reuse lint

# SUMMARY

* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: 0
* Unused licenses: 0
* Used licenses: GPL-3.0-or-later
* Read errors: 0
* Files with copyright information: 3 / 3
* Files with license information: 3 / 3

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

Як ви можете бачити в останньому рядку, інструмент підтверджує, що ваш проєкт тепер відповідає вимогам REUSE! Щоб дізнатися, що означають різні критерії, перегляньте документацію до команди lint.

Більше інформації

Цей посібник був блискавичним вступом до REUSE. Не всі варіанти використання розглянуто тут, особливо як коментувати некоментовані файли, як коментувати файли, як масово коментувати файли, і як використовувати ліцензію, якої немає у списку SPDX. Щоб дізнатися про ці та інші практичні приклади використання, див. ‘Як мені…’ у розділі Часті Питання.

Інші джерела для отримання додаткової інформації:

Якщо жодне з наведених посилань не відповідає на ваше запитання, зв’яжіться з нами за допомогою:

  • відкриття теми на reuse-website для запитань щодо підручника, поширених запитань або специфікацій;
  • відкриття обговорення на reuse-tool для запитань про засіб REUSE;
  • або надіславши електронного листа до FSFE. Зауважте, що ми надаємо перевагу обговоренням, оскільки вони доступні для загального пошуку для інших людей.

Дякуємо вам за ваш цінний внесок у створення програмного забезпечення для повторного використання!