Как управлять уведомлениями об авторских правах от участников проекта, лицензированного BSD

9

У нас есть следующая лицензия BSD в LICENSEфайле:

Copyright (c) 2006-2016 SymPy Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Мы управляем исходным репозиторием с помощью git ( https://github.com/sympy/sympy ), и, таким образом, каждый автор владеет патчами, которые он или она создали. Затем у нас есть AUTHORSфайл, в котором мы перечисляем всех людей, которые внесли исправления (в настоящее время около 450 или около того). Как правило, авторы разветвляют репозиторий на github и добавляют патчи при коммитах git.

Один автор разветвил хранилище, но добавил свое имя в сам LICENSEфайл в качестве уведомления об авторских правах следующим образом (я изменил имя):

Copyright (c) 2006-2015 SymPy Development Team,
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Автор разработал патч, который исправляет ошибку. Исправление состоит из касания только одного файла, удаления 19 символов из одной строки и добавления 18 символов в другую строку в том же файле. Он также добавляет 5-строчный тест для этой ошибки в тестовый файл. Вот и все.

При каких условиях нам по закону разрешено применять его патч (выбирая его коммиты, например, сохраняя дату и имя автора + адрес электронной почты в метаданных git)?

а) Нужно ли нам изменять наш LICENSEфайл, чтобы добавить его уведомление об авторских правах?

б) Или мы все еще соблюдаем лицензию BSD, если мы храним обновленный AUTHORSфайл и храним репозиторий git, в котором конкретно отслеживается, какие коммиты были внесены авторами.

Что мне не нравится в варианте а), так это то, что если этого требуют все 450 или около того участников, то нам нужно будет по существу сохранить содержимое AUTHORSфайла в LICENSEфайле вместе со Copyrightсловом и годами. Git намного лучше хранит годы (и даже дни и минуты), а также то, какие строки были изменены каждым автором и как. Затем у нас есть простой LICENSEфайл, который не изменяется, и мы сохраняем список авторов AUTHORS(и у нас есть скрипт, который синхронизирует его со списком авторов из git).

Ондржей Чертик
источник
4
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос требует юридических консультаций, выходящих за рамки того, что может ожидать программист. Вы должны спросить слой.
Барт ван Инген Шенау
1
или юрист ...;)
Эрик Эйдт
7
Программисты не должны этого знать, но могут. Было бы лучше удалить комментарии, которые в основном говорят: «Вы должны поговорить с адвокатом», что является слишком часто используемым ответом. У программистов есть понимание лицензирования программного обеспечения, вероятно, больше, чем у большинства юристов в мире. Мой голос - оставить это здесь.
moorepants
2
Насколько я понимаю, когда кто-то делает запрос на извлечение SymPy, он неявно лицензирует его по лицензии SymPy.
asmeurer
2
@asmeurer верно. У меня вопрос, если автор не создает пулл-запрос. Т.е. при каких условиях вы можете выбирать патчи, размещенные на развилке вашего репозитория, лицензированные по той же лицензии, но с измененным уведомлением об авторских правах.
Ондржей Чертик

Ответы:

3

Вы можете включить любой код, который имеет совместимую лицензию для него.

Тем не менее, если новый код специально не лицензируется по совместимой лицензии, если вы хотите внести изменения в свою кодовую базу, вы открываете себя к возможности возникновения некоторых трудностей.

В частности, если в коде не указано, что новые вклады находятся под совместимой лицензией, к ней применима лицензия по умолчанию «все права защищены». Вытащить код будет нарушением авторских прав.

Существует также возможность того, что новый код лицензируется по лицензии, которая совместима с вами (и вам необходимо будет сохранить эту лицензию для кода), но несовместима со многими из ваших пользователей. Например, если вы используете предложение BSD 2, и кто-то лицензирует вклады ветвления в соответствии с предложением BSD 3, вы, вероятно, можете добавить это в свой код без особых затруднений. Однако, поскольку предложение BSD 3 несовместимо с GPL, это сделает ваш проект GPL несовместимым.

