Как избежать GPL?

24

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ Я не претендую на то, что знаю о лицензировании. На самом деле все, что я говорю ниже, может быть полностью ложным!

Предыстория:

Недавно я искал достойный игровой движок и, думаю, нашел тот, который мне действительно нравится, Cafu Engine .

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

Итак, мой вопрос в основном, как избежать GPL.

Вот пример: движок id Tech, также известный как движок Quake или движок Doom, был основой для популярного движка Source. Однако движок id Tech был выпущен под лицензией GPL, а движок Source является проприетарным. Valve получила другую лицензию? Или они что-то сделали, чтобы избежать GPL? Есть ли способ избежать GPL? Или, если вы используете исходный код GPL в качестве основы для другого проекта, вы вынуждены использовать GPL и сделать свой исходный код доступным для всего мира. Может ли какой-нибудь случайный человек взять движок id Tech, изменить его до точки признания, а затем использовать его в качестве проприетарного движка для коммерческих продуктов? Или они должны сделать его открытым исходным кодом.

И последнее, у меня вообще нет проблем с открытым исходным кодом. Однако я чувствую, что у открытого исходного кода есть свое место, но это не в мире кустарников.

tehtros
источник
3
Вы ответили на свой вопрос с цитатой, которую вы предоставили. Кроме того, источник (HL2) не был основан на Quake. Вы думаете о GoldSrc (HL1).
Джастин Скилз
Обидно, что за это проголосовали, потому что вопрос явно отвечает и имеет несколько точных ответов.
Kylotan
1
Спросите своего адвоката, и в этом отношении спросите компанию, которая делает движок, но, как я понимаю, для игровых движков, GPL может применяться только к коду и любым изменениям, которые вы в него внесли, но не к другим вашим ресурсам [таким как карты , звуки, искусство и т. д.]. Почему это не приемлемо для вас?
Random832
1
Вы могли бы также спросить, как вы можете украсть исходный код от Microsoft и сойти с рук. У вас есть только два варианта и два варианта: играть по правилам, которые владелец кода предусматривает в своих лицензиях и / или сборах, или использовать что-то другое.
Шон Миддледич
1
«Тем не менее, я чувствую, что у открытого исходного кода есть свое место, но это не в мире кустарников». Но вы думаете, что использование чьего-либо кода и ни оплата коммерческой лицензии, ни принятие условий альтернативной версии имеют свое место в деловом мире? Это не столько бизнес, сколько кража. Не то , чтобы это не happenened в деловом мире достаточно часто ... - Похоже , вы действительно действительно хотите с открытым исходным кодом ( по понятным причинам ) с точки зрения программиста, но имеете довольно догматическое отвращение против него с денежной точки зрения , Ну, эти взгляды не совместимы.
оставлено около

Ответы:

28
  1. Если вы обладаете авторскими правами на исходный код, вы можете выпустить этот код так, как вам нравится. Выпуск его под лицензией GPL не препятствует выпуску под другой неограниченной или даже более ограничительной лицензией. Я не уверен в деталях Source / id Tech, но предположил бы, что Valve договорилась о собственной лицензии.

  2. Если вы используете код GPL в своем проекте, вы должны предоставить исходный код пользователям. Это не означает, что вы обязаны вести веб-сайт или хранить его копию для предоставления по требованию. Это не означает, что вы обязаны публиковать все изменения сразу же после их внесения - только когда вы распространяете программное обеспечение, код и вносимые вами изменения согласуются с ним. ( http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic )

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

  4. Чтобы использовать «GPL'd Code» без GPL, вы должны получить его по другой лицензии, чтобы он больше не «GPL'd code» (оплачивая Cafu). Выхода из GPL нет - она ​​была специально разработана изобретателями как вирусная лицензия, и ее цель была бы сведена на нет, если бы это было возможно.

Тем не менее, если вы хотите использовать GPL код в вашей программе, вы можете создать автономный объект , что ваш использует приложения (динамическое связывание удовлетворяет это спорно - но обычно это принято , что если результат одной программы, то GPL вызывается ). Например, вы можете создать новый проект с GPL-кодом и ваш, который вы выпускаете вместе с вашим (проприетарным) приложением, вместе с GPL и исходным кодом. Однако ваше приложение связывается с ним через CLI или RPC и поэтому может оставаться свободным от GPL.

В настоящее время многие разработчики используют LGPL, который позволяет связывать большинство его форм без переноса GPL в целевой проект. (Однако, если вы измените саму библиотеку, вы все равно должны предоставить код библиотеки.)

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

