Как избежать забвения более влиятельным автором?

119

Как недавно сообщалось здесь :

Xamarin разработал Cocos2D-XNA, среду разработки игр для 2D / 3D, создав кроссплатформенную библиотеку, которая может быть включена в проекты PCL.

Однако основатель проекта, который был разветвлен, говорит :

Цель лицензии MIT состоит в том, чтобы отменить ваше добросовестное использование. Не для того, чтобы побуждать вас брать программное обеспечение, переименовать его как свой собственный, а затем «взять его в новом направлении», как вы говорите.

Хотя это не незаконно, это неэтично.

Кажется, что страница GitHub нового проекта даже не указывает на то, что это обычная вилка GitHub, вместо этого выбрав легко удаляемый раздел History (см. Внизу).

Итак, мои вопросы:

  1. Было ли действие Xamarin и способ, которым действие было сделано этично или нет?
  2. Можно ли избежать такой ситуации, если вы один разработчик или небольшая группа разработчиков?

Я надеюсь, что это может быть либо вопрос вики, либо будут некоторые объективные ответы, основанные на современной этике / философии OSS.

логово
источник
25
Это в значительной степени именно то, для чего предназначена GNU GPL, она заставляет фокеров позволить вам объединить их изменения, если они их выпустят, давая вам улучшения, которые они сделали, плюс ваши собственные.
Vality
46
Лицензия MIT изначально была написана для X Window System и была написана, чтобы позволить компаниям ее раскошелиться и включить в свои собственные продукты для продажи.
Алан Шутко
5
@Vality: На самом деле не имеет значения, находится ли что-то под лицензией GPL или MIT, если речь идет об обратном слиянии, и к GPL приложена своя куча жалоб.
DevSolar
66
«Цель лицензии MIT состоит в том, чтобы лишить вас правомерного использования. Не побуждать вас брать программное обеспечение, делать ребрендинг как свой собственный, а затем« брать его в новом направлении », как вы говорите». - Вообще-то, это именно то, для чего это нужно. Нет такой вещи как "Лицензия MIT". MIT использует много разных лицензий. Речь идет о лицензии MIT X11, которая была создана специально для того, чтобы поставщики Unix могли интегрировать MIT X11 в свои Unices, переименовать его, переписать и использовать в любом нужном им направлении.
Йорг Миттаг
10
В руководстве ØMQ есть интересная история о почти таком сценарии. Вывод: «BSD заставляет большинство людей видеть нас как ланч. Закрытый источник заставляет большинство людей видеть нас в качестве врагов (вам нравится платить людям за программное обеспечение?) GPL, тем не менее, делает большинство людей, за исключением Patricks of the world, наши союзники. "
Майкл Хэмптон

Ответы:

72

Было ли действие Xamarin и способ, которым действие было сделано этично или нет?

Что ж, давайте спросим эксперта - список Инициативы Open Source самой лицензии MIT с указанием лицензии полностью:

Лицензия MIT (MIT)

Авторское право (с)

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

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

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЯ ГАРАНТИИ ТОВАРНОГО ОБЕСПЕЧЕНИЯ, ПРИГОДНОСТИ ДЛЯ ОСОБЫХ ЦЕЛЕЙ И НЕЗАКРЕПЛЕНИЙ. Ни при каких обстоятельствах авторы или держатели авторских прав не несут ответственности за любые претензии, ущерб или другую ответственность, возникающие в результате действия контракта, деликтного или иного действия, возникающие в результате, в результате или в связи с программным обеспечением или использованием в других отношениях. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.

Если кто-либо - физическое или юридическое лицо - выпускает программное обеспечение / исходный код с лицензией MIT, это означает, что кто-либо еще - физическое или юридическое лицо может "заниматься программным обеспечением без ограничений". Пока уведомление об авторском праве остается в силе, они могут делать все, что пожелают.