Если вы решите перейти с BSD на GPL позднее (например), и запросы на извлечение назначают необходимые права для изменения лицензии в рамках лицензионного соглашения участника, вы извлекаете код из других проектов, которые не согласились CLA может вызвать у вас некоторые головные боли.

Это общий случай ...

Для конкретного случая, когда файл лицензии изменился ... Я не знаю. Из простого чтения файла лицензии:

Copyright (c) 2006-2015 SymPy Development Team,  
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

а. При повторном распространении исходного кода должно сохраняться указанное выше уведомление об авторских правах ,
   этот список условий и следующий отказ от ответственности.

Этот бит указывает на то, что если вы хотите внести эти изменения, вам также необходимо изменить файл лицензии.

К сожалению, в настоящее время у вас нет четко определенного CLA. К счастью, в настоящее время у вас есть только 450 человек, чтобы спросить.


источник
Итак, с точки чтения "а". Похоже, что «указанное выше уведомление об авторском праве» на исходный код SymPy остается за Джоном Доу, и что Джон Доу лицензирует новые вклады в форк под той же лицензией, но новые дополнения защищены авторским правом Джона Доу.
moorepants
2
@moorepants для этого экземпляра, это может показаться. И поэтому, если SymPy захочет лицензировать их обратно в свой код, он также должен будет следовать этому заявлению в лицензировании и сохранить уведомление об авторских правах от Джона Доу.
Спасибо @MichaelT за ответ. О чем мне нужно спросить 450 человек? Кажется, что все, что мне нужно сделать, это скопировать лицензию с вилки (включая заявление об авторском праве Джона Доу) и просто добавить ее в NOTICESфайл, где мы будем хранить все сторонние лицензии.
Ондржей Чертик
1
@ OndřejČertík, если вы когда-нибудь захотите изменить лицензию на SymPy (это работает при условии, что каждый, кто отправил запрос на удаление, согласен с лицензированием его в соответствии с BSD), чтобы сказать ... GPL, вам нужно разрешение каждого, кто Внес вклад, поскольку только они могут принять решение о повторном лицензировании по другой лицензии. Apache имеет довольно сложную CLA . Многие крупные проекты имеют CLA того или иного рода, чтобы убедиться, что проект имеет право распространять представленный код
1
Я бы посоветовал взглянуть на первую You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...
2

Если есть BSD-лицензированный исходный код, и кто-то разветвляет его, добавляя дополнительные патчи, то этот новый исходный код в новом репо должен включать точный файл лицензии BSD из исходного репо, а новые патчи должны быть лицензированы под новой лицензией (или даже та же лицензия). Таким образом, вилка должна иметь одну или две лицензии в хранилище. Не допускается редактирование исходной лицензии, поскольку это нарушает условия лицензии BSD.

Теперь, если исходное репо хочет выбрать патчи с вилки, тогда копия новой лицензии на форк должна быть добавлена ​​к исходному репо. В конечном итоге оба хранилища будут иметь каждую лицензию, по одной на каждый набор исправлений.

SymPy также должен требовать, чтобы участники отказались от своих авторских прав на проект SymPy. Потенциально очень сложно разрешить авторам сохранять свои авторские права на отдельные патчи при представлении. Соглашение о вкладчике, разъясняющее это, необходимо, чтобы было ясно, что происходит.

moorepants
источник
Конечно, если на вилке нет дополнительной лицензии, то вклады, ну, в общем, не лицензируются ни на что, кроме лицензии по умолчанию со всеми правами.
1
Я не верю, что это обязательно правда. Если для новых патчей в форке не указана лицензия, существует потенциальная неоднозначность. По умолчанию в законодательстве США создатель контента владеет авторскими правами, если ничего не указано. Поэтому, если никакая дополнительная лицензия не указана, возможно, что создатель патчей в ветке владеет авторскими правами на новые патчи. Но это неоднозначно, потому что создатель должен был оставить оригинальную лицензию в форке, так что это может относиться ко всем их патчам. Утверждения о лицензиях для каждого файла помогают прояснить эту неоднозначность, но вы редко видите выражение «для каждого исправления».
moorepants