Обновить

Лицензии важны. Разбор ошибок авторов и пользователей программ

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.2K
Всего голосов 1: ↑1 и ↓0+1
Комментарии35

Комментарии 35

Даже если лицензия указана в README, LICENSE, COPYING в корне каталоге, вы всё-равно не можете заимствовать эти файлы в свои программные проекты.

Вы, судя по профилю, не юрист, а есть какой-нибудь комментарий юриста или судебный прецедент, подтверждающий правильность именно такой трактовки?

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

В лицензии написано «this software», что скорее всего охватывает все файлы в репозитории, если не указано иное

А что делать с бинарниками и прочими файлами, в которых технически невозможно прописать лицензию?

В лицензии написано «this software», что скорее всего охватывает все файлы в репозитории, если не указано иное

Специально открыл архивы с исходниками NetBSD. Лицензия указывается в каждом файле. Кроме документации, где просто указывается принадлежность файла NetBSD. Это хорошая практика, хотя не помешало бы и в документацию вставлять лицензию.

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

А что делать с бинарниками и прочими файлами, в которых технически невозможно прописать лицензию?

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

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

Она указана в файле LICENSE, который охватывает весь «this software», и копирайт берём оттуда же, этого достаточно

По крайней мере до тех пор, пока какой-нибудь юрист мне не докажет, что такая трактовка неверна

Как правило это проприетарная лицензия

У изображений в свободном ПО разумеется нет

Предположим, что вы разрабатываете и публикуете программу под лицензией BSD 3-Clause. В чужом проекте вы обнаружили полезный исходник под лицензией MIT, указанной в LICENSE, но не указанной в самом файле. Вы его копируете себе в дерево исходников. Под какой лицензией он распространяется?

Под любой, в том числе BSD, потому что лицензия MIT не запрещает перелицензирование. Единственное требование — не забыть скопировать и файл LICENSE тоже

Перелицензирование допускается при явном указании такого права, MIT такого права не даёт.

Копирование файла LICENSE не поможет, так как в нём не указано, к какому файлу он относится. Более того, файл с таким именем уже может присутствовать, но с текстом лицензии BSD.

MIT такого права не даёт

Фраза «without restriction» прямым текстом даёт разрешение на перелицензирование

не указано, к какому файлу он относится

И здесь снова нужен юрист, который подтвердит или опровергнет вашу трактовку

файл с таким именем уже может присутствовать

Поэтому никто не запрещает встроить текст файла LICENSE прямо внутрь взятого исходника

Фраза «without restriction» прямым текстом даёт разрешение на перелицензирование

Фраза ниже:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

говорит о том, что текст лицензии фактически должен быть сохранён в неизменном виде.

Поэтому никто не запрещает встроить текст файла LICENSE прямо внутрь взятого исходника

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

текст лицензии фактически должен быть сохранён в неизменном виде.

И не содержит никакого запрета на перелицензирование

Поэтому MIT-код активно используется в проприетарных программах: текст лицензии сохранён в каком-нибудь NOTICE.txt, но при этом права на «copy, modify, merge, publish, distribute, sublicense» у вас успешно отбирают, потому что программа проприетарная

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

Причина не во фразе without restrictions. А в том, что большинство лицензий, включая MIT, не содержат требования предоставления исходных текстов. И линковаться код может с кодом под любой лицензией. А вот GNU GPL здесь в исключительной позиции.

Мне всё ещё не кажется, что ваши трактовки верные, но, похоже, мои личные навыки буквоедства закончились, дальше мне нужен юрист

Поэтому к своему новому коду я стал лепить MIT No Attribution, чтобы не вынуждать других страдать таким же буквоедством 🙃

Евгений!

Пожалуйста, укажите лицензию на эту статью. Вы забыли это сделать.

Спасибо.

Шутка принята. Если серьёзно, то указание лицензии на публикуемую в открытый доступ статью не требуется. По-умолчанию вам дано право читать, используя соответствующие технические средства, но не разрешается распространять и вносить изменения. Поэтому обычно лицензия не указывается. Когда я хочу дать больше прав, то использую CC-BY-ND или CC-BY-SA.

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

право читать,

У вас есть право читать любые программы, но вы же сами пишете, что этого недостаточно.

не разрешается распространять и вносить изменения.

Именно тут и есть настоящая катастрофа. Все ваши статьи должны быть свободными, чтобы использовать их в опенсорсе. Поэтому я прошу вас как можно скорее указать лицензию CC-BY или CC-BY-SA 3 или 4 версии в этой статье и во всех других ваших статьях.

Именно так я и делаю, ведь без этого вы не можете использовать мои статьи в своих проектах!

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

Если статья не свободна, значит, вы не понимаете смысла и ценности свободных лицензий.

