Открыто ≠ разрешено
Даже публичный репозиторий на GitHub не является открытым ПО, если в нём нет файла LICENSE. Авторское право возникает автоматически в момент написания кода (в большинстве стран — участниц Бернской конвенции), и без отдельного разрешения только правообладатель может копировать, изменять, распространять код и создавать производные произведения. Документация GitHub тоже поясняет: без лицензии действует общее авторское право, правообладатель сохраняет все права, а другие не могут копировать, распространять код или создавать производные произведения.
Что разрешают условия GitHub
Согласно Условиям обслуживания GitHub (D.5 «License Grant to Other Users»), тот, кто размещает контент в публичном репозитории, предоставляет пользователям GitHub право использовать, отображать и исполнять контент в пределах сервиса GitHub, а также воспроизводить его в объёме, допускаемом функциями GitHub, например при форке. То есть можно:
- просматривать и читать код в браузере;
- делать форк внутри GitHub.
Но права сверх этого — например, включать код в свой продукт и распространять его или публиковать изменённую версию в другом месте — условия не дают.
Если хочется использовать код без лицензии
- Попросите правообладателя: через issue или по почте попросите добавить лицензию. Часто её просто забыли, и автор охотно добавит, например, MIT.
- Получите письменное разрешение: если добавить лицензию сложно, получите отдельное разрешение с указанием объёма использования и сохраните его.
- Найдите альтернативу: поищите открытую библиотеку с той же функциональностью.
- Реализуйте сами: напишите код заново, не глядя в исходный, опираясь только на спецификацию или поведение (так называемая «чистая комната»). Переписывание исходного кода может оказаться копированием, будьте осторожны.
Если в README написано только «делайте что хотите», ситуация неоднозначна. Намерение вроде бы ясно, но объём (изменение, повторное распространение, коммерческое использование) не определён, поэтому надёжнее попросить добавить стандартную лицензию.
Частые неоднозначные случаи
- Нет LICENSE, но в package.json есть
"license": "MIT": похоже, что задумана MIT, но MIT требует включать в копии уведомление об авторском праве и текст разрешения, а без полного текста выполнить это трудно. Лучше попросить добавить в репозиторий файл LICENSE. - Код из ответов на Stack Overflow: контент пользователей предоставляется под Creative Commons BY-SA (в зависимости от времени публикации — 2.5, 3.0 или 4.0). Из-за условий указания авторства и распространения на тех же условиях перед переносом в код продукта сверьтесь с политикой компании.
- Код из блогов и учебников: если в условиях сайта или в самой статье нет особых указаний, по умолчанию все права защищены.
Как лицензировать свой репозиторий
- В генераторе выберите лицензию, введите год и правообладателя и скачайте файл
LICENSE. - Закоммитьте его в корень репозитория. GitHub распознает файл и покажет лицензию в сведениях о репозитории.
- Укажите идентификатор SPDX в поле license файлов
package.json,Cargo.toml,pyproject.tomlи т. д. (руководство по SPDX). - Если в проекте есть чужой код, отдельно приведите в порядок его лицензии и уведомления (практика применения).
Когда лицензию не указывают намеренно
Если код нужно только показать, а повторное использование нежелательно — например, портфолио или учебное задание, — можно сознательно не указывать лицензию. В этом случае, чтобы избежать недоразумений, напишите в README «Все права защищены (All rights reserved)» и контакты. Однако раз репозиторий публичный, запретить просмотр и форк, разрешённые условиями GitHub, нельзя.
Эта статья содержит общую информацию и не является юридической консультацией. Важные решения обсуждайте со специалистами.
Источники
- GitHub Docs, Licensing a repository — https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
- GitHub Terms of Service, D.5 — https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
- choosealicense.com, No License — https://choosealicense.com/no-permission/
- Лицензирование контента Stack Overflow — https://stackoverflow.com/help/licensing