Який правильний спосіб розкрутити / повторно використовувати код з проекту з відкритим кодом?


22

Скажімо, я працюю над проектом з відкритим кодом і хочу повторно використовувати тривіальну функцію утиліти з іншого проекту з відкритим кодом (наприклад, функцію пошуку / заміни файлів). Чи законно скопіювати функцію та просто написати невелике повідомлення про авторські права у верхній частині файлу? Чи слід включати їх ім'я як власників авторських прав на весь проект у ліцензію?

Так само, скажімо, я розкладу проект з відкритим кодом. Де і як я можу вказати, що авторські права поділяються між оригінальним власником авторських прав і мною?

Я думаю, відповідь має дещо відрізнятися залежно від ліцензії на відкритий код, але я хотів би якомога більше загальної відповіді.

PS: Мене найбільше хвилює юридичний аспект, але сміливо включайте свою етичну точку зору.


1
Що стосується ліцензії відповідного проекту та проекту, який ви випускаєте? Так, ви можете використовувати код, але будьте більш конкретними, щоб ми могли краще інформувати вас про ваші вимоги відповідно до ліцензії, яка використовується.
Tim Post

1
@Tim Post: Це здебільшого теоретичний питання, але якщо він може допомогти, припустимо, обидва проекти мають ліцензію GPL, оскільки це дуже часто.
Олів'є Лалонде

Відповіді:


25

Я намагаюся зробити цю відповідь максимально застосованою «мета».

Використання фрагментів / бітів інших проектів

Чітко позначте код із авторським авторським правом. Переконайтесь, що ваша ліцензія на вибір повністю сумісна з ліцензією коду, який ви використовуєте. Вам знадобиться дозвіл автора для переміщення коду до іншої ліцензії (якщо вони спеціально не дозволяють вам це робити, тобто "GPL 2 або будь-яка пізніша версія")

У вашій програмі має бути файл AUTHORS (або подібний), де ви перераховуєте всі учасники та речі, які ви використовували з інших проектів.

Формування проекту

До кожного модуля, який ви істотно змінюєте, додайте свої авторські права під оригіналом автора. Те ж саме стосується і ліцензування, ви пов'язані умовами ліцензії, яка діяла, коли ви роздвоювали її. Якщо в проекті написано "Лише GPL2", ви повинні це поважати, ви не можете перейти до GPL3 без їх дозволу.

Це значно варіюється в залежності від ліцензії. QPL каже, що ви можете поширювати зміни лише у форматі патчів, наприклад, переконайтеся, що ви розумієте умови, які дозволяють поширювати модифіковані версії програмного забезпечення.

Крім цього, завжди зберігайте авторські права. Якщо ви додасте власне авторське право до наявного, не забудьте чітко позначити саме те, на що ви претендуєте.


Іноді ви можете додавати ліцензії. Припустимо, ви хотіли використовувати функцію BSD у проекті GPLed: ви не можете видалити ліцензію BSD, але вона сумісна з GPL, тому ви можете оформити весь проект під GPL та зазначити, що ця функція також під BSD ліцензія. Було б ввічливо випустити будь-які зміни, внесені вами до BSD-ліцензованого коду під BSD.
Девід Торнлі

@David - ОП хотіла загальної відповіді (звідси моє закликання вивчити ліцензії). Ви цілком правильні. ЗАРАЗ, приємно подвоїти ліцензію будь-яких змін, які ви внесли до коду BSD, так що оригінальні автори насправді можуть використовувати його, якщо вони цього хочуть.
Tim Post

1
У який момент основний файл ліцензії повинен повідомляти про авторські права вище оригінальних авторів? Коли ваші SLOC перевищують 200% від початкових проектів SLOC? 300%? Якщо проект, який ви замовили, виявляється однією з багатьох бібліотек або модулів у вашому проекті?
варильні панелі

@hobs imo, порядок сповіщення про авторські права - це не показник розміру внеску, а детальніше хронологічно деталізує витоки.

@TechnikEmpire Хронологічне замовлення має сенс, але для списку авторів, а не про авторські права? Я вважав, що повідомлення про авторські права можуть бути краще упорядковані відповідно до розділів коду, до яких вони застосовуються, та значення / кількість цих розділів у пакеті. Корисно мати список людей, з якими потрібно зв’язатися, за черговістю, якщо ви хочете щось змінити щодо ліцензії. Отже, якщо ви отримуєте дозвіл від перших, але не останніх, у вас є менша кількість коду, щоб відтворити, якщо ви вирішили внести зміни. Цікаво, що робить Лінус?
варильні панелі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.