Я вважаю, що це зайво дублюється, щоб він був у кожному файлі коду, але я бачу це у більшості проектів з відкритим кодом. Чи варто це робити чи просто включити одну ліцензію поза кодом?
Я вважаю, що це зайво дублюється, щоб він був у кожному файлі коду, але я бачу це у більшості проектів з відкритим кодом. Чи варто це робити чи просто включити одну ліцензію поза кодом?
Відповіді:
Будь-який один за межами коду, будь ласка! Я не знаю про інших, але ненавиджу бачити те саме, що над кожним файлом.
Я думаю, що я читав її кілька разів, просто перебираючи сторінку.
evidence for the legal situation
. Perhaps a lawyer can add a link to a court decision
.
EULA - це неправильний термін, оскільки люди, які переглядають вихідний код, зазвичай не є кінцевими користувачами.
Юридично це також не має значення; авторські права не потрібно декларувати прямо.
По суті, все, що ви досягаєте, - це менший ризик випадкових порушень ваших ліцензійних умов. Вам доведеться вирішити, наскільки це важливо для вас.
Я б сказав, що найкращим компромісом є розміщення дуже короткого заголовка, що містить посилання (абсолютна URL-адреса, а також відносна в межах проекту) на повний текст ліцензії у кожен файл вихідного коду. Таким чином, кожен, хто піклується про ліцензію, знає, де її знайти (в ідеалі люди, які готові платити величезні ліцензійні внески; ви, звичайно, хочете, щоб ці люди могли з вами зв’язатися!)
Ні, вам не потрібно ставити ліцензію у кожен файл вихідного коду.
Якщо придивитись ближче, більшість програм FOSS теж не роблять цього. Вони ставлять заяву про захист авторських прав у верхній частині кожного файлу, а коротке речення повідомляє про те, під якою ліцензією знаходиться файл, і де ви можете знайти повний текст ліцензії. Зазвичай вони вказують на файл КОПІВАННЯ або ЛІЦЕНЗІЇ, що містить повний текст ліцензії та / або на веб-сайт, який містить повний текст (на випадок, коли файлу КОПІЄНГУ вже немає).
Як сказав у своїх відповідях Майкл Боргвардт, юридично вам цього не потрібно робити. Але бажано ввести вихідний код, який ви маєте намір поширити, оскільки люди можуть одразу побачити, хто має авторські права та що таке ліцензія.
Це може залежати від ліцензії. GPL розрізняє preamble
іlicense
. У ньому чітко зазначено, що (дратівлива) преамбула повинна бути частиною коду :
Чи можу я опустити преамбулу GPL або інструкції щодо її використання у власних програмах, щоб заощадити місце?
Преамбула та інструкції є невід'ємними частинами GPL GNU і не можуть бути опущені. Насправді GPL захищено авторським правом, і його ліцензія дозволяє лише дословне копіювання всього GPL. (Ви можете використовувати юридичні умови для створення іншої ліцензії, але це не буде GNU GPL.) (1)
Джерело: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Дивіться також http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
Безкоштовна електронна книга з ifrOSS пояснює і коментує GPL-німецькою мовою. Є ще одна для GPL 3
Для обґрунтованої відповіді вам слід звернутися за юридичною порадою, яка не доступна на sx. Якщо ви не можете знайти юриста для свого проекту з відкритим кодом, перегляньте юридичну мережу FSFE .
[...] attach the following notices to the program.
- наступні повідомлення - лише невеликий розділ повної ліцензії. safest to attach them to the start of each source file
- найбезпечніший, але не обов'язковий. each file should have at least the "copyright" line and a pointer to where the full notice is found.
- єдина вимога - лінія авторського права з покажчиком на решту. Добре помістити повну ліцензію в один окремий файл.
Я вважаю, що міркування щодо його розміщення у кожному файлі є законними. Якщо угода є у кожному файлі, немає шансу хтось наткнутися на фрагмент коду, не зазнавши ліцензії.
Це може бути не дуже хорошим, але всі великі хлопці використовують це, тому якщо це просто болі в зорі, я б шукав кращої причини не робити цього.
Якщо ви використовуєте GPL, це більше проблема, але якщо ви використовуєте ліцензії для публічного домену, такі як BSD або MIT, я не думаю, що вам все одно важливо, що люди роблять з кодом. Я думаю, це залежить від того, наскільки сувора ваша ліцензія.
IANAL,
Якщо припустити, що ви говорите про ліцензування, а не про ліцензійну угоду, ви можете поставити ліцензію назовні. Це майже завжди робиться з дійсно довгими ліцензіями, такими як GPL. Було б нерозумно вміщувати всю ліцензію GPL у кожен файл. Зазвичай у вас є лише повідомлення про те, де ви можете знайти фактичну ліцензію. Це цілком законно. Однак із дійсно короткими ліцензіями, такими як BSD / Apache / MIT / що завгодно, простіше просто включити ліцензію до кожного файлу, оскільки повідомлення про те, де знайти ліцензію, буде майже таким самим, як сама ліцензія.
Це залежить від того, що диктує ліцензія. Наприклад, GPL наказує вам помістити коротке повідомлення у кожен вихідний файл, включити всю ліцензію десь у свій джерело розповсюдження та зробити доступним для кожного, хто отримає копію бінарного дистрибутива.
Якщо ви не згодні з цим, і це ВАШ код, ви можете вибрати більш приємну ліцензію або створити свою власну.
Якщо ваш код буде скомпільований, тож ви просто розповсюджуєте двійковий код, це дійсно не має значення. Тому що, коли ви створюєте двійковий файл, коментарі видаляються до того, як відбудеться процес компіляції. Важливо лише, чи будете ви поширювати фактичний вихідний код або з відкритим, або з закритим кодом. Це типово важливо, якщо ви будете поширювати додаток мовою сценаріїв, яка не компілюється.
Вам це не потрібно для отримання ліцензії, один зовнішній файл буде робити, поки зрозуміло, які файли він охоплює.
Однак для авторських прав ви повинні мати повідомлення про авторські права на кожен фрагмент тексту.
Що я роблю, це помістити дворядковий коментар у верхній частині файлу із зазначенням імені моєї компанії, останньої дати перегляду та назви ліцензії, яку має джерельний файл, а потім в самому низу файлу коротка версія ліцензія.
Звичайно, повна ліцензія (усі вони у випадку декількох ліцензій) завжди додається у вихідні файли та каталоги випусків.