SPDX предоставляет:
- Стандартизированный формат для описания лицензий и информации об авторских правах.
- Список идентификаторов лицензий (SPDX License List), который включает в себя короткие уникальные идентификаторы для распространённых лицензий (например, MIT, Apache-2.0, GPL-3.0).
- Структуру для документирования лицензий и авторских прав в проектах.
- Упростить анализ лицензионных обязательств.
- Уменьшить риски, связанные с нарушением лицензий.
- Упростить обмен информацией о лицензиях между проектами и организациями.
Добавление информации о лицензии в формате SPDX в код — это хорошая практика, которая помогает явно указать условия использования вашего программного обеспечения. Вот как это можно сделать:
1. Использование файла LICENSE
В корне вашего проекта создайте файл LICENSE, в котором укажите полный текст лицензии.
2. Добавление SPDX-идентификатора в файл
В начале каждого файла с исходным кодом добавьте комментарий с указанием SPDX-идентификатора лицензии. Например:
Код: Выделить всё
# SPDX-License-Identifier: MIT
# Copyright (c) 2025 Your Name or Organization
def hello_world():
print("Hello, world!")
Если вы хотите предоставить дополнительную информацию о лицензии, вы можете добавить её в файл README.md или NOTICE.
4. Использование инструментов для автоматизации
Если ваш проект большой, вы можете использовать инструменты для автоматического добавления SPDX-идентификаторов в файлы. Например: REUSE Tool (https://reuse.software/) — инструмент для добавления и проверки SPDX-информации в проектах. FOSSology — система для анализа лицензий и управления ими.
5. В файлах проекта Blender
SPDX-License-Identifier упоминается в файлах проекта Blender около 16К раз.
В основном это:
- SPDX-License-Identifier: GPL-2.0-or-later
- SPDX-License-Identifier: MIT
- SPDX-License-Identifier: Apache-2.0
- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- SPDX-License-Identifier: PSF-2.0 AND (MIT OR Apache-2.0)
- SPDX-License-Identifier: BSD-3-Clause
- SPDX-License-Identifier: BSD-3-Clause and Apache-2.0
- SPDX-License-Identifier: BSL-1.0
- SPDX-License-Identifier: Zlib
5. Blender и Copyleft
Исходный код, разрабатываемый на blender.org, по умолчанию лицензируется как GNU GPL версии 2 или более поздней. Однако некоторые модули используют более разрешительные лицензии. Например, движок рендеринга Blender Cycles доступен под лицензией Apache 2.0.
Blender также использует множество модулей или библиотек из других проектов. Например, Python использует лицензию Python License; Bullet — лицензию Zlib; Libmv — лицензию MIT; а OSL — лицензию BSD.
Все компоненты, которые вместе составляют Blender, совместимы под более новой лицензией GNU GPL версии 3 или более поздней. Эта же лицензия применяется для любого распространения бинарных файлов Blender.
GNU GPL предоставляет ряд свобод:
- Пользователь может свободно использовать Blender в любых целях.
- Пользователь может свободно распространять Blender.
- Пользователь может изучать, как работает Blender, и изменять его.
- Пользователь может распространять изменённые версии Blender.