LINUX.ORG.RU

Статическая линковка с библиотекой содержащей LGPL компоненты

 , , , ,


0

1

Добрый день, Небольшой вопрос по лицензированию приложений с открытым кодом.

Использую FTDI FTD2XX драйвер в своем коммерческом приложении с закрытым кодом и линкуюсь с FTD2XX статически. Вижу что внутри FTDI дайвера он статически слинкован с libusb , видно символы и в ассемблерном коде видно функции libusb.

libusb как известно под LGPL лицензией. Если с LGPG библиотекой линковаться динамически то все нормально, а вот если статически то я так понимаю что надо выпускать свой продукт тоже под LPGL и значит открывать код.

Код драйвера FTDI закрыт. FTDI лицензии и readme я читал. Они говорят вот что:

«This package uses an unmodified version of libusb (libusb.info) which is distributed under the terms of the GNU Lesser General Public License (see libusb/COPYING or www.gnu.org/licenses). Source code for libusb is included in this distribution.»

Не будет ли такое использование FTDI и прилинкованного к нему libusb нарушением LGPG? Или же использование unmodified libusb позволяет держать код закрытым?

Спрошу конечно у юриста, но может это что то тривиальное и общественность знает уже.

Спасибо!

Думаю будет. Иначе как? Использование компонентов тоже использование. Чтобы подключиться проприетарному драйверу нвидии надо такие позы принимать, что мало не покажется и все должно быть проприетарным при этом.

anonymous ()

Если линкуешься статически с lgpl либой, то нужны либо исходники либо объектные файлы: https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic

Неважно что они используют.

Нужно иметь возможность слинковаться со своей версией этой lgpl либы, если этого нет, то это нарушение лицензии.

Вот тут всё расписано: https://copyleft.org/guide/

fsb4000 ★★★★★ ()
Последнее исправление: fsb4000 (всего исправлений: 2)

Если ты линкуешься статически с лгпл то тебе достаточно предоставить объектники чтобы была возможность пересобрать твой блоб. Неважно напрямую ты это делаешь или нет. Логика простая - ты должен предоставить юзеру возможность перебилдить твой софт имея на руках лгпл код который в него включен. Для твоего случая это будет либусб, объектники фтди (хз что это) и объектники твоей софтины.

ya-betmen ★★★★★ ()

Как уже частично сказали нужны:

  • объектные файлы
  • возможность их них собрать рабочее приложение
  • разрешение на отладку/дизасемблирование основной проприетарной программы с целью отладки LGPL зависимости:
  1. Combined Works.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:

xaizek ★★★★★ ()

пока вы не зарабатываете хотя бы миллион долларов в год на этом, линкуйте как и что хотите

anonymous ()
Ответ на: комментарий от fsb4000

Если линкуешься статически с lgpl либой, то нужны либо исходники либо объектные файлы

спасибо, значит получается что FTDI нарушают лицензию сами. Известная компания же.

salvequick ()
Последнее исправление: salvequick (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Если ты линкуешься статически с лгпл то тебе достаточно предоставить объектники чтобы была возможность пересобрать твой блоб. Неважно напрямую ты это делаешь или нет. Логика простая - ты должен предоставить юзеру возможность перебилдить твой софт имея на руках лгпл код который в него включен. Для твоего случая это будет либусб, объектники фтди (хз что это) и объектники твоей софтины.

Компонентов libusb у меня даже нет. Они статически вшиты в ftdi. Я могу только с ftdi драйвером динамически слинковаться.

salvequick ()
Ответ на: комментарий от salvequick

Тут пишут, что у тебя должны быть объектники: https://www.ftdichip.com/Drivers/D2XX/Linux/ReadMe-linux.txt

1.  tar xfvz libftd2xx-<platform>-1.3.6.tgz

This unpacks the archive, creating the following directory structure:

    build
        libftd2xx        (re-linkable objects)
        libusb           (re-linkable objects)
        libftd2xx.a      (static library)
        libftd2xx.so.1.3.6   (dynamic library)
        libftd2xx.txt    (platform-specific information)
    examples
    libusb               (source code)
    ftd2xx.h
    WinTypes.h
fsb4000 ★★★★★ ()
Ответ на: комментарий от salvequick

Они статически вшиты в ftdi.

Это значит что либо они отдают объектники/исходники либо нарушают лгпл.

ya-betmen ★★★★★ ()
Ответ на: комментарий от fsb4000

Тут пишут, что у тебя должны быть объектники

Да извиняюсь в первоисточнике есть. Просто я посмотрел в том наборе файлов из которого собирают библиотеку те люди которые пишут библиотеку на базе FTDI. Там у них только ftdi.so и ftdi.a

Так все таки если я динамически слинкуюсь с FTDI это решит проблему я уйду из под требования LGPL? libusb останется жить в ftdi драйвере.

salvequick ()
Последнее исправление: salvequick (всего исправлений: 1)
Ответ на: комментарий от salvequick

Так все таки если я динамически слинкуюсь с FTDI это решит проблему

Да, так как пользователи смогут собрать свою кастомную ftdi с кастомным libusb и использовать её с твоей программой.

fsb4000 ★★★★★ ()
Последнее исправление: fsb4000 (всего исправлений: 1)

Спасибо за ответы всем откликнувшимся!

salvequick ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.