Правовая сторона СПО → Как создать несвободное ПО с использованием свободного
У меня всегда был вопрос, как создать несвободное ПО с использованием свободного (библиотеки, скажем), ну вообщем так, чтобы свободное стало частью несвободного. Предлагаю не набрасываться сразу на меня, мол, как неэтично создавать несвободное на базе свободного. Причины все-таки могут быть: скажем, разработчику несвободного крайне удобно использовать именно данную свободную разработку, а для создателей этой свободной разработки — это способ повышения популярности своего детища, чтобы сделать его в конце концов стандартом.
И насколько я понимаю это запрещено большинством свободных лицензий, а единственный выход — использовать свободное ПО, предоставляемое ослабленной GNU Lesser General Public License. Если я в чем-то заблуждаюсь (может полностью :-) ) — объясните, пожалуйста.
И насколько я понимаю это запрещено большинством свободных лицензий, а единственный выход — использовать свободное ПО, предоставляемое ослабленной GNU Lesser General Public License. Если я в чем-то заблуждаюсь (может полностью :-) ) — объясните, пожалуйста.
- +5
- krototo
- 03 июля 2009, 12:12
Некоторые авторы предусматривают двойное лицензирование, GPL для свободного использования и проприетарная лицензия для желающих использовать код в несвободных продуктах. Пример такого MySQL.
Можно вынести несвободный код в отдельные модули, и предоставлять код только открытых частей, или даже использовать свободные программы в качестве внешних компонентов.
GPL — полная защита СПО, ничего комбинировать нельзя
LGPL — неполная защита СПО, можно комбинировать, но свободная часть остаётся свободной
3-clause BSD, MIT и аналоги — отсутствие защиты СПО, можно закрывать код
Надо сказать, что «комбинирование» — не совсем удачный термин. Строго говоря, GPL не запрещает комбинировать СПО и не-СПО. GPL запрещает распространять такую комбинацию без сырцов. То есть можно использовать GPL-библиотеки с проприетарным ПО. Но нельзя такое ПО распространять (вообще, можно попробовать распространять в виде сырцов, но тогда теряется основной смысл проприетарности).
Теперь, о бинарниках. Я в своё время направил подобный вопрос в FSF. Они мне сказали примерно следующее: степень интеграции двух программных объектов (СПО-объекта и не-СПО-объекта) определяется в суде. Если суд скажет, что имеет место комбинация, то разработчик нарушил GPL. Это касается таких экзотических способов как связывание GPL-библиотеки через сокет с проприетарной программой, так как с простой линковкой всё и так ясно — нельзя.
Сайт FSF отдельно говорит о плагинах (когда происходит динамическая линковка, но при этом отсутствует явная заточка головного ПО под плагин, то есть разработчики головного ПО не могут предвидеть, плагины под какими лицензиями будут комбинироваться с их ПО, поскольку интерфейс универсальный). Это — серая зона. В частности, известны проприетарные программы, под которые пишутся свободные плагины — и никто никого пока не судит.
Относительно приведённого куска поясняю его смысл: если куски комбинированной программы ты написал сам, не основываясь на свободных кусках, и эти (свои) куски способны работать в отрыве от свободных кусков, ты можешь эти (свои) куски распространять как хочешь (потому что они твои) отдельно от свободных кусков. Но если ты распространяешь всё вместе, то оно должно быть свободным всё вместе (хочешь ты того или нет), и эти (свои) куски тоже становятся свободными.
То есть опять же, основной камень преткновения — вопрос о том, способны ли несвободные части произведения работать в отрыве от свободных (т.е. свободные части — опциональны). Если да, то GPL в принципе не нарушен, если обе части остаются отдельными [на уровне сырцов?] (не уверен, можно ли в таком случае распространять бинарники вместе, наверное — да). Но это уже тонкости.
куда-подальшеза библиотекой и система не падает в BSOD, то она считается способной работать в отрыве от свободных?Если без библиотеки работает — то другое дело.
Но опять же — это тонкости. И см. замечание насчёт решения суда.