Как встраивать часть чужого кода под свободной лицензией в свой?
Добрый день!
Интересует такой вопрос. Допустим есть кусок кода программы, распространяемой под какой-либо из свободных лицензий, который хотелось бы использовать в своём проекте. Как и где лучше всего упомянуть авторство и лицензию этого конкретного куска кода? В частности, если сторонний код встраивается в собственный, а не просто инклудится или линкуется. Ну и интересует вариант, когда сторонний и собственный код под разными (совместимыми, естественно) лицензиями.
Я бы особо не парился и просто оставил комментарий над функцией с информацией об авторе и ссылкой на лицензию, например в стиле javadoc или вообще в свободной форме.
GPL — 1) в секретный проект (внутренний, недоступный извне даже в виде бинарников); 2) в GPL’ный проект со всеми вытекающими последствиями (выложить исходники).
LGPL — только в виде DLL, с исходниками этого самого DLL.
Прочие лицензии — как угодно (возможно, с упоминанием, откуда взято). Я бы предложил всё это написать где-нибудь в About. В крупных проектах (Opera, например), этот About может быть немаленький — посмотрите, как они его реализовали.
В вопросе рассматривается именно использование кусков кода, а не проекта целиком, так что первые два пункта немного не к месту.
По поводу третьего пункта: Подавляющая часть лицензий разрешает всё при условии сохранения изначального "copyright notice", сомневаюсь, что текст лицензии в "about" будет в тему.
Mercury13: Боюсь я не вижу ответа на свой вопрос. Вопрос вовсе не в том, какие условия у конкретных лицензий. Я даже специально указал в описании что проект и чужой код под совместимыми лицензиями и что меня интересует не линковка а конкретная копипаста кода в свой. В About можно добавить благодарность, да, но меня интересует указание авторства куска кода и его лицензии среди исходников проекта.
Говорю ещё раз. Опенсорс поощряет взятие кода в свой проект, но «скоммунизженный» нетривиальный кусок кода будет нести ту же лицензию — и её надо так же соблюсти, как будто вы подключили всю библиотеку. Примеры смотрите в любом крупном проекте, который использует код под MIT или BSD.
В About можно сделать раздел «Лицензии на чужой код». Щёлкаете, например, на «libXXX» — на экране текст лицензии на libXXX.
Mercury13: Вы правы по поводу того, что код не меняет свою лицензию и её нужно соблюдать. Теперь мне интересно как вы видите уместность говорить об этом, когда вопрос именно в том, как соблюсти условие указания автора а также указать его не изменённую лицензию среди исходников проекта под совместимой лицензией? Теперь я уже повторять вопрос начинаю, который, по-моему, вполне внятно сформулирован изначально.
P.S. Особенно хороши в этом плане C++ и C# — в одной единице компиляции может быть неполная реализация, линкер всё соберёт. На других языках кусок под другой лицензией можно в INC…