Пользователь
–20,6
рейтинг
6 декабря 2014 в 05:00

Авторское право, свободные лицензии и GPL с нуля из песочницы tutorial

В этом посте я дам метаинформацию об авторском праве и свободных лицензиях. Т. е. то, что должен знать каждый, кто пишет свободное ПО. Я не буду останавливаться на конкретных примерах таких лицензий, это вы сможете найти где-нибудь ещё в интернете. Также, я немного поговорю о GPL. Сразу скажу, что я не юрист, и мог где-то ошибиться. Весь этот пост применим почти ко всем развитым странам, в том числе к России и Америке (правда, к сожалению, авторизированного перевода GPL на русский язык нет, а потому она недействительна в России). Везде, где я говорю про GPL, я имею в виду GPL третьей версии, хотя почти вся эта информация применима и к GPL 2, и, скорее всего, будет применима к последующим версиям.

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


Любой продукт интеллектуального труда автоматически становится объектом авторского права. Всевозможные «Copyright», «All right reserved», «©» и т. д. не обязательны. Регистрация авторского права не нужна, однако, она может пригодиться, чтобы потом доказать, что вы действительно являетесь владельцем авторских прав, например, в суде. Т. е. если вы, например, написали программу, выложили её в интернет, не подписались, не написали «Copyright» и т. д., то вы всё равно являетесь владельцем авторских прав на неё. Но вот далеко не факт, что у вас получится, в случае чего, это доказать.

Что значит авторское право? Кто-то может подумать, что это право брать денежные отчисления за использование произведения. Да, это так, но авторское право включает в себя не только это. Авторское право — это право устанавливать любые ограничения и условия (т. е., собственно, лицензию) на использование произведения, в том числе право требовать отчисления. Например, какой-нибудь программист может потребовать, чтобы его программу использовали только стоя на одной ноге. И он будет прав. И любой, кто не подчинится этому условию, будет нарушать закон.

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

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

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

Срок авторского права ограничен. Когда он заканчивается, контент переходит в так называемое общественное достояние. Когда контент находится в общественном достоянии, за его автором всё равно остаются так называемые неимущественные авторские права. В основном это право на имя, т. е. никто не имеет права называть это произведение своим.

По Бернской конвенции авторские права сохраняются в течение всей жизни автора и в течение 50 лет после его смерти. Некоторые страны продлевают этот срок, в России он равен 70 годам. Если автор неизвестен, то срок отсчитывается с момента публикации произведения.

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

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

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

Свободные лицензии


А теперь давайте подробнее поговорим про свободные лицензии (GPL, BSD и т. д.).

Свободное, открытое, бесплатное, некоммерческое. Свободное ПО (free software) — это ПО, распространяемое на условиях свободной лицензии (либо находящееся в общественном достоянии), а свободная лицензия — это та, которая даёт пользователю право:
  • Использовать программу
  • Изменять её исходный код
  • Распространять программу
  • Распространять изменённые версии

Более точно, свободная лицензия — это та, которая удовлетворяет Free Software Definition. FSF ведёт список лицензий, которые он считает свободными.

