Перейти к содержимому


Фотография
- - - - -

GPL v.2 и коммерческое ПО


Сообщений в теме: 38

#1 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 17:40

Добрый день.
FAQ по свободному ПО изучил, но там не рассматривается момент, который меня смыщает.
Итак, есть программа под Линукс, которая состоит из модулей, их 3 типа: 1) модуль из собственного кода 2) модуль кусков кода GPL 3) смешанный код.
Все модули, в которых есть код по GPL должны распространятся также по лицензии GPL. Модули со своим кодом - могу распространять по своим условиям лицензирования.

Это общее, а вот частность, которая меня мучает: является ли обращение сторонней программы к функциям ядра Линукс использованием ПО? и соответственно, должны ли программы, обращающиеся к функциям ядра Линукс, но не содержащие кода GPL также распространятся под GPL?
  • 0

#2 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 17:51

является ли обращение сторонней программы к функциям ядра Линукс использованием ПО?

здесь именно использование ПО, а не использование кода.
GPL разрешает другим приложениям линковаться с ним (пример - Opera для Linux. Opera распространяется под своей лицензией, и использует компоненты под GPL разных версий)

и соответственно, должны ли программы, обращающиеся к функциям ядра Линукс, но не содержащие кода GPL также распространятся под GPL?

нет, не должны.

более того, в код самого ядра (я про архивчик в tar.bz на kernel.org) уже и без того включены модули, не распространяющиеся по GPL - бинарные модули, предоставляемые вендорами ПО без исходного кода.
  • 0

#3 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 18:03

является ли обращение сторонней программы к функциям ядра Линукс использованием ПО?

если для вызова используются GPL библиотеки, то есть такая вероятность. :laugh:
  • 0

#4 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 18:27

(пример - Opera для Linux. Opera распространяется под своей лицензией, и использует компоненты под GPL разных версий)

а не LGPL?

В остальном я склонялся к такому же выводу, спасибо.

если для вызова используются GPL библиотеки, то есть такая вероятность.

Вы имеете ввиду, что свой код обращается к библиотекам под GPL, а они уже к ядру? нет, к счастью не такая схема =)
  • 0

#5 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 18:40

а не LGPL?

и LGPL в том числе, но и под GPL есть (либо Glib, либо Hunspell, не помню точно)

а что за ПО, если не секрет?
  • 0

#6 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 18:57


а не LGPL?

а что за ПО, если не секрет?

к сожалению, не могу ответить. сам не знаю )
  • 0

#7 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 07 September 2011 - 21:22

Вы имеете ввиду, что свой код обращается к библиотекам под GPL, а они уже к ядру?

примерно, это имеется в виду:
Изображение
и это тоже:
http://www.ibm.com/d...lls/figure1.gif
в данном случае, желательно разделять объектный и исходный коды.
понятно, что исходный код ни к чему не обращается, а как линкуются объектные модули, я с трудом себе представляю :)
на самом деле, на форумах продвинутых линуксоидов можно получить более разумные ответы.
  • 0

#8 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 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

  • 0

#9 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 12:52

Использование открытых библиотек при работе собственных модулей приравнивает получившуюся сборку к понятию "work, based on the Program"?
я сейчас уже про окончательное скомпилированное (слинкованное) ПО. С исходным кодом, в принципе все ясно.

Сообщение отредактировал don_san40: 08 September 2011 - 12:52

  • 0

#10 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 13:01

Использование открытых библиотек при работе собственных модулей приравнивает получившуюся сборку к понятию "work, based on the Program"?

насколько я понимаю, нет.

"work, based on the Program" - это лишь в случае заимствования source кода из одной программки в другую. например, форк проекта.
  • 0

#11 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 13:16

насколько я понимаю, нет.

"work, based on the Program" - это лишь в случае заимствования source кода из одной программки в другую. например, форк проекта.

про использование source кода - сомнений нет.
меня смутило^

если для вызова используются GPL библиотеки, то есть такая вероятность.


  • 0

#12 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 14:22

don_san40, так то про использование произведения в соотв. с нормами ГК, что означало бы, если БЫ программы (библиотеки/модули/скрипты) были не под GPL v*, что Вам для этого использования нужно иметь лицензионный договор или договор об отчуждении искл. права в отношении используемого ПО.

но, поскольку Вы собираетесь использовать (т.е. Ваша / не Ваша программка собирается обращаться к ядерным утилитам и стандартным библиотекам GNU) софт, который находится на условиях чудесной лицензии GPL v*, то никаких договоров не нужно.
  • 0

#13 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 14:26

Использование открытых библиотек при работе собственных модулей

работа модулей охраняется патентным правом (если охраняется).
авторским правом охраняется текстовка модулей :laugh:
  • 0

#14 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 14:28

работа модулей охраняется патентным правом (если охраняется)

мы вроде про наше законодательство говорим, разве нет?
  • 0

#15 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 14:35

pick.dmask, а в чем проблема?
"способ управления универсальным электронным устройством", и все дела :laugh:
понимание второй части моего камента - гораздо важнее.

то есть, реализация обращения, в процессе работы устройства, не относится к копирайтам.
зато внедрение стандартных библиотек в свой код, даже если к ним не производится обращение - есть повод задуматься об АП.
  • 0