себф
источник
9
Если вы используете даже строку кода GPL в своем проекте, ваш проект теперь находится под лицензией GPL. Нет. Если вы используете строку кода GPL, ваш проект не соответствует лицензии GPL, и тот, кто написал эту строку, может подать на вас в суд. Одно из возможных решений - выпустить ваш проект под лицензией GPL, но это не происходит автоматически.
TRiG
3
(Это по-прежнему не останавливает вас от продажи или выпуска по менее ограничительной лицензии в дополнение к GPL ...) Да, это так. Если я выпущу код под лицензией GPL, кто-то другой не сможет прийти и просто поместить этот код в (скажем) в общественное достояние. Я до сих пор владею этим кодом; Я только сделал это доступным для других на условиях GPL.
Эван Харпер
4
Несмотря на некоторые незначительные неточности, +1, потому что упоминается самое очевидное, простое, быстрое и наиболее доступное решение: чтобы использовать «код GPL» без GPL, вы должны получить его под другой лицензией . Свяжитесь с правообладателями, договоритесь о другой лицензии. Это, очевидно, работает и для любой другой лицензии.
Мартин Сойка
11
В этом ответе и во всех комментариях отсутствует одно важное условие: условия GPL применяются к распространению , а не к использованию . Если вы используете тысячи строк кода GPL в своем внутреннем инструменте (который вы не распространяете), то вы все равно не будете связаны условиями GPL.
MSalters
1
«Вам, вероятно, это сойдет с рук». Хммм, мне просто нравится это теплое и пушистое чувство, которое я получаю от этого ответа.
Тревор Бойд Смит
64

Вы избегаете GPL, платя разработчикам за коммерческую лицензию.

Тапио
источник
27
+1, я думаю, что Captain Obvious как-то не зарегистрирован на stackexchange :)
teodron
1
+1, хотя, если быть более точным, вы получаете разрешение на использование кода без лицензии GPL. Это не обязательно означает, что вы должны платить (хотя часто это будет).
Kylotan
на самом деле, вы говорите так, будто для каждой лицензии GPL всегда будет коммерческая альтернатива; это зависит от того, какова стратегия владельца этого кода.
user827992
4
Я бы сказал: «Вы избегаете GPL, платя разработчикам за коммерческую лицензию, тем самым давая им адекватную долю денег, которые вы надеетесь заработать, в качестве награды за много человеко-лет усилий, которые они вложили в ее написание».
DJClayworth
1
Практически: «Вы избегаете GPL, платя разработчикам за копию кода, который не обременен GPL (что-то вроде MIT)».
Джонатан Дикинсон
10

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

Джейсон Гомаат
источник
3
-1. Вы избегаете GPL: потому что они дают вам совершенно другую лицензию. Вы также не крадете их код - если вы выполняете действия, которые вас просят (например, платят деньги).
Джонатан Дикинсон
5
Нет, в этом случае ваше использование их кода не имеет абсолютно никакого отношения к GPL. Побег подразумевает, что ты пойман в ловушку.
Джейсон Гомаат
@JonathanDickinson Я думаю, что его суть в том, что ОП, похоже, не хочет платить за лицензию. Он хочет получить его бесплатно, но без ограничений GPL.
Пол
Это заставило меня тяготеть к обременению (а не краже) «Однако, тот факт, что это касается даже GPL, пугает меня». Это больше похоже на (обоснованный) страх перед баннером GPL, нависшим над кодом.
Джонатан Дикинсон
2
@Джонатан. ОП говорит, что Зи ничего не знает о лицензиях, поэтому я подозреваю, что его страх перед GPL не "обоснован".
TRiG
8

Вы действительно должны избежать GPL? Все, что GPL требует от вас, это выпустить свой собственный исходный код под GPL. Это не относится к игровым уровням, художественным активам и т. Д. Вы по-прежнему можете продавать свою игру и делать код доступным через GPL людям, которые покупают ее, если они этого хотят, или делают ее доступной для всех в Интернете.

Единственная проблема заключается в том, что если вы хотите использовать сторонние библиотеки не-GPL, вы не сможете распространять их вместе с вашим GPL-движком.

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

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

Существует много недоразумений о том, что на самом деле означает и что означает GPL, и я обнаружил одно в вашем вопросе:

все, что вы делаете с двигателем, подпадает под действие GPL

На самом деле это совсем не так. Источник движка наверняка остается под лицензией GPL, но стоит прочитать FAQ по GPL, особенно те его части, которые относятся к выходу программы GPL, которые, я считаю, актуальны здесь: http: // www. gnu.org/licenses/gpl-faq.html#GPLOutput