Как бы это странно не звучало, но если человек написал программу и никому её не даёт, то это свободное ПО. Т. к. у этого ПО один пользователь и он имеет упомянутые выше 4 права. Столлман подтверждает: «If the operator developed them and uses them without distributing copies, they are free in a trivial sense since every user (there's only one) has the four freedoms».

Открытое ПО (open source software) — это ПО, распространяемое на условиях открытой лицензии (либо находящееся в общественном достоянии), а открытая лицензия — это удовлетворяющая Open Source Definition. OSI ведёт список лицензий, которые он считает открытыми.

По сути Open Source Definition не отличается от Free Software Definition, поэтому можно считать, что «свободный» и «открытый» — это синонимы, хотя бывают исключения. OSI признал Artistic License 1.0 открытой лицензией, в то время как FSF не признал её свободной.

Свободное и открытое ПО — это совсем не то же самое, что бесплатное. Red Hat Enterprise Linux — это свободное ПО, и при этом платное. Skype — это бесплатное ПО, и при этом несвободное.

Свободное и открытое ПО — это не то же самое, что некоммерческое. Практически все сколько-нибудь крупные свободные проекты (Linux, gcc, glibc, Gnome, FreeBSD, clang и многие другие) являются коммерческими в том смысле, что есть фирмы, заинтересованные в существовании этих проектов, которые разными способами помогают этим проектам (передают этим проектам деньги, нанимают разработчиков этих проектов, вносят код). И разумеется, есть полно некоммерческого и при этом несвободного софта, например, маленькая софтина, выложенная в интернет без исходных текстов.

При публикации материала на условиях свободной лицензии рекомендуется указывать:
  • Слово «Copyright» на английском языке и знак копирайта © (это необязательно, но всё же желательно)
  • Год публикации произведения (для использования при подсчёте срока окончания авторских прав)
  • Имя автора (без автора нет авторского права, а без него — лицензии)
  • Собственно, саму лицензию

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

Когда вы публикуете материал на условиях свободной лицензии, вы не отказываетесь от авторских прав (разве что можно сказать, что вы отказываетесь от части авторских прав). Наоборот, вы сохраняете авторское право за собой и именно это даёт вам право установить на ваш контент эту свободную лицензию. Лицензия — это договор между автором и пользователем. Лишь автор своим правом автора может устанавливать лицензию и менять её. Выкладывание контента в интернет ничем принципиально не отличается от других способов распространения, от передачи каждому пользователю лично. Если вы выкладываете материал в интернет, то можно сказать, что вы даёте его каждому пользователю в отдельности, заключая с ним договор, т. е. лицензию.

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

Каждая новая версия программы — это новый копирайт. Сроки авторских прав разных версий программы могут истекать независимо друг от друга. Если ядро Linux будет существовать тысячу лет, то по прошествии этого срока актуальная на тот момент версия ядра всё равно будет объектом авторского права, т. к. каждый новый патч — это новый копирайт. А вот срок действия авторских прав для старых версий ядра к тому моменту запросто может истечь.

Копилефт — это частный случай копирайта, а ни в коем случае не его противополжность. Копилефтные лицензии, например, GPL, работают за счёт того, что авторы сохраняют авторское право (копирайт) за собой. Поэтому при публикации контента на условиях GPL или любой другой лицензии надо писать именно «Copyright», а не «Copyleft» и не что-нибудь ещё.

Free Software Foundation (FSF) — обычная организация, как и любая другая. Он ничем не выделен юридически. Я читал где-то в интернете, что «Вы можете опубликовать программу под GPL двумя способами: оставив авторские права за собой, либо передав их FSF». Ну да, как и любой другой организации. Вот только передавать права FSF, даже не предупредив его об этом — это глупо. Передавать права FSF нужно в единственном случае — если вы делаете contribution (вклад) в официальный пакет GNU (и даже в этом случае это верно не для всех пакетов GNU). В этом случае нужно будет подписать и отправить специальный документ в FSF.

Более того, я читал в интернете, что публикуя контент под GPL, вы тем самым автоматически передаёте авторские права FSF, или даже Столлману лично. Я думаю, не нужно пояснять, что это не так. Да, в тексте GPL (возмём, например, GPL 3) написано «Copyright © 2007 Free Software Foundation», но этот копирайт относится к тексту самой лицензии, а не к вашему произведению.

Все запреты в тексте лицензии не являются абсолютными. Если что-то запрещено, это просто означает, что это разрешено лишь при согласии автора. Автор может по своему желанию разрешить всё что угодно кому посчитает нужным, и вообще раздавать свой контент разным людям на условиях разных лицензий. Сам автор вообще может использовать свой материал как хочет и не может быть скован своими же лицензиями. Например, лицензии, запрещающие коммерческое использование (такие как CC BY-NC) рекомендуется использовать лишь в одном случае: когда вы собираетесь коммерчески использовать произведение самостоятельно либо когда вы собираетесь разрешить отдельным людям (или организациям) коммерческое использование за деньги. Если же вы публикуете под CC BY-NC и при этом не зарабатываете на этом материале сами, то поступаете подло (ни себе — ни людям).

Или возмём такой пример: некоторые компании, например, Digia, владелец Qt, зарабатывают на так называемых исключениях из GPL. Это значит, что они публикуют код на условиях GPL, но при этом могут за деньги дать вам код на условиях другой, менее ограничительной лицензии.

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

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

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

При таком двойном лицензировании (в отличие от двойного лицензирования с союзом «и», о котором пойдёт речь дальше) любая лицензия совместима с любой другой. Т. е. нельзя сказать: «Двойное лицензирование под лицензией „A или B“ невозможно, т. к., скажем, лицензия A запрещает это». Потому что при двойном лицензировании автор фактически просто распространяет материал по одной лицензии, и кроме этого распространяет ещё и по условиям другой. И, ясное дело, первая лицензия не может запретить вторую.

Также, существует двойное лицензирование с союзом «и». Т. е. когда автор передаёт пользователю произведение, требуя соблюдения обеих лицензий сразу. И вот тут уже возникает понятие совместимости лицензий. Например, лицензия BSD не запрещает такое совместное распространение с другими лицензиями. И поэтому распространие по лицензии BSD и какой-то ещё возможно (при условии, что это не запрещено второй лицензией). А вот GPL запрещает накладывание существенных дополнительных ограничений сверх GPL. Сам список допустимых ограничений можно посмотреть в пунктах a — f раздела «7. Additional Terms» лицензии GPL 3. По сути, этот список таков, что делает GPL совместимой лишь с BSD-подобными свободными лицензиями. Поэтому лицензия «GPL и BSD» возможна (BSD не накладывает существенных ограничений сверх GPL), а вот лицензия «GPL 2 и GPL 3» (в отличие от «GPL 2 или GPL 3») — невозможна, т. к. GPL 3 накладывает существенные ограничения сверх GPL 2 и наоборот.

Иными словами, существует понятие «GPL-совместимой» лицензии, т. е. той, которая может быть соединена с GPL союзом «и». К таким лицензиям относятся CC0, BSD-подобные лицензии и сама GPL той же версии.

Поэтому, когда вы пишите, что программа распространяется на «условиях GPL версии 3 или выше», убедитесь, что вы пишите именно «или», а не «и».

Можно ли менять лицензию чужого произведения без согласия автора? Разумеется, нет. Но вы имеете право наложить дополнительные ограничения (они будут соединены с изначальной лицензией союзом «и») и распространять произведение дальше (с изменениями либо без) при условии, что изначальная лицензия это разрешает. Все свободные лицензии разрешают внесение изменений и дальнейшее распространение (на то они и свободные). И при этом, как я уже сказал, некоторые из них (BSD) разрешают навешивание любых дополнительных ограничений, а некоторые (GPL) — лишь некоторых. Это значит, что если есть произведение под лицензией BSD, то вы можете распространять его дальше под лицензией «BSD и GPL» (что эффективно будет эквивалентно просто GPL, т. е. получится, что вы эффективно сменили лицензию). Т. е. всегда можно «сменить» GPL-совместимую лицензию на саму GPL (правда, изначальная лицензия [например, в случае BSD] от этого никуда не денется). Но «сменить» таким образом лицензию с GPL на BSD, разумеется, нельзя.

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

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

Другой пример: проект состоит из двух файлов: под лицензией GPL 2 («GPL 2 only», т. е. «no later version») и GPL 3 (то же самое), и они линкуются. Тогда GPL 2 «заражает» второй файл, и он приобретает лицензию GPL 2, и становится «GPL 2 и GPL 3». То же самое происходит и в обратном направлении. Но мы с вами знаем, что лицензия «GPL 2 и GPL 3» невозможна. Значит, распространение такого проекта запрещено из-за несовместимости лицензий.

Распространённая практика в свободных проектах. У любого свободного проекта фиксирована лицензия, по которой он распространяется. Также, проекты бывают двух видов: те, в которых права на весь код передаются какой-то одной организации, и те, в которых все участники оставляют права за собой. Первый случай можно условно разбить ещё на два:
  • Это пакет GNU, и все права на код передаются FSF (напомню, что не во всех пакетах GNU принята передача прав FSF). Права передаются для того, чтобы гарантировать, что пакет всегда будет оставаться свободным, т. е. не дать участникам выбрать для пакета какую-нибудь другую лицензию, отличную от GPL, или раздавать исключения из GPL
  • Это проект коммерческой фирмы, и она собирает авторские права себе специально для того, чтобы продавать исключения из лицензии или чтобы оставить за собой возможность сменить лицензию

Сразу хочу заметить, что коммерческие проекты не несут в себе ничего плохого сами по себе. Как я уже писал выше, многие свободные проекты коммерческие. И далеко не во всех коммерческих проектах принята передача прав на код одной организации. Но к тем проектам, где принята такая передача, отношение в сообществе свободного ПО отрицательное (если это не FSF). Например, в спорах sysvinit vs upstart vs systemd одним из важных аргументов против upstart было то, что в этом проекте принята передача прав компании Canonical, что неприемлемо для сообщества свободного ПО.

(UPD от 19 мая 2016 г.: передача прав FSF всё же мало отличается от передачи прав любой другой организации. И даже в случае, если, предположим, вы главный автор одного из проектов GNU, дважды подумайте, прежде чем передавать права FSF. Главный разработчик GnuTLS вывел свой проект из GNU и выразил сожаление о том, что передавал авторские права на него FSF: www.opennet.ru/opennews/art.shtml?num=35681 .)

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

Например, практически все, кто делали вклад в ядро Linux (в этом проекте не принята передача прав одной организации), оставили права со собой (т. к. это предполагается по умолчанию), даже если они не вписали копирайт со своим именем в начало какого-нибудь файла. И все они передали свой код проекту на условиях лицензии GPL 2. Теперь, чтобы сменить эту лицензию, потребуется согласие всех участников, а это огромное число человек. Если какая-нибудь компания захочет купить исключение из GPL, ей придётся подкупить всех этих людей, и при этом отдельную проблему будет представлять собой даже всех их найти. Таким образом, «покупка ядра» практически невозможна. Подробнее можете почитать об этом в статье Buying the kernel.

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

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

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

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

GPL


Кратко суть GPL можно выразить так: эта лицензия разрешает всё что угодно, но при этом:
  • При дальнейшем распространении лицензия должна сохраняться
  • Вместе с бинарниками должны распространяться исходные тексты (либо должно распространяться обещание предоставить их по требованию, далее я не буду это упоминать)
  • Всё, что линкуется (статически или динамически) с кодом под GPL, тоже подпадает под действие GPL

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

Так кому адресована GPL? Предположим, что Алиса написала программу и передала её на условиях лицензии GPL Бобу. Тогда Боб в соответствии с этой лицензией получает право дальнейшего распространения. Допустим, он решил передать программу Кэрол. Тогда он обязан передать её только на условиях GPL. И если он передаёт бинарники, он обязан передать и исходники тоже. Обратите внимание, что эти обязательства возникают лишь при второй передаче (от Боба к Кэрол), а не при первой (от Алисы к Бобу). Почему? Да потому что Алиса — автор. И как автор она может делать вообще всё, что угодно, и никому ничего не обязана. Автор всегда может нарушить свою же лицензию, я уже писал об этом выше. В частности, автор может объявить, что распространяет некую программу на условиях GPL и при этом не распространять исходных текстов, и он не будет нарушать при этом закон. А вот те, кто будут распространять эти бинарники дальше — будут.

Например, однажды произошёл случай, который иначе как facepalm не назовёшь: обнаружено нарушение GPL в GNU Emacs. Выяснилось, что в течение долгого времени с Emacs распространялись сгенерированные компьютером файлы без исходных кодов. Подробнее можете прочитать здесь: В GNU Emacs обнаружен факт нарушения лицензии GPL. Я здесь хочу заметить вот что: сами авторы Emacs и FSF, которому принадлежат права на Emacs, не нарушили тем самым GPL. Потому что владельцам авторских прав можно всё. А вот те, кто распространяли Emacs дальше (например, дистрибутивы GNU/Linux) — нарушили. Это подтвердил и Столлман, в своём письме: «Anyone redistributing those versions is violating the GPL». Затем Столлман издал специальный документ, разрешающий распространение тех версий Emacs без полных исходников.

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

Давайте ещё раз разберёмся, кто есть кто, кому обращена лицензия, кто подразумевается под словом «you» в лицензии и т. д. Предположим, Алиса написала программу, установила на неё лицензию GPL и передала программу Бобу. Затем Боб начал читать лицензию, она обращена именно к нему, и «you» в тексте лицензии означает его, Боба. Лицензия сообщает Бобу, какие у него есть права (например, запускать программу) и обязанности (например, распространять бинарники только вместе с исходниками). Права и обязанности начинаются только с этого места. Сама Алиса имеет вообще все права, какие можно, и никаких обязанностей. Лицензия даёт Бобу право передать программу Кэрол. И если Боб передаст Кэрол программу без исходников, он нарушит лицензию. Вообще, нарушение лицензии осуществимо лишь при наличии как минимум трёх человек. И единственный из этих трёх (Алиса, Боб и Кэрол), кто может нарушить GPL — это Боб («может» здесь значит не «имеет право», разумеется, а «физически может»).

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

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

Я слышал, что какая-то секретная служба России создала свой дистрибутив GNU/Linux для внутреннего пользования и не публикует его. Если это так, то это не является нарушением GPL. Т. к. они не обязаны никому этот дистрибутив давать. Но вот если этот дистрибутив утечёт за пределы службы в любом виде, то человек, получивший его, будет иметь право потребовать исходные тексты дистрибутива, а затем распространять эти исходные тексты дальше на условиях GPL (я сейчас говорю о тех частях дистрибутива, которые имеют лицензию GPL).

Не требуется, чтобы программа (в бинарном или исходном виде) распространялась бесплатно. Единственное требование — если вы даёте бинарники (платно или бесплатно), то вы обязаны дать исходники вместе с ними, либо пообещать, что дадите исходники по первому требованию бесплатно или по цене доставки и физического носителя.

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

P. S. Я рассказал о GPL далеко не всё. За остальными подробностями см. саму GPL.

UPD от 2014-12-22. Что происходит при первом вкладе кода? Предположим, Алиса написала программу и выложила в интернет. В этот момент она, как автор, может менять лицензию проекта как угодно, не обязана сама соблюдать GPL (в случае, если лицензия проекта — GPL) и т. д. Но вот, предположим, первый contributor (участник) Боб внёс свой contribution (вклад) в эту самую программу. По умолчанию предполагается (как я уже говорил выше), что Боб оставляет авторские права за собой, и что он вносит свой код на условиях той же лицензии, что и сама программа. С этого момента Алиса перестаёт быть единственным автором программы, а это значит, что теперь она не может сменить лицензию проекта как угодно и сама должна соблюдать GPL (если проект под GPL) при распространении программы. Теперь, если она захочет сменить лицензию, то у неё есть лишь два способа это сделать:
  • Спросить согласие всех contributor'ов
  • Сменить лицензию в том смысле, про который я писал в разделе «Можно ли менять лицензию чужого произведения?» Это значит, что «сменить» лицензию с BSD на GPL она может (правда, уведомления о лицензии BSD в коде всё равно останутся), а вот с GPL на BSD — нет


UPD от 2016-11-10. Ещё раз скажу, что я совершенно не разбираюсь в праве. После публикации этой статьи я узнал сразу от двух юристов (настоящих юристов, в отличие от меня!) такой факт (относящийся к российскому праву). Который до сих пор не укладывается в моей голове, и который, как мне кажется, противоречит моей картине мира, изложенной выше. Допустим, одна фирма лицензировала другой фирме свой код (несвободный). В лицензионном соглашении написала, что фирма-получатель имеет право изменять код (и никаких дополнительных пояснений об ограничениях на дальнейшую судьбу этого изменённого кода). Тогда фирма-получатель может изменить код и авторские права на этот новый код будут автоматически целиком принадлежать фирме-получателю и дальше она уже может делать с этим кодом всё, что угодно. И не будет связана этим лицензионным соглашением.

Я спросил у второго юриста: «А как тогда быть с ядром Linux? В него вносят изменения тысячи человек. И когда очередной человек вносит изменение, то он не становится единоличным владельцем авторских прав изменённой копии. На эту копию распространяются авторские права всех когда либо внёсших изменения». Он сказал: «Да, всё правильно. Причина этого в том, что Linux распространяется на условиях специальной открытой лицензии, которая, собственно, эти правила и устанавливает».

Окей, зачем я это рассказал? А затем. Чтобы вы поняли, что я ни в чём не разбираюсь. Я просто рассказал о распространённой практике в мире свободного ПО. Просто чтобы были понятны разнообразные дискуссии о лицензиях. Мой текст имеет мало отношения конкретно к российскому праву и видимо даже к американскому. И он относится скорее лишь к свободному ПО.
Аскар Сафин @safinaskar
карма
–2,0
рейтинг –20,6
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (51)

  • 0
    Можно привести конкретные примеры с общественным достоянием?
    • +1
      www.makehuman.org находится в общественном достоянии (с помощью CC0). (Я правильно понял ваш вопрос?)
      • 0
        Российское законодательство не позволяет передать произведение в общественное достояние до истечения 70 лет. Любой отказ от право- или дееспособности, по ГК, ничтожен.
        • 0
          В CC0 есть Fallback-лицензия для таких случаев
          • 0
            Ее применение сводит действие самой СС0 совсем-совсем к нулю.
        • 0
          Погодите-погодите, а как же принятые октябрьские поправки в ГК про свободные лицензии?
          В студию призывается sardarbinyan
    • +1
      Набор конкретных примеров.
      Про музыку, например, еще есть здесь есть каталог, что находится в общественном достоянии.
      А так — много ссылок по теме здесь.
  • 0
    Из текста поста немного не понятен случай, когда Алиса, как автор, распространяет программу, Боб её изменяет, Алиса включает изменения к себе в программу — я правильно понимаю, что у программы уже 2 автора? И Алиса уже попадает под GPL, пытаясь распространить дополненную программу?
    • 0
      Да, у программы уже два автора. Да, и Алиса уже должна соблюдать GPL
      • 0
        Ещё пара вопросов:
        • Требуется ли уведомлять других авторов программы для её распространения?
        • Получается, что ситуация: автор распространяет программу под GPL (платно), но не распространяет исходников — вполне адекватная ситуация, которая блокирует дальнейшее распространение программы? Практически проприетарная лицензия?
        • 0
          Автор обязан предоставлять исходники по требованию.
          • 0
            Вы плохо прочитали пост.
            Загляните под спойлер.
            Цитата
            Например, однажды произошёл случай, который иначе как facepalm не назовёшь: обнаружено нарушение GPL в GNU Emacs. Выяснилось, что в течение долгого времени с Emacs распространялись сгенерированные компьютером файлы без исходных кодов. Подробнее можете прочитать здесь: В GNU Emacs обнаружен факт нарушения лицензии GPL. Я здесь хочу заметить вот что: сами авторы Emacs и FSF, которому принадлежат права на Emacs, не нарушили тем самым GPL. Потому что владельцам авторских прав можно всё. А вот те, кто распространяли Emacs дальше (например, дистрибутивы GNU/Linux) — нарушили. Это подтвердил и Столлман, в своём письме: «Anyone redistributing those versions is violating the GPL». Затем Столлман издал специальный документ, разрешающий распространение тех версий Emacs без полных исходников.

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

            Выходит автор может в любой момент послать всех просящих.
          • +1
            Изначальный единственный автор не обязан
        • 0
          Требуется ли уведомлять других авторов программы для её распространения?

          Вы имеете в виду, должна ли Алиса уведомлять Боба при дальнейшем распространении программы в вашем примере? Нет, т. к. вклад Боба по умолчанию предполагается под лицензией GPL. Значит, Алиса может распространять его дальше без уведомления под лицензией GPL.
          Получается, что ситуация: автор распространяет программу под GPL (платно), но не распространяет исходников — вполне адекватная ситуация, которая блокирует дальнейшее распространение программы? Практически проприетарная лицензия?

          Если это единственный автор этой программы, то да
  • +4
    А вот объясните мне, как считается срок авторских и смежных прав для продукции выпущеной комерческими компаниями? Если есть конкретный автор — то 75 или сколько там ныне лет после смерти автора, а если явно выделенного автора нет, а нечто создано коллективом «за зарплату»? Проще говоря, когда Windows 95 перейдет в общественное достояние?
  • 0
    У меня вопрос. Автор GPL-лицензированной программы может запретить распространять ее?
    • 0
      Если он уже успел дать кому-то эту программу на условиях GPL (например, он выложил её на сайт, и люди её скачали), то эти люди могут распространять её на условиях GPL дальше, и автор не может это запретить
      • 0
        Наверное, я криво сформулировал. Гипотетическая ситуация: автор намерен распространять свою программу под EULA, но с исходным кодом. Может ли он включить в свою программу чужой код под GPL и распространять результат под EULA и GPL?
        • 0
          Если он использует GPL код, то не может лицензировать свою программу под проприетарной лицензией. Только под GPL.
          А в случае с LGPL может.
        • 0
          Тогда вся программа будет под GPL. И если автор хочет навесить на GPL некую свою EULA, то она должна содержать лишь те дополнительные ограничения, которые разрешены GPL (например, требование, чтобы производная работа по-другому называлась). Т. е. вся программа будет по сути GPL
          • 0
            Разрешает ли GPL ограничивать дальнейшее распространение?
            • 0
              Нет. Вообще, список разрешённых дополнительных ограничений предельно краток, он находится в разделе «7. Additional Terms» GPL 3 в пунктах a — f. По сути, никаких ограничений, сколько-нибудь меняющих GPL, навешивать нельзя
    • 0
      Смотрите на лицензию как на договор. Если вы скачиваете и используете программу, а потом что-то меняется, то вы работаете по старому договору.
      И отвечая на ваш перефомулированный вопрос. Автор если у него достаточно прав может распространять программу как угодно. Каждая лицензия это как договор ведь. Например как с Qt, тут аж 3 лицензии GNU LGPL или GNU GPL, коммерческая.
  • +1
    Если сотрудник пишет код по заданию своего работодателя, то в подавляющем большинстве случаев авторские права на полученный код принадлежат последнему
    Я не юрист, но мне кажется тут некоторая подмена понятий. Авторское право (по крайней мере в России) является неотчуждаемым, то есть будь работодатель хоть трижды работодателем, автором кода останется тот, кто его написал. А вот имущественные права — да, у вашего работодателя (опять же, в рамках трудового или иного договора).
    • 0
      Под авторским правом я обычно и подразумевал имущественные авторские права. Может быть, вы правы, и надо было это везде уточнять
  • 0
    А можете прояснить момент касательно лицензирования библиотек следующее:
    Есть GPL2 продукт (конкретно — R), есть пропиетарный закрытый другой продукт (допустим ЗЛОсофт), который может к себе подключать разные скриптовые языки, и допустим мы хотим подключить R (через RInside который тоже GPL2 или же напрямую). Есть ли какой-нибудь способ построить мостик через раскрытие промежуточных компонентов, допустим ЗЛОсофт будет иметь интерфейс распространяющийся под LGPL или с двойным лицензированием, и уже на его основе будет собран интерфейс ЗЛОсофт-R который получается должен быть под GPL однако при условии динамической линковки с ЗЛОсофт конфликтов лицензий не возникнет? А при статической линковке я так понимаю проблемы всё-таки будут и ЗЛОсофт надо будет уже выпускать под GPL.
    • +1
      ЗЛОсофт :))))

      Начнём с того, что GPL «заражает» другой код как при статической линковке, так и при динамической.

      Да, вариант есть. Можно сделать так: ЗЛОсофт просто общается с R без линковки, используя какое-нибудь средство межпроцессного взаимодействия, через файлы, скажем, через UNIX пайпы или ещё как-нибудь. Как вариант: можно сделать вокруг R обёртку под GPL, которая уже, используя межпроцессное взаимодействие, общается со ЗЛОсофтом. По-другому никак
  • 0
    Не требуется, чтобы программа (в бинарном или исходном виде) распространялась бесплатно. Единственное требование — если вы даёте бинарники (платно или бесплатно), то вы обязаны дать исходники вместе с ними, либо пообещать, что дадите исходники по первому требованию бесплатно или по цене доставки и физического носителя.

    Вспоминается анекдот:
    теоретически нет различий между практикой и теорией. На практике различия есть.

    Скажите, пожалуйста, пример когда кто-нибудь продает GPL софт — не услугу по настройке, консультации, а именно сам софт.
    Имхо логика «GPL = бесплатно» вполне обоснована — не видел примеров платного GPL
    • +1
      Red Hat Enterprise Linux от Red Hat
      SUSE от Novell
      Astra Linux Special Edition от РусБИТех
      • 0
        ru.wikipedia.org/wiki/Red_Hat_Enterprise_Linux — Red Hat Enterprise Linux
        Основная особенность дистрибутива — наличие коммерческой поддержки на протяжении 10 лет, с возможностью продления до 13 лет.

        Т.е. здесь речь, в первую очередь, о продаже поддержки — или я не правильно понял?
        • +1
          Да, о продаже поддержки. Но при этом получить сам дистрибутив без поддержки, бесплатно, нельзя.

          (Насколько я слышал, купивший RHEL (Red Hat Enterprise Linux) не имеет право распространять его дальше, т. к. будет нарушать права на торговые марки Red Hat, но это, на мой взгляд, нарушение GPL, да и вообще, не понятно, как человек нарушает права на торговые марки, всего лишь распространяя RHEL и не выдавая торговые марки за свои. В общем, я не знаю, имеет ли право купивший RHEL распространять его дальше, и если нет, то как этого удалось добиться компании Red Hat)
          • 0
            речь изначально о том что теоретически многие рассказывают что GPL продавать можно, а практически — продавать можно только услуги по настройке, поддержке, хостинг файлов обновлений, футболки или другие сопутствующие товары. Если кто-нибудь поверит, что ему удастся настроить продажу GPL софта на сколько-нибудь продолжительный срок — я думаю чувака будет ждать разочарование.
            • +1
              Ну да, те, кому нужен RHEL, но без поддержки, скачивают себе бесплатно CentOS (это форк RHEL, специально для этого предназначенный :))
  • +1
    Большое спасибо за обзор — узнал много нового!
  • 0
    А мне вот такой вопрос интересен. Может кто ответить?

    Я начал разрабатывать проект с другим человеком (от него — основная идея и административное сопровождение, от меня — вся реализация). Через полтора года он организовал компанию, и я устроился к нему по стандартному трудовому договору, в котором никак не освещён вопрос авторских прав на результаты труда, вообще никак. Так проработали еще два года. Потом я официально уволился, но продолжал еще год с ним работать. Никаких других договоров я с ним не подписывал.

    Правильно ли я понимаю, что в данном случае авторские права принадлежат нам обоим на равных? Или, учитывая, что он только администрированием занимался, я могу считаться единственным автором? Или всё-таки права принадлежат ему, потому что я в определённый период работал у него официально (хотя и не передавал ему явно свои права)?
    • 0
      Авторские права принадлежат вам (хотя может быть проблемой это доказать)
      • 0
        А как вообще можно доказать права на ПО, если любые данные, теоретически, можно подделать?
        • 0
          Самый надёжный способ «застолбить» авторское право — это зарегистрировать его. Или, скажем, если бы в вашем случае в договоре было написано, что авторские права принадлежат вам, это, опять-таки было бы доказательством. Если можно доказать, что код написан вами (например, если владелец этой компании это и не отрицает), то тогда (т. к. в договоре ничего не сказано про передачу авторских прав), тоже можно доказать, что авторские права ваши. А вообще, ещё раз: я не юрист, и про авторское право я знаю мало, особенно про доказуемость авторского права, можете обратиться с вашим вопросом к кому-нибудь ещё. Просто я кое-что знаю о свободных лицензиях и, в частности, о GPL, и поэтому решил изложить свои знания в этом посте
          • 0
            А вообще, ещё раз: я не юрист, и про авторское право я знаю мало, особенно про доказуемость авторского права, можете обратиться с вашим вопросом к кому-нибудь ещё. Просто я кое-что знаю о свободных лицензиях и, в частности, о GPL, и поэтому решил изложить свои знания в этом посте


            Да, я принимаю этот момент во внимание, именно поэтому я в начале написал: «Может кто ответить?»

            В любом случае — спасибо. Мои мысли по этому поводу такие же, как у Вас, т.е. Вы их подтвердили — это немного укрепило мою уверенность в своей правоте.

            Конечно, если мне реально приспичит решать этот вопрос, я постараюсь найти соответствующего юриста ;)
  • 0
    Прекрасный пост, спасибо!

    Возникло несколько вопросов.

    1. Пример с «секретной службой». Почему, если утекут бинарники, тот, к кому они утекли, будет иметь право потребовать исходники? Или же, «потребовать» != «получить»?

    2. GPL подразумевает распространение ПО и исходников в том же виде, в котором они были получены? То есть, предположим, чисто гипотетически, что я передал кому-то бинарники и исходники, а этот кто-то дальше стал распространять бинарники, а на требования исходников отвечал: «Передам их в распечатанном виде по букве на листе А3», ибо «… либо пообещать, что дадите исходники по первому требованию бесплатно или по цене доставки и физического носителя». Бумага же в данном случае является физическим носителем?
    • +1
      1. Ну да, он будет иметь право потребовать и затем получить исходники. :) Я говорю про дистрибутив GNU/Linux, т. е. служба не является изначальным автором этого ПО. Значит, при распространении этого ПО служба должна соблюдать GPL. Утечка считается распространением. Значит, служба обязана предоставить исходники по требованию.

      2. Необязательно распространять в том же виде. Но в GPL написано: «durable physical medium customarily used for software interchange», т. е. «физический носитель, обычно используемый для доставки ПО». Бумага сюда не относится, т. к. её для этого не используют. :) А всякие там CD-диски подойдут
      • 0
        По байту на CD, м?
        • +1
          И ещё заставить получателя оплатить стоимость всех CD-болванок. :))))

          А вообще, такое, конечно, не прокатит. Спорные моменты решает суд, а суд исходит из здравого смысла
      • 0
        > Утечка считается распространением.
        А из чего это следует? Я почему спрашиваю, я где-то в англоязычных источниках читал, что распространением считается только законное распространение, а не утечки, хотя сходу найти ту публикацию не смог…

        Получается, что GPL приложения вообще опасно модифицированные использовать, так как если их украдут, например, в результате взлома, то потребуется открывать исходники, как в случае AGPL?
        • 0
          > Утечка считается распространением
          Я засомневался. Не знаю, в общем :)
        • +1
          Ну распространителем будет тот, кто их украл — пусть он и открывает исходники. Нет исходников => нарушил лицензию => в тюрьму ;-)
      • 0
        1. Если бинарники утекут помимо воли самой «секретной службы», разве можно говорить о том, что «служба» распространяет программу?
        2. В свое время PGP так экспортировали из США, на распечатках, чтобы обойти какие-то там экспортные ограничения. Так что все бывает. :)
        • 0
          2. Это по другому поводу было :) Там обходили ограничение на экспорт криптографии
  • 0
    Всё, что линкуется (статически или динамически) с кодом под GPL, тоже подпадает под действие GPL.
    Означает ли это, что я не могу опубликовать своё приложение на Node.js на условиях GPL, потому как чуть более чем 95% моих зависимостей доступны под пермиссивными лицензиями (MIT)?
    • 0
      Конечно, нет. Вы можете. Просто все эти зависимости подпадут под действие GPL. Ну а поскольку MIT и BSD совместимы с GPL, то такое вполне возможно
  • 0
    Спасибо за полезную статью.
    От себя хотел бы добавить один момент:
    Есть два общепризнанных определения свободности программного обеспечения (и не только): одно из них издано FSF, другое издано debian'ом (для тех, кто не знает: это такой дистрибутив линукс'а знаменитый своим качеством подготовки пакетов, а также трепетным отношением к свободному ПО) и называется оно DFSG (debian free software guidelines).
    Они во многом похожи, но не совпадают, например есть одна очень весёлая история про документацию на gcc, которую FSF считает свободной, а debian — нет.

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