Если вы не понимаете их смысла и ценности, значит, вам не хватает знаний, чтобы их обсуждать.

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

Если статья недостаточная, значит, нет смысла её читать.

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

Сейчас вашей статье нельзя ни доверять, ни воспринимать всерьёз. Точно так, как нельзя доверять инженерной машине, сделанной без математических расчётов.

Прежде чем читать мне нотации, хотя бы посмотрели мой профиль, мои статьи. Я сторонник СПО и идей Ричарда Столмана с 1998 г. Все эти годы я продвигал свободное ПО, где только мог: в высшем образовании, на предприятиях, где я работал, среди учеников и друзей. Последние 10 лет на своих компьютерах пользуюсь только им. Веду базу знаний, которую распространяю под CC-BY-SA 4.0. Опубликовал несколько проектов под GNU GPL v3. И Вы будете меня хамски учить?

Без особой надежды, но может всё же прочтёте хотя бы мнение авторитетов: https://www.gnu.org/licenses/license-list.html#OpinionLicenses

Я внимательно посмотрел ваши статьи. Лицензии там не указаны. Вы приглашаете других людей лицензировать — однако оставляете ваши статьи без лицензий.

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

BY-ND лицензия не позволяет даже дописывать ваши статьи комментарием и предисловием, даже снабжать её иллюстрациями, даже переводить на другие языки. Почему? Потому что она несвободна.

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

Ещё до публикации данной статьи, я принял решение указать во всех своих статьях лицензию CC-BY-ND. (Сделаю это скопом, когда найду время.) Чтобы их можно было читать и свободно распространять с оригинальным содержанием. Но позволять делать с ними что угодно ненормально. Я не сумасшедший, чтобы позволять делать нарезку из моих статей, вставлять в неё кому угодно какие угодно дополнения и всячески искажать мой авторский текст, моё мнение и мой опыт. Жаль, что автор книги “Право читать” для Вас не авторитет. И Вы хотите получить всё и сразу, не взирая на опасности неограниченной свободы.

Что касается перечисленных Вами вещей, то для большинства из них достаточно цитирования. Вы ведь в научном учреждении работаете? Должны это знать. А как-либо дорабатывать и переводить мои статьи не нужно, это не документация. И даже опечатки исправлять…

А делать с программой что угодно — это нормально? Делать нарезку из ваших программ, вставлять в них какие угодно библиотеки и всячески искажать ваши авторские функции — разве это можно?

В научном учреждении дела обстоят совсем не так, как вы думаете. Обычно в научное учреждение приходит заказчик и объясняет, что ему нужен материал, который можно использовать в коммерческом производстве. ND-лицензия для этого не годится, потому что ND-лицензия не позволяет заказчику выполнять его работу. Цитировать заказчик не может, потому что цитирование допустимо только в научной, учебной или культурной работе — а фабрика в силу устава не занимается этим, она извлекает прибыль.

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

Общение с Вами утомило и вызвало скачёк давления и головную боль. Продолжать – вредить себе. Прощайте! И не скорбите…

Вы приглашаете других людей лицензировать

Вы переврали суть моей статьи. См. ниже цитата из начала статьи. Вот поэтому я и миллионы других авторов никогда не опубликуют свои статьи под CC-BY-SA!

Давайте разберём типовые ошибки авторов программ, и поджидающие у их пользователей проблемы.

То есть ваша статья о том, что свобода вредна и свободу надо уничтожать?

Помогаете режиссёру Михалкову?

потому что программировать надо. а не этот вот все. напридумывали

Евгений, после прочтения статьи возникло больше вопросов, чем ответов.

отсутствие указания лицензии делает скрипты проприетарными

Некоторые думают, что отсутствие лицензии означает…

Это совсем не так…

Можете дать ссылку на какой-то документ, который это подтверждает? Может быть, конкретный отрывок из законодательства по авторскому праву. Кто это решил и на каком основании? Во всех ли странах все одинаково? Почему отсутствие лицензии делает скрипты именно проприетарными, а не приписывает им свойства “делайте что угодно”, GPL, MIT или еще какой-то другой вариант? На чем основано ваше утверждение?

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

Если вообще не указать лицензию, то за рамки какого закона мы выходим?

…много проектов игнорируют необходимость указания лицензии и копирайта

Опять же, что это за необходимост такая? Именно необходимость, а не возможность. Кто конкретно требует от меня, как от автора кода, указывать все это?

Отсутствие же лицензии означает одно: вам не предоставлено никаких прав, вообще.

Все тот же вопрос: почему вы считаете именно так? Как тогда читать даже сам файл лицензии, если у меня вообще никаких прав нет? И что, например, делать, если в лицензии будет запрет на стирание или, допустим, остановку программы?

Свобода программы подразумевает следующие четыре свободы… Это, может, конкретно GNU подразумевает приведенные свободы. Не никто ж не мешает мне подразумевать что-то свое. Верно ведь?

Если лицензия не указана, то ни одна из свобод вам не предоставлена. Вам вообще не предоставлено никаких прав. … Даже изучать!

Но и ограничений тоже никаких. Если верить вашим же словам чуть выше: “чётко обозначенные права (разрешения) и ограничения (запреты)”.

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

Каждый файл дерева каталогов исходных текстов должен содержать указание, под какой лицензией он распространяется.

Можно ли, например, сам файл лицензии A распространять под лицензией B? Правильно ли я понимаю, что если в архиве рядом с исходником src.c есть файл LICENCE с лицензией А и указанием, что эта лицензия действует на все файлы архива, и при этом в шапке самого src.c указана лицензия B, то в итоге действует именно B? Каким законом определяется этот приоритет?

В некоторых странах, распространение файла без копирайта незаконно.

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

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

N.B.: мне более близка позиция “смог получить исходники - делай с ними что хочешь”. Хотя я, конечно, понимаю утопичность и уязвимость такого подхода.

Спасибо за пространный комментарий! Пожалуйста, не мучайте меня просьбами дать ссылки на Кодекс и Законы, а также на прецеденты. Я не юрист. В статье я лишь пытаюсь ответить на возникающие вопросы, исходя из практики анализа исходников и авторитетов. Цель статьи поднять тему наверх. И я рад, что это вызвало отклик. И всё ещё жду разгромного комментария от опытного в этих вопросах юриста. Но пока тишина.

Что ж, ваша позиция понятна. Статья вкупе с комментариями воспринимается как, действительно, поднятие темы лицензий, но без ответов на вопросы. Тезисы, изложенные вами, носят лишь декларативный характер (хоть я и не могу утверждать , что они неверны). Есть ли лицензии/копирайты/трейдмарки? Вроде бы да.
По какой причине о них надо думать, заботиться и держать в порядке именно так, как описано? Да фиг знает, никто толком не говорит. Вы не юрист. Так надо и все тут. Потому что иначе - невежество и нарушение духа GNU.
В итоге подозреваю, что для некоторых пользователей вывод может заключаться в следующем: с точки зрения автора кода, который хочет поделиться своими наработками, на все эти лицензии и копирайты надо просто забить.
Спасибо @PereslavlFoto за комментарий - хотя бы есть с чего начать изучать тему.

По какой причине о них надо думать,

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

держать в порядке именно так, как описано?

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

Почему отсутствие лицензии делает скрипты именно проприетарными

В силу 1229 статьи ГК РФ, которая описывает default mode. Она основана на международных договорах.

Если вообще не указать лицензию, то за рамки какого закона мы выходим?

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

Кто конкретно требует от меня, как от автора кода, указывать все это?

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

Но и ограничений тоже никаких.

By default ограничения записаны в законе.

Можно ли, например, сам файл лицензии A распространять под лицензией B?

Нет, потому что тексты лицензий не принадлежат автору текста.

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

Если написать ничего, будет работать норма, взятая из закона.

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

Посмотрите, пожалуйста, в Гражданском кодексе статьи 1229, 1235, 1270, 1286.1.

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

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

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

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

Нет, потому что тексты лицензий не принадлежат автору текста.

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

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

Вот это интересный момент. Получается, что в течение времени фактические условия использования, которые оговорены в лицензии, вполне могут поменятья. Потому что сам закон может поменяться. Это ровно та же самая ситуация, как отсылка к некой “привычной” лицензии по называнию (например, BSD3). Только в неявном виде.

Спасибо за указание конкретных статей! Полезно. Надо будет почитать как-нибудь.

Тогда получается, что это забота конечного пользователя.

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

всегда надо предоставлять лицензию. Даже если я не хочу ни от кого денег.

Это правда: если автор не даст разрешения, никто его не даст. Только автор может дать разрешение.

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

Вы правы, это трудный момент.

Да, вы можете написать свою лицензию. Однако у вас получится один из двух результатов. Либо вы ПОВТОРЯЕТЕ другую типовую, общепринятую лицензию, и тогда ваша новая лицензия ничего не даёт вдобавок, не нужна. Либо вы ПРОТИВОРЕЧИТЕ другим типовым, общепринятым лицензиям, и тогда ваша новая лицензия не совместима с другими, и тогда она мешает применять ваш материал в новой работе, не нужна.

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

Получается, что в течение времени фактические условия использования, которые оговорены в лицензии, вполне могут поменяться.

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

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

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

И что, например, делать, если в лицензии будет запрет на стирание или, допустим, остановку программы?

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации