GTK и его Glib лицензируются по лицензии LGPL .
Лицензия LGPL требует, чтобы любая объединенная работа (т. Е. Программа, связывающая Glib) не "не ограничивала изменение частей библиотеки" и явно предлагала "Использовать подходящую общую библиотеку механизм " для этой цели. Намерение состоит в том, чтобы любой пользователь программного обеспечения, связанного с Glib, мог легко улучшить Glib (например, обновить его) и использовать программное обеспечение, связанное с улучшенным Glib.
В практическом плане сортировка Glib должна быть общей библиотекой, и если вы распространяете двоичный файл, статически связанный с вариантом Glib, вы должны предоставить источник вашего Glib и достаточное количество файлов, чтобы пользователь мог восстановить связь с новым Glib (т. е. всеми объектными файлами вашего приложения).
Таким образом, вы вряд ли найдете статически связанную версию Glib, потому что она в некотором роде «нелегальна» (и противоречит цели LGPL и FSF).
Дистрибутив определенно не будет способствовать нарушению лицензии LGPL, предоставляя статические библиотеки Glib.
Предостережение: Я не юрист
PS. Чтобы решить вашу проблему, вы можете попытаться статически связать только libc
(но, вероятно, это не сработает, потому что Glib использует libdl
для dlopen
, который должен быть динамически связан).
Вы можете сделать свое программное обеспечение бесплатным (например, лицензированным по лицензии GPL) и распространять его исходный код (оставляя бремя его сборки и упаковки для пользователей или распространителей).
Если вы настаиваете на доставке двоичных файлов, сделайте несколько их вариантов: один для старых систем (с libc
<= 2.7) и один для более новых систем. </p>