On Sun, 4 Apr 2021 17:13:43 +0300 Dmitry V. Levin wrote: > On Sun, Apr 04, 2021 at 04:35:37PM +0300, Andrey Savchenko wrote: > > On Sun, 4 Apr 2021 15:58:26 +0300 Dmitry V. Levin wrote: > > > On Sun, Apr 04, 2021 at 03:04:23PM +0300, Andrey Savchenko wrote: > > > > Добрый день! > > > > > > > > Обращаю внимание, что лицензии OpenSSL и GPL(все) не совместимы: > > > > https://www.gnu.org/licenses/license-list.html#OpenSSL > > > > > > А если OpenSSL является системной библиотекой? > > > > Тогда можно. Но является ли? На мой взгляд — нет. Вот пояснение > > того, что такое "system libraries" из текста GPLv3: > > > > The "System Libraries" of an executable work include anything, other > > than the work as a whole, that (a) is included in the normal form of > > packaging a Major Component, but which is not part of that Major > > Component, and (b) serves only to enable use of the work with that > > Major Component, or to implement a Standard Interface for which an > > implementation is available to the public in source code form. A > > "Major Component", in this context, means a major essential > > component (kernel, window system, and so on) of the specific > > operating system (if any) on which the executable work runs, or a > > compiler used to produce the work, or an object code interpreter > > used to run it. > > > > В нашем случае OpenSSL — всего лишь одна из многочисленных > > библиотек для работы с криптографическими алгоритмами > > и протоколами. Никаких стандартных программных интерфейсов она тоже > > не реализует: у каждой библиотеки SSL своё не совместимое ни с > > чем API. > > > > Можно ли считать популярность библиотеки критерием её системности? > > Я думаю, что нет. > > Там же написано, что > A "Standard Interface" means an interface that either is an official > standard defined by a recognized standards body, or, in the case of > interfaces specified for a particular programming language, one that > is widely used among developers working in that language. > > Можно ли рассматривать OpenSSL в качестве библиотеки, widely used among > developers working на языке C? По-моему, там другое имелось ввиду: > interfaces specified for a particular programming language Т.е. стандартные для языка интерфейсы, если их нет в официальном стандарте, но на практике широко используется как часть стандарта языка: например, strlcpy. > В моём понимании библиотека является системной, если без неё система > превращается в тыкву. Есть ли у нас хоть один дистрибутив, хоть один > опубликованный образ контейнера без libcrypto? В базовую сборочную среду > libcrypto не входит, дисквалифицирует ли это libcrypto как системную > библиотеку? Думаю, что да. Волне можно сделать контейнер без криптографии или сети для специфических задач; чем, в общем-то, сборочная среда является. У разных дистрибутивов здесь разное мнение, кстати: - Fedora сказала, что OpenSSL — системная библиотека и их ничего не волнует: https://fedoraproject.org/wiki/Licensing:FAQ#What.27s_the_deal_with_the_OpenSSL_license.3F - В Gentoo явно запрещается OpenSSL + GPL для бинарно распространяемых сборок: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/ffmpeg/ffmpeg-4.3.2.ebuild#n320 Мало того, лицензии GPL with OpenSSL exception явно выносятся как отдельные и используются в пакетах по необходимости: https://gitweb.gentoo.org/repo/gentoo.git/tree/licenses/GPL-2+-with-openssl-exception https://gitweb.gentoo.org/repo/gentoo.git/tree/licenses/GPL-3-with-openssl-exception На мой взгляд, весомым аргументом является то, что апстримы, разрабатывающие GPL код и использующие OpenSSL, обычно явно добавляют OpenSSL exception в свою лицензию, таким образом не полагаясь на возможный системный статус библиотеки. Best regards, Andrew Savchenko