Это один из тех случаев, когда этика и законность практически совпадают. Если человек или группа не поняли лицензию или ее последствия, они не смогли провести должную проверку. Инициатива Open Source предоставляет множество других полезных ресурсов, чтобы помочь нам понять лицензии, такие как вариант MIT. Давайте посмотрим на несколько пунктов их определения с открытым исходным кодом:

1) Бесплатное распространение - Лицензия не должна ограничивать какие-либо стороны от продажи или передачи программного обеспечения как компонента совокупного распространения программного обеспечения, содержащего программы из нескольких различных источников. Лицензия не требует лицензионного платежа или других сборов за такую ​​продажу.

3) Производные работы. Лицензия должна разрешать модификации и производные работы, а также разрешать их распространение на тех же условиях, что и лицензия исходного программного обеспечения.

5) Отсутствие дискриминации в отношении отдельных лиц или групп. Лицензия не должна быть дискриминационной по отношению к какому-либо лицу или группе лиц.

6) Отсутствие дискриминации в отношении областей деятельности. Лицензия не должна ограничивать использование программы в определенной области деятельности. Например, оно не может ограничивать использование программы в бизнесе или ее использование для генетических исследований.

На мой взгляд, это совершенно очевидно: выпуск чего-либо с открытым исходным кодом, особенно с лицензией MIT, позволяет кому-либо свободно брать программное обеспечение, изменять его, упаковывать и продавать его в значительной степени, кому им нравится, если они этого не делают. т удалить уведомление об авторском праве и утверждает , что это их собственная единственной работа.

Как автор, вы явно отказываетесь от права быть разборчивым и разборчивым. Вы не можете решить, кто или что может извлечь выгоду из вашего программного обеспечения или использовать его, и вы не можете решить, почему они используют его. Вы явно отказываетесь от этого права.

Идея состоит в том, что вы вносите вклад в достижение большего блага, явно отказываясь от любых законных прав, которыми вы должны управлять, и ограничивать использование и изменение того, что вы сделали. Если Microsoft захочет раскошелиться на ваш проект FluffBall и продать его за 2 тыс. Долларов за место под WindowsSpongeCake, они могут. Разве не позволяли людям делать все, что они хотят, весь смысл вашего проекта?

Можно ли избежать такой ситуации, если вы один разработчик или небольшая группа разработчиков?

Что-то вроде! Во-первых, используйте лицензию, соответствующую вашим целям и желаниям. Если вы не хотите, чтобы кто-то использовал его так, как вы этого не одобряете, вам, вероятно, не следует выпускать его как Open Source - и, честно говоря, возможно, вам вообще не следует его выпускать! Если вы не хотите, чтобы кто-либо использовал производную работу (например, разветвление) в коммерческом проекте, вам, вероятно, следует выбрать версию GPL с авторским левом . Если вы хотите получить некоммерческую лицензию, вам, вероятно, следует обратиться за консультацией к юристу по авторским правам / лицензиям, поскольку это часто вообще не считается программным обеспечением с «открытым исходным кодом» и не существует какой-либо крупной предварительно написанной лицензии для поддержки этого случая.

Проблема с Xamarin и Coco kerfuffle - это не вопрос этики или законности, а проблема интернет-драки между несколькими людьми, которые друг с другом спорят. Мы все люди, это случается. Кажется, это результат неспособности сотрудничать / сотрудничать, вероятно, из-за конфликта личности или несовместимых представлений о том, как проект должен быть обработан.

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

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

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

BrianH
источник
35
Ненависть к запутанному языку: использование GPL не ограничит коммерческое использование, но проприетарное использование. Совершенно нормально продавать копии программного обеспечения GPL с целью получения прибыли. Вы просто должны соблюдать условия лицензии, когда вы делаете это.
Бернд Джендриссек
5
@BerndJendrissek: С теоретической точки зрения вы правы. Но так как вы обязаны передавать исходные тексты вашего программного обеспечения вашему клиенту вместе с двоичным файлом, и клиент может свободно распространять ваше программное обеспечение бесплатно, если он пожелает (и есть много людей, которые рассмотрят его их обязанность сделать это), шансы довольно малы, что вы сделали бы много продаж.
DevSolar
8
@DevSolar - Несмотря на то, что исходный код открыт и может свободно распространяться, это не означает, что другие ресурсы, не относящиеся к коду проекта, таковы. В случае игры носители, карты, сценарии и т. Д. Могут иметь другую лицензию, и заказчик может не разрешать их распространение. Например, см en.wikipedia.org/wiki/List_of_open-source_video_games
corvec
7
@DevSolar: RMS сам продавал программное обеспечение GPL в течение многих лет для финансирования FSF.
Мартин Шредер
5
Многие люди продают GPL и другой открытый исходный код. На этом построена вся экосистема Joomla, как и Drupal (в Joomla это больше для plug and play, для Drupal это больше для нестандартной работы, но в любом случае это все GPL для продажи). Многим клиентам нравится иметь счет-фактуру с гарантиями, которые идут с финансовой транзакцией, или им нравится бренд; Посмотрите, сколько людей платят за воду в бутылках.
Элин
119

Выпуск проекта под лицензией MIT дает людям разрешение раскошелиться на проект. Частью философии свободного программного обеспечения является предоставление пользователям и разработчикам права на использование, модификацию и выпуск программного обеспечения способами, которые обычно не допускаются. Если вы не хотите, чтобы люди делали это, не используйте лицензию MIT. Вы не можете жаловаться, когда люди используют код в соответствии с условиями лицензии, которую вы им дали.

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

Кроме того, выпуская что-то под лицензией свободного программного обеспечения, вы получаете выгоду от взносов других людей, вкладов, которые вы могли бы не получить, если бы это было по другой лицензии. Если вы принимаете взносы по лицензии, вы должны сами соблюдать условия лицензии.

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

Другие лицензии, такие как LGPL, по-прежнему допускают разветвления, но оставляют код открытым. Таким образом, вы можете, по крайней мере, включить любые изменения из форка в свой исходный проект и получить выгоду от разработки на форке. Код LGPL может использовать любой лицензионный код MIT, поэтому, если вы хотите больше контроля над проектом, вы можете использовать LGPL вместо этого.

ФГБ
источник
1
Я бы добавил MPL в качестве заметной записи в список других лицензий, которые по-прежнему допускают разветвления, но оставляют код открытым.
Mucaho
Не могли бы вы коснуться того, как лицензии BSD относятся к этому?
jpmc26
2
@ jpmc26 - лицензии на программное обеспечение являются юридическими документами, и я не юрист, поэтому для окончательного ответа вам нужно проконсультироваться с юристом. Тем не менее, по общему мнению, лицензии BSD и MIT X11 схожи в том, что они делают. Их часто называют « академическими лицензиями ».
Скотт Уитлок
18

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

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

Карл Билефельдт
источник
14
Если вы хотите использовать программное обеспечение в другом направлении, то есть, если есть изменения, которые улучшат ваши цели, но не будут приняты текущим сопровождающим, то сделать разветвление вполне разумно - так обычно и происходит. Изменение условий лицензирования впоследствии легче сказать, чем сделать - если вы не являетесь единственным автором или не имеете согласия от всех (не, скажем, 99%), кто внес вклад, то вы не сможете этого сделать.
Петерис
11
  • Было ли действие Xamarin и способ, которым действие было сделано этично или нет?

Многие люди смешивают правовую и этическую ситуацию. Лицензия X11 позволяет любому «использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и / или продавать копии программного обеспечения, а также разрешать лицам, которым Программное Обеспечение , чтобы сделать это», так что это, безусловно , правовая ,

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

Как вы знаете, мы внесли большой вклад в Cocos2D-XNA и просто не могли продолжать совместную работу.

Когда мы достигли точки, когда мы не могли сотрудничать вместе, я решил взять проект в нужном мне направлении за счет обратной совместимости.

Непонятно, почему они «не могли сотрудничать вместе», но похоже, что Xamarin приложил разумные усилия, чтобы поработать над оригинальным проектом, прежде чем решил его раскошелиться.

  • Можно ли избежать такой ситуации, если вы один разработчик или небольшая группа разработчиков?

Юридически вы можете использовать лицензию, которая не допускает разветвления, запретив перераспределение исходного кода (на данный момент это не будет «свободное программное обеспечение»). Другой вариант - оставить код свободным, но не разрешать перераспределение статических ресурсов, таких как изображения или текст без кода (некоторые игры имеют такие лицензии).

В социальном отношении вы можете предотвратить разветвление путем:

  • Облегчить людям внесение изменений в ваш проект.
  • Обзор патчей быстро.
  • Разрешение изменений, которые не приносят вам прямой выгоды.
  • Будучи вежливым. Удивительное количество вилок связано с тем, что участники больше не хотят работать друг с другом.

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

Кроме того, использование более ограничительной лицензии снизит вероятность участия некоторых людей. Ксамарин, очевидно, «внес значительный вклад в Cocos2D-XNA», и я сомневаюсь, что они сделали бы это, если бы лицензия не позволяла им распространять его.

Брендан Лонг
источник
1
Вы утверждаете, что люди смешивают правовую и этическую ситуацию, и даже говорите, что с этической точки зрения все сложнее, но у вас нет никаких оснований для подтверждения этих утверждений. Другими словами, что вы видите как этическое осложнение в разветвлении программного обеспечения?
NotMe
1
Я думаю, что это больше социальные нормы, чем этика. Речь идет не о моральном / аморальном, а о том, «как это делается». В целом @BrendanLong прав, что вилки - это безумное количество работы, и поэтому большинство вилок выходят из строя, многие заканчивают тем, что возвращаются, когда преобладают более холодные головы, и обычно люди стараются их избегать.
Элин
@ChrisLively Ситуация действительно "сложная". Что я пытался сделать в ответе, так это указать, что было бы неэтично раскошелиться на часть программного обеспечения, но похоже, что в этом случае Ксамарин поступил правильно. Причины, по которым может быть неэтично работать с программным обеспечением, заключаются в том, что ответственность за значительный проект с открытым исходным кодом приносит людям определенное уважение, а иногда и деньги (людям, как правило, нравится получать поддержку от сопровождающих проекта). Программное обеспечение Forking, как правило, отнимает часть этого и не должно быть сделано только потому, что вы хотите быть ответственным лицом.
Brendan Long
2
Например, Cocos2D-XNA может потерять многих разработчиков, поскольку вилка Xamarin внезапно получает кучу корпоративной поддержки, а Cocos2D-XNA теряет свою. Совершенно логично, что сопровождающий рассержен, поскольку он создал проект с открытым исходным кодом, который, вероятно, является тупиковым на данный момент. С другой стороны, у Xamarin, кажется, есть веская причина для этого.
Брендан Лонг
10

То, что сделал Xamarin, является законным и этическим ... почти.

Давайте посмотрим на исправление фиксации лицензии и исправления ошибок в файле readme :

LicenseAndCredit.txt (diff)

-Copyright (c) 2010-2012 cocos2d-x.org
-
-Copyright (c) 2008-2010 Ricardo Quesada
-Copyright (c) 2011      Zynga Inc.
-Copyright (c) 2011-2012 openxlive.com
-Copyright (c) 2012      Totally Evil Entertainment, LLC
-Copyright (c) 2012      Gena Minchuk
-Copyright 2012 Xamarin Inc
+Copyright (c) The Cocos2D-XNA Team

Во всей лицензии MIT есть только одно требование:

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

И Ксамарин сделал именно то, что запрещено. Xamarin может подумать, что это делает лицензию «более привлекательной», чтобы на верхнем уровне было меньше уведомлений об авторских правах, но у них нет разрешения (юридического или этического) на удаление «избыточности».

Конечно, если они исправят файл лицензии, они снова окажутся в правовой зоне. Автор оригинальной библиотеки может не согласиться, но он сделал выбор лицензии, и он не может обвинить кого-либо в том, что он сделал то, что явно разрешает лицензия.

Асария
источник
3
Это ^ только один, чтобы перейти непосредственно к источнику. +1
Райан
25
Это изменение, кажется, не происходит в разветвленной кодовой базе. Что еще более важно, это был Джейкоб Андерсон , член команды Cocos2D-XNA и тот, кто возражал против развилки . Напротив, Мигель де Икаса - тот, кто сделал разветвление . Я что-то пропустил? Или вы приписали удаления не тому человеку и проекту?
Элия ​​Каган
3
Это был сентябрь 2013? Я запутался в выборе времени, если это часть форка, который только что произошел.
Элин
9
@ Элин Да, я думаю, что дифференциал - красная сельдь. Насколько я вижу, никто из Хамарина этого не делал, и это произошло задолго до развилки. Я не думаю, что здесь присутствует какая-либо недобросовестность, но этот пост, безусловно, выглядит как ложное обвинение в проступке.
Элия ​​Каган
5
-1. Это изменение было сделано в Cocos2D-XNA до того, как произошла форк. Вот то же самое изменение в Cocos2D-XNA.
Дэвид Хаммен
4

Было бы неуместно позволять людям делать неверные выводы об авторстве того или иного кода, который поставляется на развилке, даже если законность покрывается предоставлением необходимых уведомлений и истории изменений для всех, кто решит присмотреться. Так что, может быть, выступление Ксамарина неэтично, а может и нет, но я думаю, что это основа, по которой можно судить: вводит ли он в заблуждение?

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

Как все говорят, в лицензии MIT нет намерения предотвращать разветвления, так что это само по себе неэтично. Если «ребрендинг как собственный» - это код для «публичных заявлений о кредите, которого вы не заслуживаете», то убедитесь, что это будет неэтично, если это правда.

Что касается предотвращения того, что это случится с вами: если вы хотите избежать ситуации, когда кто-то еще намекнет на то, что ваш код принадлежит им, тогда вам нужен громкий голос при получении кредита. Если вы хотите избежать ситуации, когда кто-то создает форк вашего кода, который в конечном итоге может оказаться более популярным, чем ваш оригинал (либо из-за его больших ресурсов, либо из-за того, что он сосредоточен на «правильных» потребностях пользователя), тогда я думаю, что вы вышли удачи в OSS. Вы не можете просто решить, что правы, если другая группа хочет, чтобы функции программного обеспечения отличались от того, что вы хотите, и если (по мнению пользователей) вы ошибаетесь, вы должны проиграть, независимо от того, будете ли вы там первыми. Это является следствием принципа открытого исходного кода (или, собственно, принципа свободного программного обеспечения), что автор не контролирует программное обеспечение, а люди, которые его запускают.

Стив Джессоп
источник
2

Расширение темы торговой марки:

В Apache Software Foundation весь код - AL. И, как и в случае с обсуждаемой здесь лицензией BSD, совершенно очевидно, что AL разрешает разветвления. Период. Конец обсуждения. Фактически, как обсуждалось в других ответах, все подлинные лицензии с открытым исходным кодом разрешают вилки. Все, что они контролируют, - это лицензия / использование разветвленного кода.

Фонд Apache решил зарегистрировать и защитить торговые марки. Если какая-то сущность, кроме основного проекта, разветвляется, о, «Apache Tomcat», они в порядке ... но они не могут назвать это Apache Tomcat , и, когда мы можем защитить знак, они не могут назвать его Tomcat .

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

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

С этической точки зрения, хорошо, если есть внутреннее разделение между участниками, кто скажет, кто «заслуживает» сохранить имя? Если, с другой стороны, посторонний разветвляется, это, вероятно, не самая этичная вещь в мире, чтобы оставить имя без изменений. Это тоже не отвратительный поступок.

Github полон вилок . Иногда люди меняют имя, или пакет Java, или что-то еще - особенно если они хотят опубликовать в Maven central. Часто они этого не делают, а пользователи остаются в лабиринте путаницы. Это не идеально, но это разрывы с анархией.

bmargulies
источник