Войти
ФлеймФорумПрограммирование

Общие вопросы по программированию (6 стр)

Страницы: 15 6 7 8337 Следующая »
#75
15:58, 20 ноя. 2019

pahaa
Qt умеет в статическую линковку?


#76
16:03, 20 ноя. 2019

nes
> Qt умеет в статическую линковку?
умел из под коробки когда-то, при желании можно собрать самому для статика но с лицензией их конфликтует насколько помню.

#77
16:06, 20 ноя. 2019

nes
> Qt умеет в статическую линковку?

Если ты готов свой код выкладывать под GPL или покупать коммерческую лицензию, то умеет. Иначе тоже умеет, но ай-яй-яй

#78
16:14, 20 ноя. 2019

При таком раскладе лучше уж свое или эстэдэшное.

#79
(Правка: 17:54) 17:50, 20 ноя. 2019

0iStalker
> но ай-яй-яй
Qt-Company свободным кодом не владеет, а значит не может предъявлять претензии по LGPL (достаточно просто утверждать, что лицензируются под ней). А если уж лично Столлман придёт катать предъявы, мол, не соответствует LGPL и должно быть GPL, то масштаб проекта наверняка будет позволять и пол-ляма за коммерческую лицензию отвалить.
Об этом была статья на хабре от чела из юр. отдела кутей по СНГ.

#80
(Правка: 19:28) 19:28, 20 ноя. 2019

pahaa
lgpl подразумевает что ты должен предъявить исходный код который под lgpl любому кто попросит. Поэтому ты не можешь слинковать статически и сказать что твой продукт теперь под какой-то другой лицензией.

#81
(Правка: 20:37) 20:35, 20 ноя. 2019

Aroch
> lgpl подразумевает что ты должен предъявить исходный код который под lgpl
> любому кто попросит
ну вот! опять лицензе срачи.
1) это не "любой кто попросит", а "любой, кому ты софт распространял".
2) это не lgpl, а gpl.
2.1) lgpl подразумевает, что ты должен предоставить исходники только используемых lgpl компонетов; а твой код, который их использует может оставаться скрытым, и lgpl-у не подлежит.
2.2) gpl, действительно подразумевает, что код использующий gpl компоненты (в виде динамической или статической линковки), сам становится gpl лицензируемым.
3) менее агрессивные open-source лицензии обычно требуют упоменания автора и компонента в сопроводительной документации к приложению

#82
22:33, 20 ноя. 2019

skalogryz
> lgpl подразумевает, что ты должен предоставить исходники только используемых
> lgpl компонетов; а твой код, который их использует может оставаться скрытым, и
> lgpl-у не подлежит.
ну а как ты отделишь код компонентов? Как я смогу подтвердить что ты использовал именно этот код?

#83
22:58, 20 ноя. 2019

Aroch
> Как я смогу подтвердить что ты использовал именно этот код
Столлман сумеет.
Aroch
> ну а как ты отделишь код компонентов?
Достаточно не копировать в собственные исходники куски кода из библиотек.
Особо упоротые могут написать обертку и вынести ее в отдельную библиотеку.

#84
23:46, 20 ноя. 2019

Aroch
> ну а как ты отделишь код компонентов?
Критерий там простой: пользователь должен иметь возможность менять LGPL-часть продукта.
В случае того же Qt можно взять исходники Qt, поправить их, сбилдить и подключить к закрытой части продукта.
Обычно требование удовлетворяется предоставлением LGPL-части в виде DLL, но можно линковать и статически, при условии, что будут доступны объектные файлы закрытой части и пользователь сможет перелинковать все целиком.

#85
1:24, 21 ноя. 2019

}:+()___ [Smile]
о чем и речь, что lgpl подразумевает что пользователь должен иметь возможность при желании пересобрать то-что было под lgpl и чтобы все заработало.
pahaa
> Достаточно не копировать в собственные исходники куски кода из библиотек.
угу, будешь как смайл предложил объектники закрытой части отдавать каждому спросившему? Вместо того чтобы линковать динамически и не иметь проблем.

#86
1:33, 21 ноя. 2019

}:+()___ [Smile]
> что будут доступны объектные файлы закрытой части
Ну распространять *.lib + *.h... Эта хрень декомпилится влет, с сохранением всех типов и глобальных имен, какая тогда уж закрытость.

+ Показать
#87
2:06, 21 ноя. 2019

Aroch
> угу, будешь как смайл предложил объектники закрытой части отдавать каждому
> спросившему?
pahaa
> Особо упоротые могут написать обертку и вынести ее в отдельную библиотеку.

#88
2:15, 21 ноя. 2019

pahaa
> > Особо упоротые могут написать обертку и вынести ее в отдельную библиотеку.
лучше расскажи как делают не упоротые.

#89
(Правка: 4:10) 4:09, 21 ноя. 2019

Aroch
> ну а как ты отделишь код компонентов? Как я смогу подтвердить что ты
> использовал именно этот код?
В случае статической линковки:
1) "код компонентов" имеет чётко определённые "точки входа". т.е. это функции и методы, которые реализованы самим компонентом, и которые вызываются внешним кодом.
2) в бинарном формате, вполне может остаться какой-нибудь namemangling, или RTTI информация, которая укажет на конкретные имена.
3) константы, вполне могут указать, на использование определённой библиотеки и её версии.
4) сборка кода, одним и тем же комплиятором, с одинаковыми ключами должен дать идентичный бинарный результат.
5) баги в итоговом продукте, и в компоненте идентичны.
6) ...стукачи, наконец.
В случае динамической линковки/загрузки - всё ещё очевиднее.

Страницы: 15 6 7 8337 Следующая »
ФлеймФорумПрограммирование