GPLv3 и Go language
Модератор: Модераторы разделов
-
- Сообщения: 812
- ОС: Slackware64
GPLv3 и Go language
Доброго времени суток!
Собственно вопрос в официальном компиляторе Go. Как известно, в нем нет shared libs (только если через import "C"), а только static libs, т.е. при сборке программы код вставляется в программу. Скажем я использую библиотеку для ресайзинга изображений в моей программе под GPLv3. Эта библиотека "встраивается" в мою программу, и получается я сам-же нарушаю GPLv3?
Решил от греха подальше использовать LGPLv3, или в нем тоже нельзя использовать static libs?
P.S. Предложения использовать BSD, MIT, Apache и т.д. не нужны, не утруждайте себя.
Собственно вопрос в официальном компиляторе Go. Как известно, в нем нет shared libs (только если через import "C"), а только static libs, т.е. при сборке программы код вставляется в программу. Скажем я использую библиотеку для ресайзинга изображений в моей программе под GPLv3. Эта библиотека "встраивается" в мою программу, и получается я сам-же нарушаю GPLv3?
Решил от греха подальше использовать LGPLv3, или в нем тоже нельзя использовать static libs?
P.S. Предложения использовать BSD, MIT, Apache и т.д. не нужны, не утруждайте себя.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Кто на ком стоял? ©
Библиотека под GPL или программа под GPL? И если одно под GPL, то какова лицензия другого?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 78
- ОС: Calculate 13.04
Re: GPLv3 и Go language
Это смотря в какой сфере вы примените свою программу, в коммерческой или публично доступной. Вообще это является спорным вопросом. Я бы сказал это своего рода гибрид, который совмещает две стороны. Для коммерческих целей я бы всётаки её не использовал. Кто знает в какую сторону склонится судья если будет судебный иск.
Многие говорят что трудно жить по высшему закону. А спать трудно? А пробуждаться?
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
По какому поводу иск? В худшем случае, если лицензия библиотеки несовместима с GPL, под которой распространяется вся программа, означает, что получатель не имеет никаких прав на код (поскольку условия лицензий противоречат друг другу). Разработчику это ничем не грозит - если, конечно, у него нет других договорённостей с получателем.
Вообще же GPLv3 не делает никаких различий между статической и динамической линковкой, если вопрос заключался в этом.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 812
- ОС: Slackware64
Re: GPLv3 и Go language
Bizdelnick писал(а): ↑19.05.2013 19:24
Кто на ком стоял? ©
Библиотека под GPL или программа под GPL? И если одно под GPL, то какова лицензия другого?
Есть моя библиотека под LGPLv3, которая использует библиотеку под какой-то MIT, есть моя прога под GPLv3, которая использует эту либу и мою либу.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Наиболее ограничительной из них является GPLv3, с другими она не конфликтует. Не вижу проблемы.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: GPLv3 и Go language
В случае LGPL при статической линковке должна быть возможность получить объектные и заголовочные файлы, которые использовались при компиляции. Также, в случае, если код программы мал по сравнению в LGPL библиотекой, то является спорным вопрос о том, является ли это программа со статической линковкой (предоставить объектные файлы), или модификация LGPL продукта (необходимо раскрыть код). По причине последнего Qt не рекомендуют статическую линковку.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Вообще-то в Go, насколько мне известно, нет заголовочных файлов, и объектные файлы заранее не компилируются.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: GPLv3 и Go language
Ну, а package собрать отдельно можно? Без полной компиляции. Как архивы (.a файлы)?
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Видимо, да. Не хочу спорить, не настолько хорошо знаком с Go.
Но: 1) требование включения объектных файлов есть в LGPLv2.1, но я его что-то не вижу в LGPLv3, 2) если ТС является правообладателем библиотеки, то он имеет полное право использовать её на условиях, отличных от LGPL.
Но: 1) требование включения объектных файлов есть в LGPLv2.1, но я его что-то не вижу в LGPLv3, 2) если ТС является правообладателем библиотеки, то он имеет полное право использовать её на условиях, отличных от LGPL.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: GPLv3 и Go language
Bizdelnick писал(а): ↑20.05.2013 00:561) требование включения объектных файлов есть в 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:562) если ТС является правообладателем библиотеки, то он имеет полное право использовать её на условиях, отличных от LGPL.
ТС не расписал всё. А так, в принципе, можно и с GPLv3 линковаться, если выпустить программу с лицензией GPLv3 и исходники не открывать на всеобщий доступ. Там ведь можно предоставить исходники по требованию только пользователю программы (как RedHat делает). В таком случае, если пользователь программы не заинтересован в распространении кода, то ничего и не распространится.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Действительно, плохо искал.
NickLion писал(а): ↑20.05.2013 09:45А так, в принципе, можно и с GPLv3 линковаться, если выпустить программу с лицензией GPLv3 и исходники не открывать на всеобщий доступ. Там ведь можно предоставить исходники по требованию только пользователю программы (как RedHat делает). В таком случае, если пользователь программы не заинтересован в распространении кода, то ничего и не распространится.
Я немного о другом. Если ТС распространяет свою библиотеку на условиях LGPL, это вовсе не значит, что он сам не может использовать эту библиотеку как ему вздумается.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 812
- ОС: Slackware64
Re: GPLv3 и Go language
Можно (если напрямую использовать 8g/6g), собственно стандартные библиотеки и библиотеки установленные через go get/install собираются и упаковываются в .a.
Короче, из всего вышесказанного я понял следующее:
- GPLv3/LGPLv3 не различает static и shared линковку? Тогда вопрос в том, как отличить static линковку и использование чужого кода в проекте?
- GPLv3 разрешает линковку с пропритарными блобами, только если они часть OS/компилятора?
- Исходя из первого пункта, я могу использовать в своем GPLv3/LGPLv3 проекте static линковку с MIT библиотекой?
А вообще, что-то я парюсь слишком сильно, FSF сказала-же, что лицензии MIT (по крайней мере Expat/X11) совместимы с GPL.
В принципе, можно от греха подальше LGPL все-таки использовать.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Линковка и есть использование чужого кода.
Как различить линковку и создание производного продукта - не вполне понятно, но и не так уж важно, поскольку MIT не запрещает выпускать производные продукты под GPL/LGPL.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 812
- ОС: Slackware64
Re: GPLv3 и Go language
Ключевое слово было "в проекте", "в" в смысле "В", а не рядом. Т.е. грубо говоря, взяли кусок кода и скопировали его к себе.
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
А что, есть разница? Код используется не "в" и не "рядом", а исключительно "для".
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: GPLv3 и Go language
В таком случае может быть затруднено выполнение условия о возможности перекомпиляции. Если используете другую лицензию с открытым кодом, то легко. А с закрытыми исходниками — только если в отдельном файле (это будет та же самая статическая линковка).
-
- Сообщения: 812
- ОС: Slackware64
Re: GPLv3 и Go language
Дык если в GPLv3 про статическую линковку даже упоминания нет, как они могут её запрещать в проприетарном проекте?
-
- Модератор
- Сообщения: 20939
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GPLv3 и Go language
Слинкованная (не важно, статически или динамически) с библиотекой программа является комбинированным произведением. Про них в GPLv3 написано не так уж мало.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |