--- authors: - author: 'Warner Losh' email: imp@FreeBSD.org title: 'Политика лицензирования FreeBSD' trademarks: ["freebsd", "general"] --- = Политики лицензирования FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] ''' toc::[] [[intro]] [[pref-license]] == Предпочтительная лицензия для новых файлов Оставшаяся часть этого раздела предназначена для того, чтобы помочь вам разобраться. Как правило, если сомневаетесь, спрашивайте. Получить совет гораздо проще, чем исправлять дерево исходного кода. Проект FreeBSD использует как явные лицензии (где дословный текст лицензии воспроизводится в каждом файле), так и отделённые лицензии (где тег в файле указывает лицензию, как описано в этом документе). Проект FreeBSD использует следующий текст в качестве предпочтительной лицензии: [.programlisting] .... /* * Copyright (c) [year] [your name] * * SPDX-License-Identifier: BSD-2-Clause */ .... Проект FreeBSD не разрешает использование «рекламного условия»footnote:[прим перев: требование указания первоначального автора при всех изменениях кода] в новом коде. Из-за большого числа участников проекта FreeBSD соблюдение этого условия стало затруднительным для многих коммерческих поставщиков. Если у вас есть код в дереве с рекламным условием, пожалуйста, рассмотрите возможность перехода на лицензию без него. Новые вклады в FreeBSD должны использовать лицензию BSD-2-Clause. Проект FreeBSD не поощряет полностью новые лицензии и вариации стандартных лицензий. Новые лицензии требуют одобрения {core-email} для размещения в основном репозитории. В прошлом нестандартные лицензии вызывали больше проблем, чем стандартные. Плохая проработка нестандартных лицензий часто приводит к непредвиденным последствиям, поэтому они вряд ли будут одобрены {core-email}. Проект FreeBSD стандартизируется на лицензии BSD-2-Clause, как опубликовано SPDX. В дополнение, политика проекта требует, чтобы код, лицензированный под некоторыми не-BSD лицензиями, размещался в определённых разделах репозитория. Для некоторых лицензий компиляция должна быть условной или отключена по умолчанию. Например, код в статической части ядра GENERIC должен быть лицензирован под BSD или аналогичными лицензиями. Программное обеспечение под лицензиями GPL, APSL, CDDL и т.п. не должно компилироваться в статическое ядро GENERIC. Однако код с такими лицензиями может использоваться в предварительно скомпилированных модулях. Разработчикам напоминают, что в открытом исходном коде правильное понимание «открытости» так же важно, как и правильное понимание «исходного кода». Неправильное обращение с интеллектуальной собственностью имеет серьёзные последствия. Любые вопросы или опасения следует немедленно направлять по адресу {core-email}. [[license-policy]] == Политика лицензирования программного обеспечения В следующих разделах подробно изложены политики лицензирования программного обеспечения проекта. В основном мы ожидаем, что разработчики прочитают, поймут и будут использовать разделы выше, чтобы применять соответствующие лицензии к своим вкладам. Остальная часть этого документа подробно описывает философскую основу политик, а также сами политики. Как всегда, если текст ниже вызывает затруднения или вам нужна помощь в применении этих политик, пожалуйста, обратитесь к {core-email}. === Руководящие принципы Проект FreeBSD ставит своей целью создание полноценной операционной системы под лицензией BSD, позволяющей пользователям системы создавать производные продукты без ограничений или дополнительных лицензионных обязательств. Мы приветствуем и высоко ценим вклад в виде изменений и дополнений под лицензией BSD с двумя пунктами, а также призываем другие проекты с открытым исходным кодом принимать эту лицензию. Использование лицензии BSD является ключевым для поощрения внедрения передовых технологий операционных систем и во многих значимых случаях играло решающую роль в широком распространении новых технологий. Мы, однако, признаем, что существуют веские причины для включения в исходное дерево FreeBSD программного обеспечения с другими лицензиями. Мы требуем, чтобы программное обеспечение, лицензированное под некоторыми не-BSD лицензиями, было тщательно изолировано в дереве исходного кода, чтобы оно не могло загрязнять компоненты, доступные только под BSD. Такое осторожное управление способствует ясности лицензирования и облегчает создание производных продуктов, доступных только под BSD. Если не сделано специального исключения, существующие компоненты с лицензией BSD не могут быть заменены на программное обеспечение с более ограничительной лицензией. Мы призываем разработчиков FreeBSD и сторонних разработчиков стремиться к перелицензированию, двойному лицензированию или перереализации критических компонентов под лицензией BSD. Это облегчит их более полную интеграцию в операционную систему FreeBSD. === Политика * Импорт нового программного обеспечения, лицензированного под любыми лицензиями, кроме лицензии BSD и подобных лицензий BSD (как определено ниже), требует предварительного одобрения от FreeBSD Core Team. Запросы на импорт должны включать: ** Список новых возможностей или исправлений ошибок, которые содержит новая версия или патчи, вместе с доказательствами того, что эти возможности нужны нашим пользователям. Идеальными формами доказательств являются PR (запросы на включение изменений) или ссылки на обсуждения в почтовых рассылках. ** Этот процесс должен использоваться для всех импортов программного обеспечения, а не только для тех, которые требуют проверки Core Team. Сам факт существования новой версии не является оправданием для импорта программного обеспечения в исходные коды или порты. ** Список ветвей FreeBSD, которые могут быть затронуты. Расширение области применения требует нового запроса и одобрения от основной команды FreeBSD. * Лицензия Apache 2.0 допустима для использования в некоторых случаях. Основная команда должна одобрить импорт новых компонентов, лицензированных по лицензии Apache, или изменение лицензии существующих компонентов на лицензию Apache. ** Данная лицензия одобрена для следующих компонентов: *** Инструментарий LLVM и (с исключениями LLVM) компоненты времени выполнения. * Лицензия BSD+Patent License допустима для использования в некоторых случаях. Основная команда (Core Team) должна одобрить импорт новых компонентов, лицензированных по BSD+Patent License, или изменение лицензии существующих компонентов на BSD+Patent License. ** Данная лицензия одобрена для следующих компонентов: *** Код, основанный на EDK2, связанный с функциональностью UEFI * Общая лицензия на разработку и распространение (CDDL) допустима для использования в некоторых случаях. Основная команда должна одобрить импорт новых компонентов с лицензией CDDL или изменение лицензии существующих компонентов на CDDL. ** Данная лицензия одобрена для следующих компонентов: *** DTrace *** Файловая система ZFS, включая поддержку в ядре и пользовательские утилиты * Исторически фраза "All Rights Reserved." включалась во все уведомления об авторских правах. Все релизы BSD содержали её, чтобы соответствовать требованиям https://en.wikipedia.org/wiki/Buenos_Aires_Convention[Буэнос-Айресской конвенции 1910 года] в Америке. После ратификации https://en.wikipedia.org/wiki/Berne_Convention[Бернской конвенции] в 2000 году Никарагуа, Буэнос-Айресская конвенция — и эта фраза — устарели. В связи с этим проект FreeBSD рекомендует опускать эту фразу в новом коде и призывает текущих правообладателей удалить её. В 2018 году проект обновил свои шаблоны, убрав её. * Изначально многие элементы в дереве FreeBSD были помечены лицензией BSD-2-Clause-FreeBSD. Однако SPDX объявил эту лицензию устаревшей как вариант, и текст устаревшего тега в SPDX отличается от стандартной лицензии FreeBSD настолько, что его не следует использовать. Проводится проверка его текущего использования. ==== Допустимые лицензии Следующие лицензии считаются допустимыми лицензиями в стиле BSD для целей данной Политики. Отклонения или использование любых других лицензий должны быть согласованы с основной командой (Core Team) FreeBSD: * Версия лицензии BSD с 2 пунктами [.programlisting] .... /* * Copyright (c) [year] [your name] * * SPDX-License-Identifier: BSD-2-Clause */ .... * Версия лицензии BSD с 3 пунктами [.programlisting] .... /* * Copyright (c) [year] [your name] * * SPDX-License-Identifier: BSD-3-Clause */ .... * Лицензия ISC [.programlisting] .... /* * Copyright (c) [year] [copyright holder] * * SPDX-License-Identifier: ISC */ .... * Лицензия MIT [.programlisting] .... /* * Copyright (c) [year] [copyright holders] * * SPDX-License-Identifier: MIT */ .... == Лицензия набора программного обеспечения (Software Collection License) Проект FreeBSD лицензирует свою подборку программного обеспечения, как описано в [.filename]#COPYRIGHT#, по лицензии BSD-2-Clause. Данная лицензия не заменяет лицензии отдельных файлов, которые описаны ниже. Файлы, не имеющие явной лицензии, распространяются по лицензии BSD-2-Clause. == Расположение файла лицензии Для соответствия стандарту https://reuse.software/[REUSE Software] насколько это возможно, все файлы лицензий будут храниться в каталоге [.filename]#LICENSES/# репозитория. В этом корневом каталоге есть три подкаталога. Подкаталог [.filename]#LICENSES/text/# содержит в отдельном виде тексты всех лицензий, разрешённых в комплекте программного обеспечения FreeBSD. Эти файлы сохраняются с использованием идентификатора SPDX-License-Identifier с добавлением .txt. Подкаталог [.filename]#LICENSES/exceptions/# содержит тексты всех исключений, разрешённых в отдельном виде в комплекте программного обеспечения FreeBSD. Эти файлы сохраняются с использованием идентификатора исключения с добавлением .txt. Подкаталог [.filename]#LICENSES/other/# содержит в отдельном виде файлы лицензий, упомянутые в выражениях SPDX-License-Identifier, но не разрешённые в качестве отдельных лицензий. Все такие файлы должны присутствовать в комплекте программного обеспечения FreeBSD хотя бы один раз и должны быть удалены, когда удаляется последний файл, ссылающийся на них. Лицензии, для которых нет подходящего соответствия в SPDX, должны находиться в [.filename]#LICENSES/other/# и иметь имя файла, начинающееся с LicenseRef-, за которым следует уникальная строка идентификатора. В настоящее время такие файлы не выявлены, но если они появятся, их полный список будет приведён здесь. Проект FreeBSD в настоящее время не использует файлы `DEP5`, описанные в стандарте `REUSE Software`. Проект FreeBSD ещё не пометил все файлы в дереве в соответствии с этим стандартом, как описано далее в этом документе. Проект FreeBSD пока не включил эти файлы в свои репозитории, поскольку данная политика ещё находится в процессе разработки. [[individual-files]] == Лицензии индивидуальных файлов Каждый отдельный файл в комплекте программного обеспечения FreeBSD имеет собственное авторское право и лицензию. Способ их обозначения варьируется и описан в этом разделе. Уведомление об авторских правах указывает, кто заявляет о законных авторских правах на файл. Они предоставляются проектом по принципу наилучших усилий. Поскольку авторские права могут быть юридически переданы, текущий правообладатель может отличаться от указанного в файле. Лицензия — это юридический документ между автором и пользователями программного обеспечения, который предоставляет разрешение на использование защищённых авторским правом частей программного обеспечения на определённых условиях, изложенных в лицензии. В коллекции программного обеспечения FreeBSD лицензии могут быть выражены одним из двух способов. Лицензии могут быть явно указаны в файле. Когда лицензионное разрешение явно указано в файле, этот файл может использоваться, копироваться и изменяться в соответствии с данной лицензией. Лицензии также могут быть выражены косвенно, когда текст лицензии находится в другом месте. Для этой цели проект использует идентификаторы лицензий Software Package Data Exchange (SPDX), как описано в следующих подразделах. Идентификаторы лицензий SPDX управляются рабочей группой SPDX в Linux Foundation и были согласованы партнёрами по отрасли, поставщиками инструментов и юридическими командами. Для получения дополнительной информации см. https://spdx.org/ и следующие разделы о том, как проект FreeBSD их использует. Сущности, которые вносят исправления и улучшения в комплект программного обеспечения без явного лицензирования, соглашаются лицензировать эти изменения на условиях, применимых к изменённым файлам. Политика проекта, в соответствии с отраслевой практикой, включает уведомление об авторских правах только от значительных участников для файлов в коллекции. В комплекте программного обеспечения FreeBSD существует четыре типа файлов: . Файлы, содержащие только явное уведомление об авторских правах и лицензию. . Файлы, содержащие как явное уведомление об авторских правах и лицензии, так и тег SPDX-License-Identifier. . Файлы, содержащие только уведомление об авторских правах и тег SPDX-License-Identifier, но без явного указания лицензии. . Файлы, в которых отсутствует какое-либо указание на авторские права или лицензию. === Только авторские права и лицензия Многие файлы в коллекции программного обеспечения FreeBSD содержат как уведомление об авторских правах, так и явную лицензию в самом файле. В таких случаях применяется лицензия, указанная в файле. === Авторские права и лицензия с выражением SPDX-License-Identifier Некоторые файлы в коллекции программного обеспечения FreeBSD содержат заявление об авторских правах, тег SPDX-License-Identifier и явную лицензию. Явная лицензия имеет приоритет над тегом SPDX-License-Identifier. Тег SPDX-License-Identifier представляет собой наилучшую попытку проекта охарактеризовать лицензию, но является лишь информационным полем для автоматизированных инструментов. См. crossref:license-guide[expressions,Выражения SPDX-License-Identifier] для интерпретации выражения. === Только уведомление об авторских правах и выражение SPDX-License-Identifier. Некоторые файлы в дереве содержат отдельные лицензии. Эти файлы содержат только уведомление об авторских правах и выражение SPDX-License-Identifier, но не содержат явной лицензии. См. crossref:license-guide[expressions, Выражения SPDX-License-Identifier] для интерпретации выражения. Примечание: выражения, разрешенные для отдельных лицензий проектом, являются подмножеством выражений, используемых в информационных целях или определенных стандартом. Лицензия для файлов, содержащих только SPDX-License-Identifier, должна толковаться как . Начните лицензию с уведомления об авторских правах из файла. Включите всех правообладателей. . Для каждого подвыражения скопируйте текст лицензии из [.filename]#LICENSE/text/`id`.txt#. Если присутствуют исключения, добавьте их из [.filename]#src/share/license/exceptions/`id`.txt#. Выражения SPDX-License-Identifier должны интерпретироваться в соответствии со стандартом SPDX. Где `id` — это короткий идентификатор лицензии SPDX из столбца `Identifier` на страницах https://spdx.org/licenses/[Идентификаторы SPDX] или https://spdx.org/licenses/exceptions-index.html[исключения лицензий]. Если в каталоге [.filename]#LICENSE/# нет файла, то такая лицензия или исключение не могут быть указаны как отдельная лицензия в этом разделе. При чтении текста лицензии, отделенного от файла, необходимо учитывать ряд аспектов, чтобы отделенная лицензия имела смысл. . Любая ссылка на уведомление об авторских правах должна относиться к уведомлению, составленному из лицензированного файла, а не из любого уведомления об авторских правах в самом тексте файла лицензии. Многие файлы SPDX содержат примеры уведомлений об авторских правах, которые понимаются исключительно как образцы. . Когда в тексте лицензии упоминаются названия организаций, они должны интерпретироваться как относящиеся к списку всех правообладателей, указанных в уведомлениях об авторских правах лицензированного файла. Например, лицензия BSD-4-clause содержит фразу "Этот продукт включает программное обеспечение, разработанное организацией". Фраза 'организацией' должна быть заменена на правообладателей. . Когда SPDX предлагает варианты лицензии, подразумевается, что лицензия в файле [.filename]#LICENSE/# представляет точную версию выбранной лицензии. Стандарт SPDX существует для сопоставления семейств лицензий, и эти варианты помогают сопоставлять похожие лицензии, которые организация SPDX считает юридически идентичными. Для лицензий с небольшими вариациями в тексте SPDX предоставляет рекомендации по их сопоставлению. Эти рекомендации здесь не актуальны. Участники, желающие использовать вариант лицензии SPDX, который не содержится дословно в [.filename]#LICENSE/#, не могут использовать отдельный вариант и должны явно указать лицензию. === Файлы без указания авторских прав или любой лицензионной отметки Некоторые файлы не могут содержать подходящих комментариев. В таких случаях лицензия может быть найдена в [.filename]#file.ext.license#. Например, файл с именем [.filename]#foo.jpg# может иметь лицензию в [.filename]#foo.jpg.license#, следуя соглашениям REUSE Software. Файлы, созданные проектом, в которых отсутствует уведомление об авторских правах, считаются подпадающими под общие положения об авторских правах и лицензировании в файле [.filename]#COPYRIGHT#. Это означает, что либо файл представляет собой простое изложение фактов, не охраняемых законом об авторских правах, либо его содержание настолько тривиально, что не требует оформления явной лицензии. Файлы, которые не имеют маркировки и содержат значительное количество материала, защищенного авторским правом, или которые автор считает неправильно промаркированными, должны быть доведены до сведения основной команды (Core Team) FreeBSD. Проект FreeBSD строго придерживается политики соблюдения всех соответствующих лицензий. В будущем все подобные файлы будут явно помечены или следовать соглашению REUSE Software о файлах с расширением [.filename]#.license#. [[expressions]] === Выражения SPDX-License-Identifier 'SPDX License expression' используется в двух контекстах в коллекции программного обеспечения FreeBSD. Во-первых, его полная форма применяется для файлов, которые содержат явные заявления о лицензии внутри файла, а также обобщающее выражение SPDX-License-Identifier. В этом контексте может быть использована вся мощь этих выражений. Во-вторых, в ограниченной форме, описанной выше, оно используется для обозначения фактической лицензии для данного файла. Во втором контексте проектом разрешено только подмножество этого выражения. `Лицензионные под-выражения SPDX` — это либо короткий идентификатор лицензии из https://spdx.org/licenses/[Список лицензий SPDX], либо комбинация двух таких идентификаторов, разделённых "WITH", если применяется https://spdx.org/licenses/exceptions-index.html[исключение из лицензии]. Если применяются несколько лицензий, выражение состоит из подвыражений, разделённых ключевыми словами "AND", "OR" и окружённых символами "(", ")". Полное описание выражений доступно в https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/[спецификации] и имеет приоритет в случае противоречий с упрощённым изложением этого раздела. Некоторые идентификаторы лицензий, такие как [L]GPL, предоставляют возможность использовать только указанную версию или любую более позднюю версию. SPDX определяет суффикс `-or-later` для обозначения этой версии лицензии или более поздней версии. Суффикс `-only` означает только указанную версию файла. Существует старая конвенция, согласно которой отсутствие суффикса (что означает то же, что и новый суффикс '-only', но люди путают это с `-or-later`). Кроме того, добавление суффикса `+` подразумевало значение `-or-later`. В новых файлах FreeBSD не следует использовать эти две конвенции. Старые файлы, использующие эту конвенцию, следует преобразовать соответствующим образом. [.programlisting] .... // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: LGPL-2.1-or-later .... `WITH` следует использовать, когда требуется модификатор лицензии. В проекте FreeBSD ряд файлов из LLVM имеют исключение из лицензии Apache 2.0: [.programlisting] .... // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception .... https://spdx.org/licenses/exceptions-index.html[Теги исключений] управляются SPDX. Исключения лицензий могут применяться только к определённым лицензиям, как указано в исключении. `OR` следует использовать, если файл предлагает выбор лицензии и одна лицензия выбрана. Например, некоторые файлы `dtsi` доступны под двойными лицензиями: [.programlisting] .... // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause .... `AND` следует использовать, если файл имеет несколько лицензий, условия которых применяются к использованию файла. Например, если код был заимствован из нескольких проектов, каждый со своей собственной лицензией: [.programlisting] .... // SPDX-License-Identifier: BSD-2-Clause AND MIT ....