GPLv3 и Go language

Обсуждение развития Open-source.

Модератор: Модераторы разделов

Ответить
BratSinot
Сообщения: 812
ОС: Slackware64

GPLv3 и Go language

Сообщение BratSinot »

Доброго времени суток!

Собственно вопрос в официальном компиляторе Go. Как известно, в нем нет shared libs (только если через import "C"), а только static libs, т.е. при сборке программы код вставляется в программу. Скажем я использую библиотеку для ресайзинга изображений в моей программе под GPLv3. Эта библиотека "встраивается" в мою программу, и получается я сам-же нарушаю GPLv3?
Решил от греха подальше использовать LGPLv3, или в нем тоже нельзя использовать static libs?
P.S. Предложения использовать BSD, MIT, Apache и т.д. не нужны, не утруждайте себя.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

BratSinot писал(а):
19.05.2013 15:39
Скажем я использую библиотеку для ресайзинга изображений в моей программе под GPLv3.

Кто на ком стоял? ©
Библиотека под GPL или программа под GPL? И если одно под GPL, то какова лицензия другого?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
seisros
Сообщения: 78
ОС: Calculate 13.04

Re: GPLv3 и Go language

Сообщение seisros »

Это смотря в какой сфере вы примените свою программу, в коммерческой или публично доступной. Вообще это является спорным вопросом. Я бы сказал это своего рода гибрид, который совмещает две стороны. Для коммерческих целей я бы всётаки её не использовал. Кто знает в какую сторону склонится судья если будет судебный иск.
Многие говорят что трудно жить по высшему закону. А спать трудно? А пробуждаться?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

seisros писал(а):
19.05.2013 19:43
Кто знает в какую сторону склонится судья если будет судебный иск.

По какому поводу иск? В худшем случае, если лицензия библиотеки несовместима с GPL, под которой распространяется вся программа, означает, что получатель не имеет никаких прав на код (поскольку условия лицензий противоречат друг другу). Разработчику это ничем не грозит - если, конечно, у него нет других договорённостей с получателем.

Вообще же GPLv3 не делает никаких различий между статической и динамической линковкой, если вопрос заключался в этом.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GPLv3 и Go language

Сообщение BratSinot »

Bizdelnick писал(а):
19.05.2013 19:24
BratSinot писал(а):
19.05.2013 15:39
Скажем я использую библиотеку для ресайзинга изображений в моей программе под GPLv3.

Кто на ком стоял? ©
Библиотека под GPL или программа под GPL? И если одно под GPL, то какова лицензия другого?

Есть моя библиотека под LGPLv3, которая использует библиотеку под какой-то MIT, есть моя прога под GPLv3, которая использует эту либу и мою либу.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

BratSinot писал(а):
19.05.2013 20:25
Есть моя библиотека под LGPLv3, которая использует библиотеку под какой-то MIT, есть моя прога под GPLv3, которая использует эту либу и мою либу.

Наиболее ограничительной из них является GPLv3, с другими она не конфликтует. Не вижу проблемы.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: GPLv3 и Go language

Сообщение NickLion »

В случае LGPL при статической линковке должна быть возможность получить объектные и заголовочные файлы, которые использовались при компиляции. Также, в случае, если код программы мал по сравнению в LGPL библиотекой, то является спорным вопрос о том, является ли это программа со статической линковкой (предоставить объектные файлы), или модификация LGPL продукта (необходимо раскрыть код). По причине последнего Qt не рекомендуют статическую линковку.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

NickLion писал(а):
19.05.2013 20:52
В случае LGPL при статической линковке должна быть возможность получить объектные и заголовочные файлы, которые использовались при компиляции.

Вообще-то в Go, насколько мне известно, нет заголовочных файлов, и объектные файлы заранее не компилируются.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: GPLv3 и Go language

Сообщение NickLion »

Ну, а package собрать отдельно можно? Без полной компиляции. Как архивы (.a файлы)?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

Видимо, да. Не хочу спорить, не настолько хорошо знаком с Go.
Но: 1) требование включения объектных файлов есть в LGPLv2.1, но я его что-то не вижу в LGPLv3, 2) если ТС является правообладателем библиотеки, то он имеет полное право использовать её на условиях, отличных от LGPL.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: GPLv3 и Go language

Сообщение NickLion »

Bizdelnick писал(а):
20.05.2013 00:56
1) требование включения объектных файлов есть в LGPLv2.1, но я его что-то не вижу в LGPLv3

Пункт 4.d.0:
permit, the user to recombine or relink the Application with a modified version of the Linked Version


Bizdelnick писал(а):
20.05.2013 00:56
2) если ТС является правообладателем библиотеки, то он имеет полное право использовать её на условиях, отличных от LGPL.

ТС не расписал всё. А так, в принципе, можно и с GPLv3 линковаться, если выпустить программу с лицензией GPLv3 и исходники не открывать на всеобщий доступ. Там ведь можно предоставить исходники по требованию только пользователю программы (как RedHat делает). В таком случае, если пользователь программы не заинтересован в распространении кода, то ничего и не распространится.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

NickLion писал(а):
20.05.2013 09:45
Пункт 4.d.0:

Действительно, плохо искал.

NickLion писал(а):
20.05.2013 09:45
А так, в принципе, можно и с GPLv3 линковаться, если выпустить программу с лицензией GPLv3 и исходники не открывать на всеобщий доступ. Там ведь можно предоставить исходники по требованию только пользователю программы (как RedHat делает). В таком случае, если пользователь программы не заинтересован в распространении кода, то ничего и не распространится.

Я немного о другом. Если ТС распространяет свою библиотеку на условиях LGPL, это вовсе не значит, что он сам не может использовать эту библиотеку как ему вздумается.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GPLv3 и Go language

Сообщение BratSinot »

NickLion писал(а):
20.05.2013 00:09
Ну, а package собрать отдельно можно? Без полной компиляции. Как архивы (.a файлы)?


Можно (если напрямую использовать 8g/6g), собственно стандартные библиотеки и библиотеки установленные через go get/install собираются и упаковываются в .a.

Короче, из всего вышесказанного я понял следующее:
  • GPLv3/LGPLv3 не различает static и shared линковку? Тогда вопрос в том, как отличить static линковку и использование чужого кода в проекте?
  • GPLv3 разрешает линковку с пропритарными блобами, только если они часть OS/компилятора?
  • Исходя из первого пункта, я могу использовать в своем GPLv3/LGPLv3 проекте static линковку с MIT библиотекой?

А вообще, что-то я парюсь слишком сильно, FSF сказала-же, что лицензии MIT (по крайней мере Expat/X11) совместимы с GPL.
В принципе, можно от греха подальше LGPL все-таки использовать.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

BratSinot писал(а):
20.05.2013 17:24
как отличить static линковку и использование чужого кода в проекте?

Линковка и есть использование чужого кода.
Как различить линковку и создание производного продукта - не вполне понятно, но и не так уж важно, поскольку MIT не запрещает выпускать производные продукты под GPL/LGPL.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GPLv3 и Go language

Сообщение BratSinot »

Bizdelnick писал(а):
20.05.2013 18:00
BratSinot писал(а):
20.05.2013 17:24
как отличить static линковку и использование чужого кода в проекте?

Линковка и есть использование чужого кода.

Ключевое слово было "в проекте", "в" в смысле "В", а не рядом. Т.е. грубо говоря, взяли кусок кода и скопировали его к себе.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

А что, есть разница? Код используется не "в" и не "рядом", а исключительно "для".
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: GPLv3 и Go language

Сообщение NickLion »

BratSinot писал(а):
21.05.2013 22:35
Ключевое слово было "в проекте", "в" в смысле "В", а не рядом. Т.е. грубо говоря, взяли кусок кода и скопировали его к себе.

В таком случае может быть затруднено выполнение условия о возможности перекомпиляции. Если используете другую лицензию с открытым кодом, то легко. А с закрытыми исходниками — только если в отдельном файле (это будет та же самая статическая линковка).
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GPLv3 и Go language

Сообщение BratSinot »

NickLion писал(а):
22.05.2013 00:02
BratSinot писал(а):
21.05.2013 22:35
Ключевое слово было "в проекте", "в" в смысле "В", а не рядом. Т.е. грубо говоря, взяли кусок кода и скопировали его к себе.

В таком случае может быть затруднено выполнение условия о возможности перекомпиляции. Если используете другую лицензию с открытым кодом, то легко. А с закрытыми исходниками — только если в отдельном файле (это будет та же самая статическая линковка).

Дык если в GPLv3 про статическую линковку даже упоминания нет, как они могут её запрещать в проприетарном проекте?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GPLv3 и Go language

Сообщение Bizdelnick »

BratSinot писал(а):
22.05.2013 09:20
Дык если в GPLv3 про статическую линковку даже упоминания нет, как они могут её запрещать в проприетарном проекте?

Слинкованная (не важно, статически или динамически) с библиотекой программа является комбинированным произведением. Про них в GPLv3 написано не так уж мало.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить