Используется ли какой-либо код JavaScript только для веб-сайтов с открытым исходным кодом?

12

Переписанный вопрос:

Я не задаю вопрос, связанный с JavaScript, но все "клиентские" языки, используемые в Интернете (HTML5, JavaScript, CSS и т. Д.). Если я размещу код JavaScript (то есть под GPL) на своем веб-сайте, и этот веб-сайт доступен для любого человека через Интернет, нарушаю ли я каким-либо образом GPL?

Что произойдет, если я захочу продать клиентский код (HTML, CSS, JavaScript) кому-то? Нужна ли мне другая лицензия в этом случае?

Разве JavaScript (при использовании для веб-сайтов) не всегда с открытым исходным кодом? Когда вы открываете веб-страницу, вы всегда можете прочитать источник.

Нужно ли также выпускать свой код на стороне сервера, если я продаю веб-сайт, содержащий код JavaScript под GPL?

Что произойдет, если этот веб-сайт будет частично доступен (часть бесплатна, а другая требует от вас оплаты), но код GPL (та же часть) используется с обеих сторон веб-сайта?

Что если код GPLed находится только в той части сайта, которая требует от вас оплаты за доступ к нему?

Если я продаю сайт клиенту таким образом:

  1. Я продаю вам (единовременно) весь клиентский код (JavaScript, HTML и CSS)
  2. Я не продаю вам код на стороне сервера, вы арендуете его (я не хочу позволять вам повторно использовать мой код на стороне сервера)

Если я использую код JavaScript под GPL, я что-то нарушаю? (Сайт доступен для всех через Интернет.)

Изменить 2:

Добавлен новый конкретный вопрос:

Что если веб-сайт может работать без серверного кода, я имею в виду, что JavaScript просто вызывает некоторые страницы PHP, содержащие данные в формате JSON. Другие люди могут создать веб-сайт со стороны клиента, но они должны будут предоставить данные. Я думаю, что в этом случае JavaScript вызывает код «PHP» (но не наоборот). В этом случае я нарушаю GPL?

Fire-Dragon-DoL
источник
4
Способность «видеть» код не имеет ничего общего с лицензированием, поэтому JavaScript ничем не отличается от всего остального. Вам лучше всего проконсультироваться с юристом, который является экспертом в этой специальности.
Спарки
Для javascript на веб-сайте, это то, где вы конкретно говорите о коде GPL? т. е. является ли код явно лицензированным по лицензии GPL?
Филипп
Ну, я не продаю какой-либо продукт, я просто спрашиваю об этом, потому что я не очень хорошо понимаю, как он работает. Я специально спрашиваю, не является ли какой-либо язык, относящийся к клиенту, уже не «GPL» (вы загружаете исходный код в любое время, когда посещаете веб-страницу)
Fire-Dragon-DoL
В нетривиальном приложении ваш исходный код - это не только Javascript, но и код на стороне сервера. Вы хотите опубликовать все это для публики? Потому что так говорит GPL. В нем не сказано, что вы можете выпустить некоторые из них и при этом соответствовать лицензии.
Роберт Харви
1
planet.mysql.com/entry/?id=11940
Роберт Харви

Ответы:

3

Когда дело доходит до GPL, единицей выпуска является единица лицензирования.

Если ваш веб-сайт и его javascript - это единая вещь, которая работает вместе, тогда у целого есть действующая лицензия. Если какая-либо часть является лицензией GPL, то действующей лицензией для всей лицензии является GPL. (Это не относится к LGPL, MIT и т. Д.)

Если вы размещаете веб-сайт и ваши клиенты покупают доступ к услуге, то вы не распространяли и не передавали код на стороне сервера, поэтому GPL не имеет значения. (AGPL меняет это и утверждает, что программное обеспечение как услуга должно иметь свой исходный код.)

Javascript, который является частью вашего приложения, автоматически не лицензируется каким-либо образом. Строго говоря, загрузка javascript для запуска в браузере является нарушением авторских прав. Конечно, это глупо. Вероятно, есть подразумеваемая лицензия для запуска кода, но это все.

Если вы используете библиотеку Javascript, то вы должны подчиняться лицензии этой библиотеки. Если эта лицензия GPL, я понимаю, что это означает, что все ваше приложение GPL. Вероятно, поэтому jQuery имеет двойную лицензию - на ваш выбор, MIT или GPL. Без возможности использовать лицензию MIT, она может использоваться только приложениями GPL.

Шон Макмиллан
источник
4

Первое. Вы имеете полное право использовать открытый исходный код в коммерческих проектах, если вы придерживаетесь лицензионных ограничений (то есть, прежде всего, вы оставляете все атрибуты на месте и вносите любые изменения в рамках аналогичной лицензии).

