.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core.
Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ?
Как решается эта проблема у вас ?
Здравствуйте, _NN_, Вы писали:
_NN>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? _NN>Как решается эта проблема у вас ?
Разве LGPL запрещает использовать LGPL-зависимости в не LGPL?
SuperHost в NET 5.0 это же просто другой способ загрузки исполняемых бинарников, не требующий отдельного временного файла при запуске для каждого бинарника в зависимостях. Ты просто распространяеш бинарник под LGPL лицензией, это не запрещено.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, _NN_, Вы писали:
_NN>>Как решается эта проблема у вас ?
НС>Не использовать зависимости LGPL.
Легко сказать — трудно сделать.
К сожалению выбор сделан был давно и тех людей не особо волновало суровое будущее
Здравствуйте, VladCore, Вы писали:
VC>Здравствуйте, _NN_, Вы писали:
_NN>>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? _NN>>Как решается эта проблема у вас ?
VC>Разве LGPL запрещает использовать LGPL-зависимости в не LGPL?
VC>SuperHost в NET 5.0 это же просто другой способ загрузки исполняемых бинарников, не требующий отдельного временного файла при запуске для каждого бинарника в зависимостях. Ты просто распространяеш бинарник под LGPL лицензией, это не запрещено.
В том и дело, что не совсем так.
До .NET 5.0 , .NET Core сначала распаковывал все файлы, а потом запускал.
Благодаря этому само приложение не обязано было распространяться как LGPL.
Здравствуйте, _NN_, Вы писали:
_NN>Легко сказать — трудно сделать. _NN>К сожалению выбор сделан был давно и тех людей не особо волновало суровое будущее
У вас, надеюсь, есть в компании юрист? Иди к ему и обсуждай что делать. Вряд ли девелоперы тебе тут чем то помогут.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, _NN_, Вы писали:
_NN>>Легко сказать — трудно сделать. _NN>>К сожалению выбор сделан был давно и тех людей не особо волновало суровое будущее
НС>У вас, надеюсь, есть в компании юрист? Иди к ему и обсуждай что делать. Вряд ли девелоперы тебе тут чем то помогут.
Ну вот юрист и сказал, что так нельзя.
Теперь думаю как обойти проблему.
Возможно есть какой-нибудь способ указать .NET 5.0 , чтобы конкретный файл не линковать и оставить снаружи ?
Здравствуйте, _NN_, Вы писали:
_NN>Ну вот юрист и сказал, что так нельзя.
Значит нельзя.
_NN>Теперь думаю как обойти проблему.
А что, есть варианты кроме как не использовать линковку в один файл или заменить LGPL зависимость на что то без порнографической лицензии?
_NN>Возможно есть какой-нибудь способ указать .NET 5.0 , чтобы конкретный файл не линковать и оставить снаружи ?
Здравствуйте, _NN_, Вы писали:
_NN>>>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>>>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? _NN>>>Как решается эта проблема у вас ?
VC>>Разве LGPL запрещает использовать LGPL-зависимости в не LGPL?
VC>>SuperHost в NET 5.0 это же просто другой способ загрузки исполняемых бинарников, не требующий отдельного временного файла при запуске для каждого бинарника в зависимостях. Ты просто распространяеш бинарник под LGPL лицензией, это не запрещено.
_NN>В том и дело, что не совсем так. _NN>До .NET 5.0 , .NET Core сначала распаковывал все файлы, а потом запускал.
Здравствуйте, VladCore, Вы писали:
_NN>>В том и дело, что не совсем так. _NN>>До .NET 5.0 , .NET Core сначала распаковывал все файлы, а потом запускал.
VC>вот тут будьше деталей: https://devblogs.microsoft.com/dotnet/announcing-net-5-0/ Ctrl-F Superhost
_NN>>Благодаря этому само приложение не обязано было распространяться как LGPL.
VC>а подробнее?
В .NET Core 3.1 приложение распаковывается в %TEMP%\.net и запускается оттуда.
Это означает, что файл с лицензией LGPL располагается на диске и используется как есть без изменений.
Такой способ попадает под определение динамической линковки и само приложение может быть с любой лицензией.
Здравствуйте, _NN_, Вы писали:
_NN>>>В том и дело, что не совсем так. _NN>>>До .NET 5.0 , .NET Core сначала распаковывал все файлы, а потом запускал.
VC>>вот тут будьше деталей: https://devblogs.microsoft.com/dotnet/announcing-net-5-0/ Ctrl-F Superhost
_NN>>>Благодаря этому само приложение не обязано было распространяться как LGPL.
VC>>а подробнее?
_NN>В .NET Core 3.1 приложение распаковывается в %TEMP%\.net и запускается оттуда. _NN>Это означает, что файл с лицензией LGPL располагается на диске и используется как есть без изменений. _NN>Такой способ попадает под определение динамической линковки и само приложение может быть с любой лицензией.
Отвлечемся поближе к ГПЛ. А пользователь может поменять зависимость из TEMP на свою пропатченную?
Здравствуйте, VladCore, Вы писали:
_NN>>В .NET Core 3.1 приложение распаковывается в %TEMP%\.net и запускается оттуда. _NN>>Это означает, что файл с лицензией LGPL располагается на диске и используется как есть без изменений. _NN>>Такой способ попадает под определение динамической линковки и само приложение может быть с любой лицензией.
VC>Отвлечемся поближе к ГПЛ. А пользователь может поменять зависимость из TEMP на свою пропатченную?
У нас LGPL, а не GPL.
Тут достаточно динамически линковать.
А так если конечно приспичит может и поменять файл.
Вот тут не уверен, если будет перезапись или даже не будет попытки распаковать оригинальный файл.
Здравствуйте, _NN_, Вы писали:
_NN>>>В .NET Core 3.1 приложение распаковывается в %TEMP%\.net и запускается оттуда. _NN>>>Это означает, что файл с лицензией LGPL располагается на диске и используется как есть без изменений. _NN>>>Такой способ попадает под определение динамической линковки и само приложение может быть с любой лицензией.
VC>>Отвлечемся поближе к ГПЛ. А пользователь может поменять зависимость из TEMP на свою пропатченную?
_NN>У нас LGPL, а не GPL.
А лгпл не близко ни разу к гпл?
_NN>Тут достаточно динамически линковать. _NN>А так если конечно приспичит может и поменять файл. _NN>Вот тут не уверен, если будет перезапись или даже не будет попытки распаковать оригинальный файл.
Здравствуйте, _NN_, Вы писали:
_NN>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? _NN>Как решается эта проблема у вас ?
Насколько я понял из описания тут, в .NET 5 есть специальная опция
IncludeAllContentForSelfExtract, про которую пишут
Bundle all published files (except symbol files) into single-file app. This option provides backward compatibility with the .NET Core 3.x version of single-file apps.
Здравствуйте, _NN_, Вы писали:
_NN>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ?
Достаточно добавить в документации ссылку на версию с кучей бинариков.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, _NN_, Вы писали:
_NN>>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? C>Достаточно добавить в документации ссылку на версию с кучей бинариков.
Интересное решение.
Осталось согласовать его с юристом.
У вас так делают?
Здравствуйте, _NN_, Вы писали:
C>>Достаточно добавить в документации ссылку на версию с кучей бинариков. _NN>Интересное решение. _NN>Осталось согласовать его с юристом. _NN>У вас так делают?
Да, мы так делали. Ссылка была на основной страничке скачивания. В архивном файле лежали скрипты, собирающие цельный файл.
Здравствуйте, VladCore, Вы писали:
_NN>>У нас LGPL, а не GPL.
VC>А лгпл не близко ни разу к гпл?
Есть небольшое различие.
LGPL позволяет динамически линковать без необходимости быть также LGPL в отличии от GPL где сразу всё будет GPL
_NN>>Тут достаточно динамически линковать. _NN>>А так если конечно приспичит может и поменять файл. _NN>>Вот тут не уверен, если будет перезапись или даже не будет попытки распаковать оригинальный файл.
VC>так в этом и суть гпл.
Здравствуйте, romangr, Вы писали:
R>Здравствуйте, _NN_, Вы писали:
_NN>>.NET 5.0 в режиме самодостаточного файла линкует все файлы и не распаковывает их на диск как было в .NET Core. _NN>>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ? _NN>>Как решается эта проблема у вас ?
R>Насколько я понял из описания тут, в .NET 5 есть специальная опция R>IncludeAllContentForSelfExtract, про которую пишут R>
R>Bundle all published files (except symbol files) into single-file app. This option provides backward compatibility with the .NET Core 3.x version of single-file apps.
Здравствуйте, _NN_, Вы писали:
_NN>Получается, что если у меня есть зависимость LGPL и я хочу распространять в виде самодостаточного файла, мой продукт тоже обязан быть LGPL ?
В LGPL разве есть такое требование? с GPL не путаешь?
Я конечно не юрист, но насколько я знаю в LGPL — ты изменения в саму библиотеку должен под LGPL выложить. А если просто используешь — то можешь использовать любую лицензию.