Помогите подобрать или создать лицензию для распостранения софта
Для распостранения новой версии своей программы шифрования дисков мне требуется лицензия отличная от GPL, разрешающая свободное использование и распостранение программы, но запрещающая распостранение модификаций и использование ее кода в других проектах.
Хочеться чтобы выполнялись следующие требования:
1) Распостранение оригинального исходного и банарного кода разрешено без ограничений.
2) Разрешена сборка программы под себя, и модификация программы для личного пользования.
3) Распостранение модификаций запрещено.
4) Использование моего кода в других программах запрещено.
5) Запрещено платное распостранение программы и включение ее, либо ее частей в состав любого коммерческого пакета.
Подскажите подходящую под эти требования лицензию, либо обьясните как самому создать нужную лицензию. Если создается своя лицензия, то нужно ли ее где-нибудь регистрировать? В каких случаях она имеет юридическую силу, а в каких нет?
И вот еще: в программе есть небольшое количество исходников написаное на основе GPL кода. Не мешает ли это мне распостранять программу на моих условиях? Должен ли я распостранять доработаный мной GPL код на условиях GPL, или я могу наложить на него ограничения?
Ну, вот Вам текст лицензии:
Лицензия — это форма договора, заключаемого между Вами как правообладателем и пользователем объекта Вашего авторского права (обычно в виде оферты, поскольку текст не идентифицирует обе стороны договора). Юридическую силу такой договор принимает путём его акцепта пользователем. Акцепт — это однозначно идентифицируемое действие. В случае компьютерных лицензий акцептом обычно принимается установка (предпочтительнее) или запуск программы. Регистрировать лицензию, конечно, нигде не надо. Необходимо, чтобы её текст поставлялся вместе с программой и отображался перед началом установки или использования, словом, на том этапе, с которого лицензия должна вступить в силу (и где у пользователя ещё будет шанс от неё отказаться, если он находит условия неприемлемыми).
Гражданский кодекс не определяет конкретной формы договора, он может быть составлен в произвольной форме. Касаемо конкретного содержания, можете посмотреть на лицензию PGP Corporation, которая практически соответствует Вашим требованиям. Только учтите, что сдирать чужую лицензию без разрешения нельзя — текст лицензии сам является объектом авторского права. Но принципы можно заимствовать.
Вот в качестве аналогии можете посмотреть мою давешнюю лицензию[link1] на русификатор PGP. Не призываю, чтобы использовали её в исходном виде (нормы довольно жёсткие), но в качестве шаблона — на здоровье.
Еще есть вопрос по части лицензионного статуса исходников. Допустим я взял код aes распостраняющийся по GPL, и весьма основательно его переделал. Фактически от оригинала остались только названия некоторых переменных и места зависящие от алгоритма (которые не напишешь иначе). Могу ли я под этим кодом ставить свой копирайт и распостранять его на своих условиях?
Очень скользкий вопрос. Можно сказать, что раз Вы начинали писать на основе готовых исходников (а не с нуля по голому описанию алгоритма), то сделали производную работу, которую и распространять нужно под GPL с указанием предыдущих авторов и собственного копирайта. Но фактически ответ зависит от того, сколько осталось оригинального кода. В серьёзных случаях в похожих обстоятельствах проводят серьёзные экспертизы. Короче, однозначно я Вам ответить не смогу.
Ну, таким макаром можно сказать что даже написав пузырьковую сортировку ее надо будет распостранять по чьей-либо лицензии, ведь обязательно найдется похожий код. GPL принимать я категорически не хочу, поэтому придется перебивать все что осталось от оригинального кода, хоть это и не имеет никакого практического смысла :(
Я имел в виду, что юридические вопросы нельзя разрешить однозначно, кроме как в суде (и даже там бывают исключения). Просто если дело дойдёт до "поножовщины", Вам могут припомнить, что код всё-таки based upon, а не wrote from scratch, и изучать его будут под лупой. Можете сами заказать экспертизу. Но я не считаю себя достаточно компетентным, чтобы заниматься сравнительным анализом исходного кода и давать Вам какой-то однозначный ответ.
Не правда. если вы и ещё кто-то пишете программу с нуля, исходя исключительно из некоего общего известного вам обоим алгоритма, то програмым у вас получатся абсолютно разные даже при идентичной функциональности.... Ну это как речь на одну и ту же тему произнесённая разными людьми. Если вы стартуете с чьего-то кода, то в конечном счёте всё равно можно это потом будет показать :) Иначе, если вы настолкьо сильно всё переделаете что нельзя доказать, то вы проделаете большую работу, чем писали бы сами с нуля. В этом случае, прогноз неблагоприятный. Можете решиться на... но учитывать, что правовая основа в случае старта с чужих исходников будет хлипкой. На чисто человеческом уровне мне кажется что вы не совсем созрели, что требуете пунктов 3 и 4. Вам можно учесть, что есть довольно серьёзные проекты, по сравнению с вашим, и им куда больше ечть что терять.... но они пишут под GPLv3 – может быть, есть тому веские причины? Вы не задумывались над этим?
В первой версии программы я использовал часть исходников TrueCrypt, в результате чего на меня наехали авторы и потребовали убрать исходники, либо поменять лицензию на ихнюю. Это при том, что в составе TrueCrypt GPL код есть! После этого я был вынужден переписать весь ихний код, и не хочу чтобы мои наработки тащили к себе авторы трукрипта, либо других конкурирующих опенсорс или коммерческих программ. Нет уж, пускай они тоже помучаются с переписыванием, и постараются чтобы это получилось непохожим на мой код. Принцип – если не дают мне, то и я никому не дам. К тому же я хочу избежать создания коммерческих продуктов базирующихся на моем коде.
Если кому-нибудь действительно нужно использовать мой код, пусть он спросит на это моего разрешения. Я хочу решать сам, кому давать код а кому нет. Например авторам трукрипт не дам в жизни ни строчки, но если попросит кто-нибудь другой, то скорее всего разрешу.
А они как-нибудь отаргументировали тот факт что нарушают GPL?
Если последовательно продолжать их точку зрения, то надо было ответить: "Я забываю, что вы нарушаете GPL, а вы – что я нарушаю вашу лицензию". Если им не нравится можно пригрозить иском по поводу GPL либо потребовать сначала переписать тот кусок. Это всё при условии что сказанное – правда, конечно...
Фиг знает, у них лицензия какая-то особо хитрожопая. По ней они могут брать GPL код, а у них код брать нельзя. Короче переписал, и фиг с ним. Мой код получился меньше и быстрее.
http://freed0m.org/license.txt
Вот мой вариант лицензии основаный на лицензии SATtva. Пожалуйста прочитайте и найдите неточности.
Также прошу помочь в переводе лицензии на английский язык, так как я сомневаюсь, что смогу сделать юридически грамотный перевод.
Debian GNU/Linux не посчитал нужным связываться с Truecrypt именно из-за их лицензии, которую называли юридически безграмотной (Lawyer timebomb license или как-то так), и отказал им во включении в дистрибутив, примерно по тем же мотивам, что и вы ntldr. Вот никому с truecrypt пример брать не стоит, включая Ваши 3 и 4 пункты IMHO, хотя дело Ваше.
TrueCrypt распространяется под составной лицензией. Та часть программы, которая написана в TrueCrypt Foundation, идёт под их фирменной лицензией. Фрагменты заимствованного кода и модули, такие как оптимизированные шифры, идут под лицензиями своих авторов, включая и GPL. Никаких нарушений.
А разве лицензия GPL не требует, чтобы продукт использующий GPL код распостранялся целиком под этой лицензией?
Требует (кроме LGPL для либ).
Нет ессно.
Например, можно установить какой-нить коммерческий Матлаб на компутер под линуксом. Ясно, что он будет опираться на кучу GPL-вещей, библиотек и т.д... он всё это будет использовать, ничему не противоречит. Видимо, важно чтоб продукт не включал в себя GPL-код под другим копирайтом... Если продукт распространяется как A+B, где A – GPL-кусок с открыдым кодом а B – что-то другое под другой лицензией, то не вижу проблемы... Смысл в том только, что всё основанное на GPL после доработки должно идти под GPL.... но если они могут весь GPL-код выделить как отдельный модули или билиотеку, не перемежая его со своим кодом другой лицензии, то почему бы и нет...
Это называется "исковой бомбой замедленного действия". Один раз (в случае ядра E4M, на котором основывалась первая версия TC) они на эти грабли уже наступали.
GPL в их составной лицензии[link2] я не вижу. Если в программе присутствует GPL-код, то одно неупоминание лицензии есть нарушение. При условии, что код там есть. Сама GPL (вернее, LGPL) допускает, чтобы логически независимые модули распространялись под разными лицензиями.
К примеру TrueCrypt\Common\GfMul.c. Этот код написан на основе кода Dr Brian Gladman. Хоть автор и разрешает его использовать под другими лицензиями кроме GPL, непонятно под какую лицензию попадает модификация сделаная TrueCrypt Foundation.
Я нашел еще несколько подобных кусков. Правда нигде не указано что они распостраняются только по GPL. Короче как-то все мутно.
<=>
Чтобы не иметь гимора с хитрым переписыванием GPL кода я подумываю о возможности распостранения программы под лицензией GPL v3 с наложением дополнительных ограничений.
В GPL v3 есть такой пункт:
Под пункт Б я могу подвести требование о сохранении копирайта, под пункт B – запрет распостранения модификаций. Разьясните суть пункта Г, могу ли я подвести под него запрет на использование в составе коммерческого продукта?
Если это возможно, подскажите как правильно вписать эти ограничения в лицензию.
Вот только распространять такую систему без нарушения по крайней мере одной из лицензий не получится.
Хорошо. Скажу, что "для установки этого скачайте 'этот' архив и 'вот этот'" :)
А по поводу GPL v3 комментарии будут? А то у меня скоро релиз, и надо определяться с лицензией.