Я понимаю, что GPL является одной из наиболее ограничивающих лицензий, когда речь идет о попытках навязать свои лицензии другим частям проекта. Я не думаю, что это когда-либо проверялось в суде, но обычно я всегда видел интерпретацию, заключающуюся в том, что если код GPL оставить в своих отдельных модулях, на которые есть только ссылки (то есть они рассматриваются как полностью автономные продукты) который вы просто используете), вы должны быть в порядке.

Если вы не уверены в этом и / или хотите быть в большей безопасности, существуют другие менее предписывающие лицензии.

Второе: способность видеть код и права на его использование совершенно разные . Я не могу пойти и снять JavaScript с любого сайта и использовать его только потому, что вижу его. Если я получу доступ к исходному коду Windows, даже по закону, это не сделает его моим. Интернет требует, чтобы было видно много кода, но вы все равно можете лицензировать его так, как хотите.

Третье: с точки зрения лицензии, на которую распространяется действие остальной части сайта, маловероятно, что ваш клиент будет рад заплатить вам за что-то, тогда как вы сделаете это открытым исходным кодом . Помимо основного «почему мы заплатили за то, что вы только что отдали», это, скорее всего, будет иметь последствия для дизайна и брендинга, а также позволит кому-то заимствовать элементы их фирменного стиля. Если вы продаете это им, они захотят, чтобы это было их . Если вы собираетесь продать им кусочки этого, хотя вам нужно сказать им, что там есть OSS, поскольку вы не можете продать это, просто другой код, который использует это.

Четвертое: это очень странная модель, продающая один бит кода и сдающая в аренду другой . Казалось бы, они настолько сильно взаимозависимы, что один в значительной степени бесполезен без другого. Я полагаю, что технически они могли бы взять созданный вами дизайн интерфейса и добавить его во что-то еще, но обычно, когда это происходит, люди просто начинают все сначала.

Учитывая, что эти две части не очень полезны друг без друга, я бы предложил, чтобы они платили за настройку программного обеспечения как сервисного продукта, которым вы владеете. То есть у вас есть весь код, вы просто настраиваете его в соответствии со своей спецификацией (то есть бренд его интерфейс). Делает это намного аккуратнее и проще.

Джон Хопкинс
источник
Теперь у меня есть сомнения: когда я создаю веб-сайт для клиента, кто является клиентом: человек, которому я продаю мой сайт, или пользователи, которые будут к нему обращаться? Если я продаю весь сайт как продукт GPL (с такими источниками) своему клиенту, нужно ли мне публиковать исходный код даже для всех людей, которые переходят на этот сайт?
Fire-Dragon-DoL
@ Fire-Dragon-DoL - Ваш клиент - это человек, который оплачивает ваши счета. Если вы пользуетесь GPL своим кодом, вам нужно сделать его общедоступным для всех, везде , а не только для ваших клиентов и / или пользователей (и каждый имеет право повторно использовать этот код).
Джон Хопкинс
В последней части (ваше объяснение действительно умное, спасибо): Учитывая, что эти две части не очень полезны без каждой из них : в этом случае, если я использую код под GPL, я все равно должен выпустить исходники? Потому что я могу прочитать ваше предложение как «Я продаю вам услугу по настройке программного обеспечения, а не самого программного обеспечения, которое все еще мое»
Fire-Dragon-DoL
Чтобы ответить на ваш последний комментарий: я не уверен, я имею в виду, что GPL говорит, что вы должны выпустить код со своим программным обеспечением, но если человек перемещается по моему сайту, я не даю ему свою программу, он использует мою программу Я думаю, что это по-другому. GPL не говорит, что вы должны выпустить свою программу.
Fire-Dragon-DoL
1
@Jon Вам нужно только дать источник людям, которые получили двоичный файл; не для тех, кто спрашивает. (Конечно, они получают право давать кому угодно, но вы не обязаны это делать.)
Шон Макмиллан,
3

Вообще говоря, если вы используете код GPL где-либо в своем проекте, и вы распространяете свой проект (то есть продаете или отдаете его другим), вы должны полностью опубликовать исходный код вашего проекта, чтобы обеспечить его соответствие лицензия GPL.

Если вы предоставляете свой собственный общедоступный веб-сайт в качестве службы, использующей код GPL на стороне сервера, вы можете быть в порядке, поскольку это не считается перераспределением.

Код Javascript в браузере мне кажется серой областью. Технически вы перераспределяете код GPL в браузер каждого пользователя, что вызывает требование об освобождении вашего собственного источника.

Изменить: чтобы доказать свою точку зрения, теперь я включу текст из FAQ по лицензированию веб-сайта ExtJS. ExtJs - это инфраструктура Javascript, лицензированная по лицензии GPL. Это их интерпретация того, как лицензия работает по отношению к их структуре (курсив мой):

