[GNU GPL] в каких случаях и на каких условиях можно использовать код
хотя бы википедию пытался почитать?
В каких случаях и на каких условиях можно использовать код под GNU GPL в проприетарных приложениях?Если не релизишь. Если релизишь derivative work, то только под GPL.
Что насчет LGPL?Можно использовать LGPL-библиотеку в своей проприетарной проге.
Можно ли использовать какую-то библиотеку в виде исходного текста без модификации этого текста и не выделяя в виде отдельного dll или so если библиотека под GPL?нет.
под LGPL?нет, только в виде отдельной DLL.
Вообще, LGPL = "GPL, но можно линковать как библиотеку в проприетарном приложении".
если я модифицирую, достаточно ли будет предоставить модифицированную либу или нужно раскрывать все приложение целиком?Для LGPL - достаточно предоставить либу.
А для GPL - это вопрос тонкий и обсуждаемый. Он сводится к вопросу: "является ли моя прога derivative work, если я линкую GPL-библиотеку?" Тут идет споры, но я бы считал, что ответ - "да". Так надежнее.
пытался, но запутался
Вот это мне странно. Получается что LGPL не ограничивает использование, но ограничивает технические детали - способ линковки. То есть статически влинковать либу в свою прогу я не могу, а динамически - пожалуйста.
Можно ли использовать какую-то библиотеку в виде исходного текста без модификации этого текста и не выделяя в виде отдельного dll или so если библиотека под GPL?нет.
А для GPL - это вопрос тонкий и обсуждаемый. Он сводится к вопросу: "является ли моя прога derivative work, если я линкую GPL-библиотеку?" Тут идет споры, но я бы считал, что ответ - "да". Так надежнее.а в виде отдельного exe-шника?
Вот это мне странно. Получается что LGPL не ограничивает использование, но ограничивает технические детали - способ линковки. То есть статически влинковать либу в свою прогу я не могу, а динамически - пожалуйста.Статически тоже можно, но при условии, что ты обеспечишь возможность обновить библиотеку до новой версии (например, предоставишь объектные файлы для перелинковки).
Но вообще, LGPL, как я понимаю, это ответ GNU на мой вопрос выше "линковка с GPL-либой - это derivative work или нет?" Ответ такой: "не знаем, но LGPL это позволяет декларативно".
2: это все то же обсуждение. Вроде как считается, что взаимодействие посредством "слабых" связей (типа конфиг файлы, аргументы командной строки, потоки ввода-вывода) позволяется, а "сильное" связывание (типа shared memory, named pipes, мьютексов, не знаю) не позволяется. Но каждый случай следует отдельно рассматривать.
насколько я знаю, РМС не согласен с такой точкой зрения.
"слабых" связей (типа конфиг файлы, аргументы командной строки, потоки ввода-вывода) позволяется, а "сильное" связывание (типа shared memory, named pipes, мьютексов, не знаю) не позволяетсяПипец. Почему-то мне GNU GPL все больше начинает напоминать анального господина.
Вот скажем, пишу я прогу, по работе пишу за деньги для работодателя и использую некую малоизвестную либу. Либа глючная, но работает и лицензия разрешает использовать в любых целях. В процессе работы я правлю какие-то глюки, слегка причесываю архитектуру и выпиливаю к херам какой-то кривой функционал сомнительной ценности. И эта версия, которая стала проще, меньше и стабильнее лежит у меня. А будь она под лицензией а-ля ГПЛ, но не заставляющей открывать весь код продукта, я бы поделился этой либой с другими людьми.
Почему-то мне GNU GPL все больше начинает напоминать анального господина.Так и есть. Под GPL выпускают библиотеки разработчики, которые хотят бабла. Те, кто действительно хочет чем-то поделиться с сообществом, используют MIT, zlib, и так далее.
Вот скажем, пишу я прогу, по работе пишу за деньги для работодателя и использую некую малоизвестную либу. Либа глючная, но работает и лицензия разрешает использовать в любых целях. В процессе работы я правлю какие-то глюки, слегка причесываю архитектуру и выпиливаю к херам какой-то кривой функционал сомнительной ценности. И эта версия, которая стала проще, меньше и стабильнее лежит у меня. А будь она под лицензией а-ля ГПЛ, но не заставляющей открывать весь код продукта, я бы поделился этой либой с другими людьми.
Хватит ныть, выпускай свою либу под Dual BSD/GPL.
а есть ли лицензия, которая разрешает использовать и модифицировать библиотеки, не раскрывать полный код продукта, но обязует раскрывать модификации библиотек?
Хватит ныть, выпускай свою либу под Dual BSD/GPL.я не ною, мне за державу обидно.
почти всегда можно кроме GPL найти что-то аналогичное по функциональности, но с более вменяемой лицензией.
upd
ну то есть, как я могу выпустить какой-то код, к написанию которого я приложил руку под BSD/GPL, если код писался в рабочее время и все права на него очевидно принадлежат не мне, а работодателю? вот если бы была особая лицензия, можно было бы сказать "Господа правообладатели, мы использовали крутую либу, получили свой профит, теперь согласно условиям лицензии должны апгрейженую либу вернуть сообществу". А коль скоро реальная лицензия позволяет не раскрывать модификации, то и поднимать такой вопрос имхо бесполезно.
есть, и про неё уже выше написали - LGPL называется
там статическая линковка запрещена же
это тебе нагло наврали, в ней ни слова нет про статическую линковку.
С чего бы? Обеспечить пользователю возможность обновления можно и при статической линковке, просто это сложнее. Нужно включить копию той части исходников, которая напрямую использует либу (wrapper по сути). Исходники остальной части проги включать не надо, достаточно объектных файлов. Смысл в том чтобы у пользователя была возможность самому слинковать приложение с другой версией LGPL-либы (возможно, с изменённым API).
ну то есть, как я могу выпустить какой-то код, к написанию которого я приложил руку под BSD/GPL, если код писался в рабочее время и все права на него очевидно принадлежат не мне, а работодателю?
Не путай права и лицензию.
вот если бы была особая лицензия, можно было бы сказать "Господа правообладатели, мы использовали крутую либу, получили свой профит, теперь согласно условиям лицензии должны апгрейженую либу вернуть сообществу".Таких лицензий много, одна из них называется GPLv2.
А коль скоро реальная лицензия позволяет не раскрывать модификации, то и поднимать такой вопрос имхо бесполезно.
Какая реальная лицензия? И "позволяет" не означает "обязывает".
И "позволяет" не означает "обязывает".а теперь представь, как я объясняю начальству, что надо бы открыть измененные исходники либы, потому что лицензия на либу не запрещает открывать исходники на нее.
Не путай права и лицензиюа что, у меня таки есть право использовать по своему усмотрению код, который я написал на работе? за мной вроде только авторство закреплено. к тому же код правится не одним мной, там даже про авторство сложно говорить.
Таких лицензий много, одна из них называется GPLv2.
не понял. вроде если я использовал код под ГПЛ2, я вроде должен производную работу сделать тоже ГПЛ2+
Для обсуждения собственных недостатков в коммуникационных навыках заведи отдельную тему во флуде.
главное, вовремя перейти на личности
вот если бы была особая лицензия, можно было бы сказать "Господа правообладатели, мы использовали крутую либу, получили свой профит, теперь согласно условиям лицензии должны апгрейженую либу вернуть сообществу".
Таких лицензий много, одна из них называется GPLv2.не понял. вроде если я использовал код под ГПЛ2, я вроде должен производную работу сделать тоже ГПЛ2+
поясняю еще раз: одно дело либа, другое дело - проект который ее использует, он сам по себе не маленький, закрытый, платный и открывать его никто не собирается. однако, в процессе работы над ним бывает что делаются изменения сторонних либ, которые фактически оплачиваются владельцем упомянутого продукта и могли бы быть полезны другим людям при подходящих условиях лицензирования либ. А условия лицензирования либ либо слишком драконовские - "открывайте весь продукт, если используете либу", либо наоборот, слишком мягкие "делайте что хотите, можете зажилить результат, вам слова никто не скажет".
главное, вовремя перейти на личности
Начал спрашивать про лицензии, закончил вопросами "а как я начальству скажу "... Подходишь к самому толстому начальнику и говоришь: "Мы, программисты, пишем столь пиздатый код, что если мы опубликуем наш чудесный проект под GPLv2, то прославим контору на весь мир, тебе за твою мудрость сам СЕО выпишет тройную порцию бонусов, а конкуренты в страхе перед нашим всемогуществом разорятся!"
Тут правило такое, только помни, что если код - говно, то в реальности бонусы будут заменены пиздюлями, а конкуренты разорятся не в страхе, а в смехе.
А условия лицензирования либ либо слишком драконовские - "открывайте весь продукт, если используете либу", либо наоборот, слишком мягкие "делайте что хотите, можете зажилить результат, вам слова никто не скажет".
Да нет же таких утрированных лицензий!
Вот, начни ликвидировать безграмотность с такой картинки (картинка распространяется под CC-BY-SA 3.0)
поясняю еще разпрочти наконец LGPL
кстати, хотелось бы напомнить, что GPL/LGPL не обязывают тебя что-то возвращать какому-то там сообществу или первоначальным авторам, они обязывают вместе с бинарниками или выдавать исходник, либо гарантию/обещание того, что исходник будет по первому требованию. Поэтому для платных продуктов исходник ты обязан отдавать только тому, что твой продукт купил.
Поэтому для платных продуктов исходник ты обязан отдавать только тому, что твой продукт купил.Но при этом он уже имеет право раздавать его дальше совершенно свободно.
а в виде отдельного exe-шника?есть отдельные химеры с модифицированной GPL, которые и это запрещают. Например, nmap. Там явно указано, что использование бинарника в скриптах является derivative work.
Там явно указано, что использование бинарника в скриптах является derivative work.если быть точнее, то указано что если результаты как-либо парсятся (а не просто выводятся как есть то derivative work.
Is designed specifically to execute Nmap and parse the results (as opposed to typical shell or execution-menu apps, which will execute anything you tell them to).Кстати, строго говоря, они и не называют свою лицензию GPL; их лицензия называется "Nmap Public Source License" (и в её конце написано, что она основана на GPLv2)
http://nmap.org/npsl/npsl-annotated.html
у их лицензии ещё особенность была (не знаю, осталась ли сейчас) - явный запрет на распространение nmap компанией SCO
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=292419
Там явно указано, что использование бинарника в скриптах является derivative workПриводит ли это к необходимости раскрытия кода всех бинарников, используемых в скрипте, или же только к необходимости раскрытия кода скрипта?
я не разбирался, просто не хотелось на тот момент вносить в проект gpl-вирус... в итоге, правда, всё равно пришлось делать двойную лицензию (gpl/bsd т.к. под *nix использовалась libsmbclient, но используемую функциональность функциональность nmap-а заменили небольшим модулем на питоне.
а теперь представь, как я объясняю начальству, что надо бы открыть измененные исходники либы, потому что лицензия на либу не запрещает открывать исходники на нее.Позволю себе изложить свое понимание этих лицензий, которое у меня закрепилось однажды, когда я нашел в себе силы их почитать. Правда, тонкости разных версий я не знаю, поэтому могу ошибаться.
Итак, варианты:
1. Ты пишешь продукт, который используется в стенах работодателя и наружу не идет. Тогда ты можешь использовать любые GPL/LGPL библиотеки, а выкладывать их изменения только с разрешения работодателя.
2. Ты пишешь продукт, который вы продаете, и код которого не раскрываете. Тогда использовать GPL библиотеки нельзя совсем, а LGPL можно, если обеспечивается для пользователя возможность самостоятельного обновления этих библиотек и если ты их код ему прилагаешь или предоставляешь по первому требованию. В таком случае можно свободно выкладывать все свои LGPL обновления без согласия работодателя, т.к. код и так распространяется с программой, и его может купить любой желающий.
Вот, начни ликвидировать безграмотность с такой картинки (картинка распространяется под CC-BY-SA 3.0)А о каких судебных претензиях идет речь в этой картинке? Что-то не могу себе представить.
А о каких судебных претензиях идет речь в этой картинке? Что-то не могу себе представить.GPLv2 позволяет сделать такие хитрые штуки:
1. Я опубликовал код под GPL. Вася сделал производную от него работу, тоже выложил под GPL. Я подаю в суд на Васю, крича: «Агааа, этот гондон юзает мой патент!». Код свободен, но какая-то его часть покрыта патентом.
2. Есть такое явление — тивоизация, по имени компании TiVo, первой, заюзавшей эту идею. Мы публикуем исходники прошивки, скажем, плеера, приставки или мобилки под GPL. И запрещаем прошивать приставку/плеер/мобилку сторонними прошивками.
Мы публикуем исходники прошивки, скажем, плеера, приставки или мобилки под GPL. И запрещаем прошивать приставку/плеер/мобилку сторонними прошивками.А какая связь между этими двумя действиями? Нельзя запретить прошивать другой прошивкой без выкладывания своей? Или по одной из лицензий нельзя запрещать пользователям такие действия?
GPLv3 явно запрещает такие вещи, кроме как для особых девайсов типа мед.оборудования:
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
Оставить комментарий
elenangel
Просветите, пожалуйста, по таким вопросам:В каких случаях и на каких условиях можно использовать код под GNU GPL в проприетарных приложениях?
Что насчет LGPL?
Можно ли использовать какую-то библиотеку в виде исходного текста без модификации этого текста и не выделяя в виде отдельного dll или so если библиотека под GPL? под LGPL?
если я модифицирую, достаточно ли будет предоставить модифицированную либу или нужно раскрывать все приложение целиком?