Нашёл код на CSS по лицензии MIT. Лицензию указал в index.php и в a123.css и в 1q.js. У меня также есть примерно 10 файлов чисто серверных 1.php, 2.php их не видно когда смотришь код сайта. В этих файлах я должен указать MIT лицензию?
- 12,320
3 Answers
Нет. Если вы не собираетесь лицензировать ваш код под лицензией MIT, то и не следует добавлять текст лицензии в файлы. Файлы вашего собственного авторства вы можете распространять под любой подходящей вам лицензией, так и не распространять вовсе.
Например, если вы используете какие-то файлы в частях проекта под лицензией MIT, то вы не обязаны и все остальные файлы проекта распространять под этой лицензией. Лицензия MIT распространяется только на то, где она указана исходным автором файла.
Это же означает что в тех файлах, которые вы взяли откуда-то на условиях лицензии MIT, должен быть текст лицензии и отметки об авторских правах.
Если же, напротив, вам нужно чтобы файлы вашего авторства были под лицензией MIT, то лицензия просит включить её текст прямо в файле. Процитирую:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Под "this permission notice" подразумевается собственно весь текст лицензии, а под "substantial portions" понимаются файлы с исходным кодом проекта.
(Для сравнения, лицензия Apache 2.0 вместо всего текста лицензии, очень длинного, требует добавления специального заголовка, и тоже к каждому файлу. Аналогичное требование к заголовкам всех файлов есть у GPL.)
Более конкретно касаемо вашей ситуации. Вы хотите взять CSS из примера, который лицензирован под MIT. С самим кодом CSS всё понятно: добавляете заголовок с текстом лицензии и вот, требования лицензии выполнены. Означает ли что и HTML тоже должен идти с текстом лицензии? Нет. Например, если вы используете Bootstrap с лицензией MIT, то должен ли код, которые использует классы Bootstrap, быть тоже лицензирован под MIT? Нет. В этой ситуации мы можем считать что HTML подаётся лишь как пример использования, а не как самостоятельный какой-то материал, требующий лицензирования.
Другой вопрос и ещё статья с обсуждением особенностей лицензирования.
- 12,320
-
Допусти хочу вставить такой код в сайт значит нужно указать mit только в html и css? а например js не нужно указывать? https://codepen.io/tarynewens/pen/rEqONM – Сергей Александров Jul 11 '19 at 06:25
-
Если JS вы сами написали, то лицензию MIT нет необходимости указывать. Вы - автор, это ваш выбор, хотите - укажите, а хотите - нет. Но нужно иметь ввиду если вы укажите лицензию MIT, то это даёт право любому открывшему этот .js файл взять его и использовать как это разрешает лицензия, то есть почти как угодно. Если же лицензии нет, то по умолчанию подразумевается что код брать нельзя. – sanmai Jul 11 '19 at 06:27
-
Тут вы наверное ошибаетесь,так как например у World of Tanks 70 лицензий mit и я сомневаюсь ,что мы можем взять и скопировать их игру.Хотел написать так Portions of this software are copyright: потом перечислить все лицензии mit которые есть на веб сайте. – Сергей Александров Jul 11 '19 at 06:30
-
Если у них код под лицензией MIT, то вы можете взять этот код и скопировать, соблюдая требования лицензии MIT. Насколько я вижу у них нет таких указаний в исходном коде, значит - это не код под лицензией, и брать его без разрешения нельзя. – sanmai Jul 11 '19 at 06:31
-
Допустим 200 кода css написано мной 100 кода взято с лицензией mit,все кто зайдут в мой css имеют право скопировать эти 100 кода по лицензии mit.Мои 200 они не имеют право трогать? – Сергей Александров Jul 11 '19 at 06:35
-
Это очень хороший вопрос. Вполне можно решить что раз текст лицензии в файле упомянут, то значит она распространяется на всё в файле. Чтобы в такие неприятные ситуации не попадать лучше не мешать кофе с чаем. – sanmai Jul 11 '19 at 06:36
-
Давайте продолжим обсуждение в чате. – sanmai Jul 11 '19 at 06:38
-
Всё же во имя справедливости не могу не отметить за пределами чата (чтобы все видели), что утверждение «под "substantial portions" понимаются файлы» является вашей собственной ничем не обоснованной выдумкой. Термин «Software», используемый в лицензии MIT, совсем не обязательно означает ровно один файл, а в ответе, на которую ведёт ссылка «понимаются файлы», ничего про обязательность данного действия не написано. Помещение текста лицензии прямо в файл — не более чем мера предосторожности для минимизации вероятности возникновения путаницы. – andreymal Jul 12 '19 at 15:09
-
А вот Google, похоже, иногда не заморачивается даже упоминанием лицензии и верит на слово комментариям в пулл-реквестах. Надо бы как-нибудь создать судебный прецедент) – andreymal Jul 12 '19 at 15:32
-
"А вот N тоже курит и считает, что рак легких его обойдет стороной. И G тоже, и F тоже. Раз они так считают, значит у них есть основания, и значит вы не правы, утверждая об опасности курения!" - вы понимаете слабость своего аргумента? Давайте не продолжать. – sanmai Jul 13 '19 at 07:23
-
@sanmai хитро вы решили не продолжать, лишив меня уведомления об ответе, чтобы я увидел его лишь спустя месяц :) В отличие от рака легких, юридические вопросы полностью контролируемы людьми; хотели бы — засудили бы их уже давным-давно. Раз не засудили — или это никому (ещё) не надо (и это очень странно, ведь засудить гугл это было бы круто, лол), или ваша интерпретация неверна – andreymal Aug 16 '19 at 09:59
-
Не очень понимаю о каком "лишении уведомления" мы говорим. Лицензия MIT вообще никогда не была проверена в суде, так что аргумент "засудили бы" тут ни к селу, ни к городу. Не понимаю вообще почему я переписываюсь с вами если вы даже простейший факт-чекинг не можете сделать перед тем как написать коммент. Про приписывание мне волшебных способностей скрытия уведомлений я уж и не говорю. – sanmai Aug 17 '19 at 04:10
У меня сделано так:
Сайт написан на Java, фронтенд на JS. Исходный код выложен на GitHub, и об этом есть информация в специальном разделе.
Лицензия MIT приложена только один раз, но к каждому репозиторию, связанному с сайтом, т.е. в каждом Java-файле лицензии нет, но основной пакет, в котором лежат все файлы или наследуют его, повторяет название самого сайта, с этого начинается каждый файл Java.
Вообще рабочая версия сайта должна быть обфусцирована или как минимум минифицирована, а код уж если выкладывать, то разделить по разным репозиториям и по одной лицензии на каждый.
Код лицензии сперва на английском, как в оригинале, а затем на русском, чтоб понятно было. Перевод из википедии - лицензия MIT
Код, который не мой, идет без обфускации и минификации в том виде, в котором я его нашел в интернете, т.е. в моем случае это сторонние библиотеки, которые и так минифицированы, а в шапке лицензия.
-
Комментарии не предназначены для расширенной дискуссии; разговор перемещён в чат. – A K Jul 11 '19 at 23:45
Если правильно понял, вы используете CSS, выпущенный под лицензией MIT, а PHP код написан вами, то есть является вашей интеллектуальной собственностью.
В таком случае, MIT лицензия должна остаться в файле CSS, если он подключается в шаблоне. Либо можно вынести текст лицензии в файл LICENSE.txt, а в файле CSS дать ссылку на него. Например, так сделано в CodeMirror - текст лицензии вынесен в отдельный файл.
Если вы собираете свою систему из нескольких заимствованных частей (например, трех библиотек), расположите их в отдельных каталогах (трех), и в каждый положите свой LICENSE.txt с текстом той лицензии, под которой выпущена каждая (получится три файла).
Например, при установке библиотек через Composer, это так и происходит: создается каталог vendor/, в нем - библиотеки, у каждой библиотеки свой каталог и своя лицензия. Вот пример, лицензии я пометил звездочкой:
.
├── codemirror
│ ├── addon
│ ├── keymap
│ ├── lib
│ ├── LICENSE *
│ ├── mode
│ └── theme
└── tinymce
├── changelog.txt
├── js
├── langs
├── license.txt *
├── plugins
├── skins
├── templates
├── themes
└── tinymce.min.js
А свою интеллектуальную собственность выпускайте под своей лицензией, MIT предполагает такой вариант использования.
Тот, кто получит исходный код всей этой системы, сможет найти и прочитать лицензии и на CSS (при изучении исходного кода стилей), и на ваш программный продукт (просматривая PHP).
В PHP это можно сделать так (подставьте свои данные):
/**
* @package Joomla.Administrator
* @subpackage Template.hathor
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
Либо так:
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
- 6,307
-
Нет никакой необходимости заморачиваться каталогами и файлами с лицензией в них. Достаточно указать текст лицензии в самом файле, или, в случае лицензий Apache и GPL, специальный заголовок. Это всё, больше ничего не нужно. – sanmai Jul 11 '19 at 06:12
-
@sanmai, да, необходимости нет, но и лицензия не запрещает это делать. обновил ответ – Total Pusher Jul 11 '19 at 06:20
-
как понять из отдельных частей? у меня сайт на хостинге там есть папки получается в каждой папке нужно указать mit? файл LICENSE.txt не будет видно в коде старнице – Сергей Александров Jul 11 '19 at 06:22
-
@ДанилВасильев, про отдельные части я имею ввиду следующий кейс: допустим, позаимствовали три библиотеки: для работы с HTTP, для парсинга, и для генерации RSS. У всех - разные лиценции. Тогда разнесите их код по разным каталогам (получится три), и в каждый положите ту лицензию, под которой выпущена данная библиотека. Получится три файла лицензии.
файл LICENSE.txt не будет видно в коде старнице- а и не должно. Лицензия должна быть в исходном коде, все свободное ПО крутится вокруг идеи распространения исходного когда, а не результате его работы. – Total Pusher Jul 11 '19 at 06:40 -
у меня закрыть исходный код,посмотреть можно только css,html и js – Сергей Александров Jul 11 '19 at 06:46