Производные работы
Когда программа вызывает код, лицензированный по GPLv3, эта программа становится производным произведением кода GPL и, следовательно, подпадает под действие лицензии об авторских правах GPLv3. Если программное обеспечение затем «передается» пользователю, GPLv3 требует, чтобы исходный код этой программы также был «передан». «Передача» для веб-приложения запускается, когда пользователь за пределами юридического лица, создавшего приложение, использует приложение.

Определение программной программы
Для программ, созданных с использованием современных веб-архитектур, которые используют удаленные сетевые сервисные интерфейсы для внутренней связи вместо традиционных статических или динамических связей, соответствующая программная программа представляет собой совокупность кода приложения, включая код, выполняемый на Сервер и код выполняются на клиенте при условии, что код сервера является неотъемлемой частью приложения.

Пример
Предположим, что у приложения есть внешний интерфейс (который генерирует веб-страницы, связанные с Ext JS JavaScript), который связывается через JSON / HTTP с бэкэнд-сервисом. Этот внутренний сервис содержит логику утверждения и проверки только для этого приложения. Даже если только внешний интерфейс использует код Ext JS, вы должны учитывать, что комбинация внешнего и внутреннего интерфейсов составляет приложение, и исходный код для внутреннего и внешнего интерфейса должен быть предоставлен конечным пользователям приложения в соответствии с GPLv3, если приложение используется конечным пользователем, который не является частью того же юридического лица, которое имеет лицензию GPLv3 на код Ext JS.

Роберт Харви
источник
2
Это неправильно, GPL не работает таким образом. Включение ссылки на файл GPL'd JS в вывод вашего PHP-кода не делает ваш PHP-код открытым исходным кодом.
user229044
@Mager: см. мое редактирование.
Роберт Харви
Это кажется совершенно неправильным. Что если мой бэкэнд направлен на сторонний сайт, который использует файлы GPL JS? Нужно ли мне тогда открывать исходные тексты всего приложения? Я не думаю, что это будет иметь место в любом суде. Сожалею.
Роб
1

Для веб-сайта с клиентским JavaScript они все еще владеют кодом. Если бы вы просто взяли этот код и использовали его как свой собственный, это, вероятно, было бы нарушением IP. Я думаю, я не знаю, если они не включают лицензию с ним. Есть также проблемы неисполнимости. Поговорите с адвокатом, я думаю, но они, вероятно, не скажут вам ничего полезного.

Проекты со смесью лицензий являются сложными. Код GPL, взаимодействующий с другими библиотеками, предположительно включая серверные серверные части, также требует, чтобы они были GPL. Другие лицензии с открытым исходным кодом менее строгие, как LGPL и лицензия BSD.

И нет, если вы не хотите, чтобы он повторно использовал ваш php-код, это не вписывается в модель GPL. Если вы публикуете свой код под лицензией GPL, вы ОБЯЗАНЫ передать исходный код.

Похоже, вы делаете сайт для кого-то, и вы не хотите раздавать свой код кому-либо. Почему вы вообще смотрите на open source? Если это открытый исходный код, вы отдаете код.

Филипп
источник
Я ничего не продаю в данный момент, я просто спрашиваю об этом, потому что я думаю, что веб-сайт состоит из двух разных частей: веб-сайта клиента и веб-сайта сервера. Первая часть бесплатна, а вторая - нет. Если веб-сайт «с открытым исходным кодом», следует ли выпускать исходный код на стороне сервера? Я нахожу немного трудным, это создаст бедствия из-за безопасности!
Fire-Dragon-DoL
2
Это не правильно. Если частью проекта является GPL, весь проект должен быть выпущен под лицензией, совместимой с GPL (при условии, что она считается одной и той же программой и не может быть разбита на части). А наличие лицензии GPL не мешает вам продавать ее, это просто означает, что вы должны предоставить источнику любые двоичные файлы и не можете ограничивать дальнейшее распространение.
KeithB
Что если веб-сайт может работать без серверного кода, я имею в виду, что javascript просто вызывает некоторые php-страницы, содержащие данные в формате json. Другие люди могут создать веб-сайт со стороны клиента, но они должны будут предоставить данные. Я думаю, что в этом случае javascript вызывает код «php» (но не наоборот). В этом случае я нарушаю GPL?
Fire-Dragon-DoL
@KeithB ACK! Ты прав. Я думал о GTK и SDL, но это LGPL. Благодарю.
Филипп
Да, LPGL - хорошая лицензия, я хотел бы, кстати, понять GPL, потому что ... ну, я думаю, это сложнее понять
Fire-Dragon-DoL