#16 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 14:50

"способ управления универсальным электронным устройством", и все дела :laugh:

и что, прокатывает такое? и в случае, если недовольные этим заинтересованные лица появляются - тоже? :)

зато внедрение стандартных библиотек в свой код, даже если к ним не производится обращение - есть повод задуматься об АП.

это само собой :)
но по мне - проще решить динамической линковкой (так и правильнее), чем вставлять в код уже имеющиеся на целевой платформе библиотеки.
если, конечно, нет особой нужды.
  • 0

#17 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 08 September 2011 - 15:12

и что, прокатывает такое? и в случае, если недовольные этим заинтересованные лица появляются - тоже?

недовольных патентами в россии почти не наблюдается. а так, да. патентов на почти чистый софт выдано много.

проще решить динамической линковкой

вероятно, эта фича для линукса и имеет цель удовлетворить все потребности людей, так или иначе озабоченных авторским правом. :laugh:
  • 0

#18 don_san40

don_san40
  • ЮрКлубовец-кандидат
  • 23 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 00:26

Странно, но меня разработчики пытаются убедить, что "все что динамически связывается с ядром также должно распространятся по GPL" (цы). Лицензию в оригинале изучил вдоль и поперек, речь там только про использование кода, единственный мутный момент: "The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program)"
я перевожу как: если выходные данные программы содержат код(распространяемый под GPL), то эта программа попадает под действие GPL. но внятно понять данный пассаж у меня не получается.

Упоминание динамического взаимодействия ядра и модулей происходит только в GPLv3, и там уже взаимодействие влечет лицензирование по GPLv3.

но самое интересное, что некто из конкурирующей иностранной конторы прислал запрос, смысл которого сводится к "дайте нам ваш код посмотреть, потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"

ЗЫ: есть в питере семинары по открытому ПО и его лицензированию? :shuffle:
  • 0

#19 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 02:11

don_san40, ну пусть стоят на своём :)
по теме всё уже сказано, что можно было)

"дайте нам ваш код посмотреть, потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"

ну раз им юридические объяснения не помогают, объясните по аналогии: почему в Debian libre-ядро используют? потому что Debian строго относится к "свободе" ПО.

в чём отличие vanilla-kernel от libre-kernel? в том, что исключены бинарные и/или проприетарные прошивки. что недвусмысленно говорит о том, что в ядре Linux таки уже есть бинарные компоненты, исходный код к которым не предоставляется.
пусть сами грепнут (man grep) сорсы ядра (обычно /usr/src/linux/) и потребуют у всяких там поставщиков бинарных модулей исходный код! а то ишь тут, устроили! :laugh:
  • 0

#20 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 14:24

"все что динамически связывается с ядром также должно распространятся по GPL"

как я понимаю, динамическую связь объектов осуществляет пользователь.

потому что он взаимодействует с ядром на уровне kernel space, а все что там взаимодействует должно быть открытым"

даже если и так, можно написать открытый интерфейс к закрытой части.
кстати, моторола ставила на телефоны прошивки на ядре линукс.
если найдете - можете изучить их лицензию.
  • 0

#21 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 14:41

как я понимаю, динамическую связь объектов осуществляет пользователь.

что Вы имеете в виду под "осуществляет пользователь"? какие именно действия, по-Вашему, являются этим самым "осуществлением динамической связи"?
  • 0

#22 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 15:07

что Вы имеете в виду под "осуществляет пользователь"? какие именно действия, по-Вашему, являются этим самым "осуществлением динамической связи"?


в видовз - запуск экзешника, который обращается к динамическим библиотекам и прочей лабуде))
я, как пользователь, могу подключить к экзешнику любую доступную совместимую библиотеку. вид лицензии экзешника и библиотеки, от этого не меняется.
  • 0

#23 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 15:16

werefish , "Вы можете подключить любую доступную совместимую библиотеку" - это очень сильно преувеличено :)
динамическая линковка означает, что программа затребует определённую версию определённой библиотеки, иначе откажется запускаться.
тут по сути пользователь-то ничего и не решает.


в некоторых случаях для Windows программа сама устанавливает нужные либы себе в папку. со временем, в системе из-за таких художеств может появиться множество копий одной DLL с незначительными отличиями, или просто разных версий. это называется DLL-Hell (конечно, это не единственная причина, но одна из. да и всё же неприятно, когда "Shared Libraries" в действительности ни разу не "Shared")

Сообщение отредактировал pick.dmask: 09 September 2011 - 15:18

  • 0

#24 werefish

werefish
  • Старожил
  • 2117 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 15:34

это очень сильно преувеличено

счастливые обладатели навигаторов с WinCE этим занимаются довольно часто. :laugh:  
еще раз, я в линуксе не силен, но по результатам дискуссии стал понимать, почему линуксоиды часто рапространяют не исполняемый код, а исходный. :laugh:
  • 0

#25 pick.d

pick.d
  • продвинутый
  • 471 сообщений
Обратиться Публикации

Отправлено 09 September 2011 - 16:13

почему линуксоиды часто рапространяют не исполняемый код, а исходный. :laugh:


распространяется в исходном потому, что дистрибутивов много :)
даже "основных", самых популярных - больше 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 и не планируется, зачем он мне в системе?

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


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных