При повторном использовании кода, как я могу дать понять, кто является правообладателем для каждого файла? [закрытый]
Я хочу повторно использовать некоторый код, лицензированный под лицензией BSD, но я не знаю, как прояснить, что я написал, что я повторно использовал и что я изменил.
скажем, проект, из которого я хочу повторно использовать код, имеет следующую структуру каталогов:
project/
|-- LICENSE.txt
|-- module1/
| |-- file1.c
| |-- file2.c
| `-- file3.c
|-- module2/
`-- module3/
и содержание лицензии.txt-это лицензия BSD, то есть ее содержимое:
Copyright (c) <year>, <copyright holder>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
[...]
(см. Википедия для шаблона полного текста.)
кроме того, авторское право только указано в лицензии.txt-файл, а не в каждом отдельном файле исходного кода.
Если я теперь скопирую все в project / module1/ в свой собственный проект:
my_project/
|-- module1/
| |-- file1.c
| |-- file2.c
| `-- file3.c
|-- my_file1.c
|-- my_file2.c
|-- my_source_code1/
`-- my_source_code2/
как я должен заявить, что я не являюсь правообладателем файлов по модулю 1? Достаточно ли скопировать оригинал лицензии?txt, с оригинальным правообладателем в заголовке, в подкаталог module1? Или я должен добавить заголовок copyright к каждому отдельному файлу?
что если я измените любой из файлов в module1? Должен ли я каким-то образом добавить себя в качестве дополнительного правообладателя для файлов, которые я изменил?
примечание: Я отлично справляюсь с использованием той же (или совместимой) лицензии для кода, который я написал.
4 ответов
скопировать LICENSE.txt
в своем module1
dir и упоминание в ваших документах (README, лицензия и т. д.), что вы используете эту часть проекта. Лицензия BSD style очень либеральна: пока вы отдаете должное кредиту и уважаете его требования (обычно это включает предоставление немодифицированной лицензии и уведомлений об авторских правах), вы можете делать с кодом все, что захотите.
Если вы изменяете какой-либо файл, рекомендуется упомянуть его в заголовке файла, вокруг ваших изменений и в ваших глобальных документах. Если измененные файлы не имели уведомления об авторских правах, просто добавьте один, описывающий ваши изменения. Таким образом, пользователи могут знать, какие файлы были изменены, кто это сделал, почему и как.
это так просто: сделайте это очень описательно. Нет никакой формальной процедуры, чтобы следовать, вопреки лицензиям стиля GPL. Это больше документация, чем юридическая работа.
Мне нравится, чтобы лицензия ссылалась внутри комментария в исходном коде - это проще, так как люди с большей вероятностью откроют исходный файл и поиграют, чем сначала изучат структуру каталогов. Простой комментарий о том, что код защищен авторским правом на X и лицензируется Y, просто помогает направить кого-то в соответствующий файл лицензии.
вы не хотите рисковать здесь неверное толкование авторского права. Итак, я бы дошел до следующей структуры:
my_project/
|-- the_other_project
| |-- LICENSE.txt
| |-- module1/
| | |-- file1.c
| | |-- file2.c
| | `-- file3.c
|-- my_file1.c
|-- my_file2.c
|-- my_source_code1/
`-- my_source_code2/
кроме этого:
- каждый файл должен иметь заголовок с указанием авторского права, владельца и лицензии
- упомяните в своей лицензии, что вы используете части кода другого проекта
- если вы изменяете код в других проектах, добавьте свои авторские права и имя в исходные файлы проект.
Если вы не делаете слишком много изменений в другой исходный код. Если вы переписываете все, просто укажите в своей лицензии происхождение другого кода.
Я только что нашел поддержание разрешительных лицензионных файлов в проекте с лицензией GPL: рекомендации для разработчиков, опубликовано центром права свободы программного обеспечения. Хотя он конкретно говорит о включении лицензий стиля BSD (они называют их разрешительными) в лицензионный код GPL, я думаю, что рекомендация в разделе 2.1,неизмененном включая разрешительно-лицензионные файлы было бы неплохо общие рекомендации. Цитирую:
Если внешний проект использует одиночный метод файла авторского права, разработчик должен скопировать имена всех правообладатели из этого файла и разместите их вместе с любыми авторское право, разрешение и гарантия уведомления отказ требует разрешительная лицензия, вверху встроенный исходный файл.
в случае, если вы измените включаемые файлы и ваш проект is GPL, есть два соответствующих раздела В упомянутом документ:
- 2.2 добавление изменений GPL'D в разрешительно-лицензионные файлы
- 2.3 сохранение измененных файлов с разрешительной лицензией в рамках больших gpl'D works
Если вы изменить файлы и проект не GPL, очевидно, не рассматривается документом. Но из того, что я узнал из других ответов, я бы сказал, пока лицензия, которую вы используете для своего проект не является вирусным, что правильная вещь, чтобы сделать, было бы просто добавить себя в качестве владельца авторских прав на заголовок авторских прав файла вы изменили и упомянуть происхождение включенного кода где-то в ваших документах.