|
|
||
|
|
||
GPL v.2 и коммерческое ПО
#1
Отправлено 07 September 2011 - 17:40
FAQ по свободному ПО изучил, но там не рассматривается момент, который меня смыщает.
Итак, есть программа под Линукс, которая состоит из модулей, их 3 типа: 1) модуль из собственного кода 2) модуль кусков кода GPL 3) смешанный код.
Все модули, в которых есть код по GPL должны распространятся также по лицензии GPL. Модули со своим кодом - могу распространять по своим условиям лицензирования.
Это общее, а вот частность, которая меня мучает: является ли обращение сторонней программы к функциям ядра Линукс использованием ПО? и соответственно, должны ли программы, обращающиеся к функциям ядра Линукс, но не содержащие кода GPL также распространятся под GPL?
#2
Отправлено 07 September 2011 - 17:51
здесь именно использование ПО, а не использование кода.является ли обращение сторонней программы к функциям ядра Линукс использованием ПО?
GPL разрешает другим приложениям линковаться с ним (пример - Opera для Linux. Opera распространяется под своей лицензией, и использует компоненты под GPL разных версий)
нет, не должны.и соответственно, должны ли программы, обращающиеся к функциям ядра Линукс, но не содержащие кода GPL также распространятся под GPL?
более того, в код самого ядра (я про архивчик в tar.bz на kernel.org) уже и без того включены модули, не распространяющиеся по GPL - бинарные модули, предоставляемые вендорами ПО без исходного кода.
#3
Отправлено 07 September 2011 - 18:03
если для вызова используются GPL библиотеки, то есть такая вероятность.является ли обращение сторонней программы к функциям ядра Линукс использованием ПО?
#4
Отправлено 07 September 2011 - 18:27
а не LGPL?(пример - Opera для Linux. Opera распространяется под своей лицензией, и использует компоненты под GPL разных версий)
В остальном я склонялся к такому же выводу, спасибо.
Вы имеете ввиду, что свой код обращается к библиотекам под GPL, а они уже к ядру? нет, к счастью не такая схема =)если для вызова используются GPL библиотеки, то есть такая вероятность.
#5
Отправлено 07 September 2011 - 18:40
и LGPL в том числе, но и под GPL есть (либо Glib, либо Hunspell, не помню точно)а не LGPL?
а что за ПО, если не секрет?
#6
Отправлено 07 September 2011 - 18:57
к сожалению, не могу ответить. сам не знаю )а что за ПО, если не секрет?
а не LGPL?
#7
Отправлено 07 September 2011 - 21:22
примерно, это имеется в виду:Вы имеете ввиду, что свой код обращается к библиотекам под GPL, а они уже к ядру?

и это тоже:
http://www.ibm.com/d...lls/figure1.gif
в данном случае, желательно разделять объектный и исходный коды.
понятно, что исходный код ни к чему не обращается, а как линкуются объектные модули, я с трудом себе представляю
на самом деле, на форумах продвинутых линуксоидов можно получить более разумные ответы.
#8
Отправлено 07 September 2011 - 21:34
это же очевиднов данном случае, желательно разделять объектный и исходный коды.
скорее всего, ответят в духе "man ld" :-Dкак линкуются объектные модули, я с трудом себе представляю
на самом деле, на форумах продвинутых линуксоидов можно получить более разумные ответы.
ld - это стандартный линковщик окружения GNU.
вот кусочек из мана (остальное ключи, примеры и пояснения к ним):
ld combines a number of object and archive files, relocates their data and ties up symbol references. Usually the last step in compiling a program is to run ld.
ld accepts Linker Command Language files written in a superset of AT&T's Link Editor Command Language syntax, to provide explicit and total control over the linking process.
This version of ld uses the general purpose BFD libraries to operate on object files. This allows ld to read, combine, and write object files in many different formats---for example, COFF or "a.out". Different formats may be linked together to produce any available kind of object file.
Aside from its flexibility, the GNU linker is more helpful than other linkers in providing diagnostic information.Many linkers abandon execution immediately upon encountering an error; whenever possible, ld continues executing,
allowing you to identify other errors (or, in some cases, to get an output file in spite of the error).
The GNU linker ld is meant to cover a broad range of situations, and to be as compatible as possible with other linkers. As a result, you have many choices to control its behavior.
Сообщение отредактировал pick.dmask: 07 September 2011 - 21:35
#9
Отправлено 08 September 2011 - 12:52
я сейчас уже про окончательное скомпилированное (слинкованное) ПО. С исходным кодом, в принципе все ясно.
Сообщение отредактировал don_san40: 08 September 2011 - 12:52
#10
Отправлено 08 September 2011 - 13:01
насколько я понимаю, нет.Использование открытых библиотек при работе собственных модулей приравнивает получившуюся сборку к понятию "work, based on the Program"?
"work, based on the Program" - это лишь в случае заимствования source кода из одной программки в другую. например, форк проекта.
#11
Отправлено 08 September 2011 - 13:16
про использование source кода - сомнений нет.насколько я понимаю, нет.
"work, based on the Program" - это лишь в случае заимствования source кода из одной программки в другую. например, форк проекта.
меня смутило^
если для вызова используются GPL библиотеки, то есть такая вероятность.
#12
Отправлено 08 September 2011 - 14:22
но, поскольку Вы собираетесь использовать (т.е. Ваша / не Ваша программка собирается обращаться к ядерным утилитам и стандартным библиотекам GNU) софт, который находится на условиях чудесной лицензии GPL v*, то никаких договоров не нужно.
#13
Отправлено 08 September 2011 - 14:26
работа модулей охраняется патентным правом (если охраняется).Использование открытых библиотек при работе собственных модулей
авторским правом охраняется текстовка модулей
#14
Отправлено 08 September 2011 - 14:28
мы вроде про наше законодательство говорим, разве нет?работа модулей охраняется патентным правом (если охраняется)
#15
Отправлено 08 September 2011 - 14:35
"способ управления универсальным электронным устройством", и все дела
понимание второй части моего камента - гораздо важнее.
то есть, реализация обращения, в процессе работы устройства, не относится к копирайтам.
зато внедрение стандартных библиотек в свой код, даже если к ним не производится обращение - есть повод задуматься об АП.
#16
Отправлено 08 September 2011 - 14:50
и что, прокатывает такое? и в случае, если недовольные этим заинтересованные лица появляются - тоже?"способ управления универсальным электронным устройством", и все дела
![]()
это само собойзато внедрение стандартных библиотек в свой код, даже если к ним не производится обращение - есть повод задуматься об АП.
но по мне - проще решить динамической линковкой (так и правильнее), чем вставлять в код уже имеющиеся на целевой платформе библиотеки.
если, конечно, нет особой нужды.
#17
Отправлено 08 September 2011 - 15:12
недовольных патентами в россии почти не наблюдается. а так, да. патентов на почти чистый софт выдано много.и что, прокатывает такое? и в случае, если недовольные этим заинтересованные лица появляются - тоже?
вероятно, эта фича для линукса и имеет цель удовлетворить все потребности людей, так или иначе озабоченных авторским правом.проще решить динамической линковкой
#18
Отправлено 09 September 2011 - 00:26
я перевожу как: если выходные данные программы содержат код(распространяемый под GPL), то эта программа попадает под действие GPL. но внятно понять данный пассаж у меня не получается.
Упоминание динамического взаимодействия ядра и модулей происходит только в GPLv3, и там уже взаимодействие влечет лицензирование по GPLv3.
но самое интересное, что некто из конкурирующей иностранной конторы прислал запрос, смысл которого сводится к "дайте нам ваш код посмотреть, потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"
ЗЫ: есть в питере семинары по открытому ПО и его лицензированию?
#19
Отправлено 09 September 2011 - 02:11
по теме всё уже сказано, что можно было)
ну раз им юридические объяснения не помогают, объясните по аналогии: почему в Debian libre-ядро используют? потому что Debian строго относится к "свободе" ПО."дайте нам ваш код посмотреть, потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"
в чём отличие vanilla-kernel от libre-kernel? в том, что исключены бинарные и/или проприетарные прошивки. что недвусмысленно говорит о том, что в ядре Linux таки уже есть бинарные компоненты, исходный код к которым не предоставляется.
пусть сами грепнут (man grep) сорсы ядра (обычно /usr/src/linux/) и потребуют у всяких там поставщиков бинарных модулей исходный код! а то ишь тут, устроили!
#20
Отправлено 09 September 2011 - 14:24
как я понимаю, динамическую связь объектов осуществляет пользователь."все что динамически связывается с ядром также должно распространятся по GPL"
даже если и так, можно написать открытый интерфейс к закрытой части.потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"
кстати, моторола ставила на телефоны прошивки на ядре линукс.
если найдете - можете изучить их лицензию.
#21
Отправлено 09 September 2011 - 14:41
что Вы имеете в виду под "осуществляет пользователь"? какие именно действия, по-Вашему, являются этим самым "осуществлением динамической связи"?как я понимаю, динамическую связь объектов осуществляет пользователь.
#22
Отправлено 09 September 2011 - 15:07
что Вы имеете в виду под "осуществляет пользователь"? какие именно действия, по-Вашему, являются этим самым "осуществлением динамической связи"?
в видовз - запуск экзешника, который обращается к динамическим библиотекам и прочей лабуде))
я, как пользователь, могу подключить к экзешнику любую доступную совместимую библиотеку. вид лицензии экзешника и библиотеки, от этого не меняется.
#23
Отправлено 09 September 2011 - 15:16
динамическая линковка означает, что программа затребует определённую версию определённой библиотеки, иначе откажется запускаться.
тут по сути пользователь-то ничего и не решает.
в некоторых случаях для Windows программа сама устанавливает нужные либы себе в папку. со временем, в системе из-за таких художеств может появиться множество копий одной DLL с незначительными отличиями, или просто разных версий. это называется DLL-Hell (конечно, это не единственная причина, но одна из. да и всё же неприятно, когда "Shared Libraries" в действительности ни разу не "Shared")
Сообщение отредактировал pick.dmask: 09 September 2011 - 15:18
#24
Отправлено 09 September 2011 - 15:34
счастливые обладатели навигаторов с WinCE этим занимаются довольно часто.это очень сильно преувеличено
еще раз, я в линуксе не силен, но по результатам дискуссии стал понимать, почему линуксоиды часто рапространяют не исполняемый код, а исходный.
#25
Отправлено 09 September 2011 - 16:13
почему линуксоиды часто рапространяют не исполняемый код, а исходный.
![]()
распространяется в исходном потому, что дистрибутивов много
даже "основных", самых популярных - больше 10-ка.
для Ubuntu и Debian - надо собрать Deb-пакет, для ArchLinux - pkg.tar.*z для RedHat и основанных на нём, Novell SuSE (SLED, SLES), openSUSE, Mandriva - надо RPM-пакет, причём не факт, что один RPM от семейства RedHat заработает без проблем в Mandriva-подобных.
хотя, конечно, пакеты конвертируемы. например, у меня в системе офис из RPM переделывается в родной формат за пару минут (а компилять офис - это нужно несколько часов, увольте
поэтому, чтобы разработчики софта не мучались этим, они выкладывают код. а уже мэйнтейнеры дистрибутивов собирают из этого кода для своих дистрибутивов пакеты.
если же код закрыт (например, Opera или драйверы Nvidia), то производитель выкладывает run-файл или уже собранный RPM и/или DEB пакет.
а те, кому они не подходят, могут пакет просто перепаковать в родной формат - это не перекомпиляция, а просто перекладываются исполняемые бинарники и меняются некоторые специфичные файлы.
исходный код же чем ещё хорош, что позволяет оптимизировать себя.
например, я как-то на одном приложении просто ради проверки выжал 25% производительности плюсом. только указал в опциях сборки свой процессор и агрессивную оптимизацию.
не везде, но на многих приложениях эффект будет заметен. особенно, на самом новом железе - там оптимизировать можно очень хорошо. всего-то нужно поправить 1 файлик и запустить процесс пересборки всего. к утру машина будет оптимизирована вся.
кроме того, можно флагами отключать ненужные вещи в программе. например, если у меня нет FireWire и не планируется, зачем он мне в системе?
иными словами, бинарник - взял и запустил, или, если код не предоставляется.
а исходный код - это оптимизация под машину, и косвенная гарантия, что в коде ничего шпионского нет (иначе бы вряд ли открыли,т.к. вероятность обнаружения резко бы возрасла).
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных


