Лицензия BSD/LGPL/GPL/Apache, .jars встроены в.deb?
Я работаю над хобби-проектом Java, который упакован в файл.deb, содержащий несколько разных JAR-файлов с разными лицензиями, например:
- Google Gson (лицензия Apache)
- HSQLDB (на основе BSD)
- Hibernate (LGPL)
- (так далее)
Несмотря на то, что я действительно не готов выпустить или продать эту идею / проект / программное обеспечение, я все еще задумывался о том, что разрешено и что вообще не разрешено с этими общими лицензиями. Например, я слышал, что GPL является "худшим" (даже не позволяя ссылочные / динамически связанные библиотеки, не выпуская все широко открытыми), но я не знаю, правда ли это, и я действительно мало знаю о других лицензии.
Например, будет ли разрешен любой из следующих сценариев, если я продам свое программное обеспечение:
- Упакуйте все зависимые файлы JAR в пакет.deb, который затем распространяется и устанавливается apt с использованием собственного репозитория.
- Упакуйте только мой код внутри.deb и позвольте пользователям самостоятельно устанавливать зависимые JAR-файлы (и указывать путь к классу JAR-файлов при запуске моего приложения).
- Продавайте предварительно сконфигурированные коробки с установленным на нем моим программным обеспечением, вместе с дистрибутивом Linux и всеми зависимыми JAR-файлами (плата взимается только за фактические затраты на оборудование, любая дополнительная плата будет взиматься за программное обеспечение).
Заранее спасибо!
2 ответа
Просто чтобы прояснить - я не юрист, поэтому ваш пробег может отличаться. Если вы планируете зарабатывать на этом деньги... попросите адвоката разобраться с вашими лицензиями. Тем не менее, это мое понимание GPL/LGPL
Все эти сценарии считаются выпуском двоичного файла, поэтому независимо от метода, который вы обязуетесь GPL/LGPL, одинаковым образом для всех из них.
Согласно GPL, вам фактически придется выпускать исходный код всякий раз, когда вы выпускаете двоичные файлы (в данном случае файлы JAR). Вы всегда можете взимать плату за копию своего программного обеспечения - вам просто нужно выпустить исходный код с ним. Кроме того, ваш код в этом случае должен быть выпущен в соответствии с GPL.
Согласно LGPL, насколько я понимаю, вы должны иметь возможность связывать его с общими библиотеками (библиотечными JAR), если вы даете пользователю возможность заменить эти общие библиотеки более новыми версиями. Фактически вы можете связать совместно используемые библиотеки в вашем пакете, если лицензия включена и источник библиотек доступен.
Лицензии google/bsd, как правило, более разрешающие, чем LGPL, но у меня недостаточно знаний, чтобы дать вам приблизительную разбивку.
Вы должны прочитать каждую из лицензий и проверить это с вашим предполагаемым использованием. Большинство из тех, что вы перечислили, не должны вносить слишком много дополнительной работы для вас. Если вы не хотите выпускать исходный код производной или составной работы, которую вы создаете, вы должны быть осторожны, чтобы не использовать какой-либо код по лицензии с авторским левом, поскольку для этого часто требуется полная (GPL) или часть (LGPL). Также может быть что-то похожее на исключение classpath с некоторым кодом, лицензируемым в семействе GPL, так что это действительно зависит от конкретных условий.
Лицензия Apache или BSD-Like не имеет авторского права (но они также имеют условия, которые вы должны соблюдать).
Лучшее, что вы можете сделать, это внимательно прочитать каждую лицензию и уточнить конкретные вопросы, которые у вас есть с вашей группой сверстников и юридической поддержкой.
В противном случае вы также можете рассмотреть возможность выпуска своего программного обеспечения в качестве бесплатного, что, как правило, приносит пользу всему сообществу. Но это ваше решение.