Есть ли какой-нибудь способ, которым я могу получить GPL, который люди получают от использования моей программы? Например, если моя программа используется для разработки аппаратного обеспечения, могу ли я потребовать, чтобы эти проекты были бесплатными?

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

Таким образом, единственный способ повлиять на использование выходных данных - это скопировать (более или менее) существенные части выходных данных из текста в вашей программе. Например, часть результатов Bison (см. Выше) будет покрыта GNU GPL, если мы не сделали исключение в этом конкретном случае.

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

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

IANAL и т. Д.

Максимус Минимус
источник
2
Я ничего не знаю о конкретном движке, но вышеизложенное верно только в том случае, если движок берет ваши игровые проекты и в результате выдает отдельную игру. Если сам движок или его часть распространяются вместе с игрой или связаны с кодом игры, GPL применяется ко всему этому.
rjmunro
Я считаю, что движок вполне может быть GPL, а игровой контент - нет. Игровой контент не является кодом и не связывается с движком так же, как код; карты, текстуры, модели и т. д. таким образом не связаны с движком. К сожалению, часто задаваемые вопросы по GPL неясны по этому вопросу (что является веской причиной, по которой следует избегать использования GPL).
Максимус Минимус
Этот ответ описывает больше того, что происходит с контентом, созданным с помощью какого-либо инструмента GPL. Как и документ, написанный в текстовом редакторе GPL, не будет обязательным быть GPL. Но это нельзя перевести на игровой движок. Игровой движок не берет код и создает отдельную игру, не связанную с движком - вы включите весь движок в свою игру.
Мацеманн
4

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

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

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

Ответ - нет, и единственный способ изменить лицензию - надеяться, что это сделает владелец.

user827992
источник
Неплохо в качестве общего ответа - однако в этом случае очевидно, что они принимают оплату за копии кода с другой лицензией. +1 (я тоже даю более общие ответы :)).
Джонатан Дикинсон
4

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

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

Только если владелец кода использовал в своем программном обеспечении какой -либо сторонний код GPL, написанный и принадлежащий кому-то другому, то весь его проект навсегда заблокирован в GPL (или до тех пор, пока он не удалит этот сторонний код GPL или не получит сторонний код). Лицензия GPL на это). Обратите внимание, что то же самое относится и к не-GPL, 100% коммерческому движку - если они содержат некоторый код GPL, они нарушают GPL, не имеют права продавать коммерческие лицензии, и вы не имеете права покупать такую ​​лицензию.

Таким образом, если весь код в «Cafu Engine» написан сотрудниками Cafu, у вас нет проблем с GPL. Если вы получаете коммерческую лицензию от Cafu, лицензия GPL к вам не относится .

Sandman4
источник
Этот ответ хорош, за исключением того, что, похоже, предполагается, что оригинальный постер является частью персонала Cafu и владеет кодом, что, похоже, не так.
Kylotan
Я этого не предполагал. Интересно, что заставило тебя так думать?
Sandman4
Ваш последний абзац в значительной степени говорит об этом, потому что он приравнивает «персонал Кафу» к «Вы».
Kylotan
@Kylotan Отредактировал последний абзац, чтобы сделать его более понятным. Хотя не могу сказать это правильно, каждый может сформулировать это лучше.
Sandman4
Это лучший ответ на долгий путь. Я отредактировал последний абзац, но у меня нет прав доступа на этом сайте, поэтому придется ждать одобрения.
rjmunro
2

Есть один способ «избежать» GPL или (практически) любой другой лицензии. Сделайте реализацию в чистом помещении.

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

Так создавался BIOS на оригинальных клонах ПК; BIOS был единственным, что IBM не позволяла другим людям копировать.

Это не означает, что вы в безопасности от судебных разбирательств. Патенты и всякое дерьмо «выглядят и чувствуют» все еще существуют, и, по крайней мере, в США любой может подать в суд на кого-то без особой причины (или, по крайней мере, так кажется). .)

Яри ​​Комппа
источник
1

Что касается вопроса о движке Quake: код может быть выпущен под лицензией GPL, а также под другими лицензиями. Valve лицензировал Quake, платя деньги iD. Позднее всем в мире была предоставлена ​​лицензия GPL (sic) на использование исходного кода Quake. Когда iD GPL определили движок, они не задним числом преобразовали другие лицензии в GPL; это было бы невозможно. Фактически, iD может по-прежнему лицензировать движок Quake под другой лицензией, если они того пожелают, поскольку они владеют оригинальным авторским правом.

Грегори Эйвери-Вейр
источник