В одном из своих проектов мне захотелось попробовать что-то новое и как-то облагородить админпанель своей CMS. Рассмотрев разные MVC/MVVM JavaScript framework, выбор пал на ExtJS. Я давно обращал на него внимание и знал, что у них есть лицензия для «свободного использование». Зайдя на страницу Sencha ExtJS, я обнаружил, что бесплатная версия предоставляется только на 30 дней, а цена на платную версия не то, чтобы кусается, она готова оттяпать тебе руку по локоть (от $3,855.00 за ExtJS 5). Так куда же делась свободная лицензия на ExtJS.

Некоторые разработчики предположили, что Sencha решили отказаться от бесплатного распространения своих продуктов. Но это не так. Я не сразу обнаружил раздел лицензии на их сайте. А теперь подробно расскажу о них и о том, как получить лицензию GPLv3 (GNU General Public License version 3).

Лицензии


Компания Sencha на свои продукты предоставляет пять видов лицензии: Commercial License, Open Source (GPLv3) License, Trial Licensing, Custom Use Licensing, Extension Licensing.

Commercial License


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

У Sencha можно покупать лицензии только кратно 5, вы не можете купить 1, 3 или 7 лицензий, только 5, 10 и т.д.

Лицензия покупается на компанию и оформляется на разработчика, передать одну лицензию в другую компанию не получится. Если вы делаете приложение на заказ, то ваш заказчик так же должен купить этот пакет из 5 лицензий (которые они помечают как developer). Ещё интереснее, если вы делаете некоторое решение, которое сами продаете (не cloud, а standalone), тогда тот, кто покупает ваш продукт должен еще $3225 (для ExtJS) заплатить Sencha! Это очень круто.

Нет никакого разделения на SDK и лицензию для поставки на продакшен сервер. Всё одно, и стоит одинаково. — kibitzer


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

В услугу «Техническая поддержка и обслуживание» входит:
  • Доступ к текущей документации для программного обеспечения, в том числе учебники и примеры;
  • Доступ(только для чтения) к самой последней версии исходного кода продукта;
  • Круглосуточный доступ на форум технической поддержки;
  • Ограниченная поддержка по Вашим запросам (стоимость запроса — 10 кредитов);
  • Отдельный форум для команды разработчиков (на которых приобретены лицензии);
  • Поддержка и консультация по телефону (стоимость — 25 кредитов за 30 минут). Только на английском языке;
  • Удаленное решение проблемы (стоимость запроса — 25 кредитов);
  • Срок реагирование на запрос 48 часов.

Кредиты — это внутренняя «валюта» для оплаты Технической поддержки. В комплект на 5 разработчиков входит 175 кредитов.

Custom Use Licensing


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

Extension Licensing


Лицензия для создания коммерческого расширения ExtJS, Sencha GXT, Sencha Touch, если расширение добавляет значительную ценность продукта и отличается функциональностью.

Для использование данной лицензии необходимо зарегистрироваться и выполнить ряд условий:
  • Каждый разработчик, используя свое расширение должен быть обладателем коммерческой лицензии соответствующего продукта;
  • Расширение не должно быть строителем приложений или сайт-строитель;
  • Расширение не должно быть с той же функциональностью или потенциально конкурентным с продуктом Sencha;
  • Вы должны включить логотип «Sencha» на всей документации, поставляемой с расширением;
  • Лицензионное соглашение конечного пользователя (EULA) для расширения, должны быть представлены и утверждены Sencha.


Trial Licensing


Лицензия, действующая в течении 30 дней и позволяющая преобразовать ваше программное обеспечение к коммерческой лицензии. Так как разработанный продукт под лицензией GPLv3 не возможно перевести по коммерческую лицензию. При разработке необходимо соблюдать все требования коммерческой лицензии. Ваш продукт запрещено публиковать и распространять с этой лицензией.

Open Source (GPLv3) License


Это бесплатная лицензия с открытием исходных кодов, но с условием, что ваш продукт будет предоставляться по одной из лицензий свободных программ, совместимых с GPL. Так же вы можете вносить изменения в исходный код продукта Sencha. Получить её можно здесь.

Программное обеспечении Sencha


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

Название Commercial License Custom Use Licensing Extension Licensing Trial Licensing Open Source (GPLv3) License
Ext JS $3,225/5
$12,495/20
GXT $4,635/5
$18,075.00/20
Touch $3,855/5
$15,105/20
Architect $1,945/5
$7,595/20
Complete $4,825/5
$18,895/20
Touch Bundle $1,395/5
$4,995/20

Комментарии (33)


  1. variable
    19.06.2015 23:23
    -1

    Возможно ошибаюсь, но мне кажется с GPLv3 работает иначе.
    Открывать свой код вы обязаны только если были внесены изменения в используемые библиотеки лицензированные GPL.


    1. medved6216 Автор
      20.06.2015 01:17
      +1

      Одно из фундаментальных требований GPL состоит в том, что когда вы распространяете приложение среди пользователей, вы должны предоставить им также способ получить исходный код. По GPLv3 я должен предоставить код только для своего программного продукта без библиотек Sencha(при условии, что я не вносил в них изменения).

      Основы GPL
      Никто не должен быть ограничен программами, которыми пользуется. Есть четыре свободы, которые должны быть у каждого пользователя:

      • свобода применять программу в любых целях
      • свобода дорабатывать программу под свои нужды
      • свобода обмениваться программой со своими друзьями и соседями
      • свобода обмениваться изменениями, которые вы внесли

      Пользователь должен иметь возможность собрать(воспроизвести) мое ПО у себя на компьютере(сервере), а также внести изменения на свое усмотрение.


      1. Borz
        20.06.2015 03:40

        распространяется ли данная лицензия при этом и на серверную часть кода? или только на клиентскую (ту, что в браузере пашет)?


        1. Aclz
          20.06.2015 04:12

          На Ext серверный код не пишется.


          1. Borz
            20.06.2015 04:34

            я к тому, что считается это единым целым или нет.
            т.е. если я сделаю админку на ExtJS, JS-код у меня для пользователя будет доступен — бери да скачивай скриптики. Но при этом серверную часть я не публикую.
            Попадает ли такая схема под GPL лицензию от Sencha? Ведь по сути, без серверной части и клиентская не будет работать — откуда она будет все данные тащить?


            1. medved6216 Автор
              20.06.2015 08:26
              +1

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

              Совместимость лицензий


              1. merlin-vrn
                20.06.2015 08:35

                А где расположена MIT в этой схеме?


                1. medved6216 Автор
                  20.06.2015 09:26

                  MIT — x11 лицензия


                  1. werktone
                    20.06.2015 12:33

                    Обычно под MIT подразумевается Expat.


                    1. medved6216 Автор
                      20.06.2015 16:37

                      ПО под лицензией MIT включает в себя Expat, Metakit, PuTTY, Mono, Ruby on Rails,Twisted, JQuery и, конечно же, X Window System (X11), для которой она и была написана.


                    1. medved6216 Автор
                      20.06.2015 16:48

                      Да, почитав подробнее лицензию и комментарии, соглашусь с Вами. Я отношусь видно к той части разработчиков, которые считают MIT — X11, это распространенное явление.


              1. Borz
                20.06.2015 09:34

                собственно, я к тому и спросил, чтобы «для истории» тут сей нюанс засветить, а то народ часто разделяет эти стороны (как например Aclz) и думает, что лицензия только на клиента требуется.


                1. kibitzer
                  20.06.2015 10:58

                  Вполне можно разделять, если клиент можно представить как отдельный продукт. Вы открываете клиент, а реализацию сервисов можно сделать уже иначе и на отличной от вас платформе. К примеру, почтовые же клиенты отделены от серверов.

                  Если у вас нельзя отделить клиентскую часть, как законченный продукт, ну к примеру сервер у вас сам генерирует страницы, а из extjs вы используете отдельные интерфейсных компоненты, тогда надо открывать всё.


            1. Aclz
              20.06.2015 11:26

              Попадает ли такая схема под GPL лицензию от Sencha? Ведь по сути, без серверной части и клиентская не будет работать — откуда она будет все данные тащить?

              Насколько могу судить, будет работать или нет — не является критерием. Критерий — распространяется ли серверная часть вместе с клиентской в рамках одного и того же продукта.


              1. kibitzer
                20.06.2015 11:40

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


                1. Aclz
                  20.06.2015 12:19

                  Вот вы сами говорите:

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


                  1. kibitzer
                    20.06.2015 19:42

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

                    Тут даже интереснее, многие критикуют Sencha за двойное лицензирование, по сути у них есть ExtJS под лицензией GPL3, и есть ExtJS со своей проприетарной лицензией с совершенно другими условиями распространения. Получается, у них есть одна и та же библиотека, если вы им не платите, то ваше приложение написанное с ей использованием должно распространяться только под GPL3, а если заплатите, то уже можете распространять, как захотите. Довольно свободная интерпретация лицензии :)


            1. Goodkat
              20.06.2015 18:03
              +1

              бери да скачивай скриптики
              Это не исходный код, это «скомпиллированный», даже если в случае JavaScript файлы могут совпадать с исходными.

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

              Например:
              Я программист, делаю для заказчика веб-приложение, которым будут пользоваться его клиенты.
              Кто кому должен открывать исходный код веб-приложения, если оно написано на ExtJS под GPLv3-лицензией?
              По GPL-лицензии разработчик — пользователю. Но кто тут пользователь? Заказчик или его клиенты?
              В паре разработчик-заказчик пользователь приложения — это заказчик, он получает от меня весь проект в исходных кодах, тут проблем нет.
              Но клиенты заказчика — это тоже пользователи приложения, должны они тоже иметь возможность получить исходные коды?


              1. kibitzer
                20.06.2015 20:01
                -1

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

                Но хуже другое, в том мире, где мы живем, важна интерпретация, которую Sencha дает, так как, если они захотят судиться — то ни к чему хорошему это не приведёт (тут конечно зависит, важен ли вам западный рынок и будут ли с вами связываться, скорее всего нет). А если вам важен американский рынок и ваш продукт достаточно крупный, чтобы с вами судиться, то скорее всего вы купите их коммерческие лицензии :) лишь бы не тратиться на суды и юристов.

                Sencha очень вольно интерпретирует лицензии. На них активно «наезжают» пользователю, и я боюсь это приведёт к тому, что они просто перестанут новые версии под открытыми лицензиями выпускать.


                1. Goodkat
                  20.06.2015 21:18

                  В общем, следующий раз лучше выбирать dojo, если к веб-приложению будут иметь доступ люди извне :)


                1. merlin-vrn
                  20.06.2015 22:10

                  Если я делаю закрытую систему для использования двадцатью сотрудниками заказчика? Все исходные коды я ему и так по условиям договора отдам.

                  А вот что касается «перестанут выпускать». Почему нельзя взять исходник под GPL3 и форкнуть? Ну, будет оно называться не ExtJS, и хрен бы с ним.


                  1. kibitzer
                    20.06.2015 23:49
                    -2

                    Да, но GPL3 подразумевает, что и все пользователи вашего заказчика получат её по этой лицензии (если заказчик её не нарушает), и что они с ней могут сделать всё, что захотят (в рамках лицензии).

                    Взять и форкнуть — это один из мифов опенсорса. Каждую версию ExtJS форкают, всегда с громкими словами про то, что будут развивать и что настанет коммунизм. Но чтобы развивать или хотя бы просто поддерживать такой проект, как ExtJS нужна очень большая команда энтузиастов, а не пара коммитов за месяц. И разработчики ExtJS прекрасно это понимают, поэтому и держат опенсорс решение (не боятся, что кто-то форкнет и действительно составит им конкуренцию).


              1. coh
                20.06.2015 21:09

                Клиенты заказчика пользуются услугой по сети это больше похоже на SaaS в данном случае:

                providing access to use your software over a network (like in SaaS) is not considered distribution

                Это не считается распространением в GPLv3.
                А вот AGPL накладывает ограничение и на SaaS


                1. coh
                  20.06.2015 21:53

                  Кстати, верно подмечено выше, вопреки общепринятому представлению GPL, Sencha трактует этот момент в свою пользу как передачу, стоит ли в случае чего с ними судиться стоит 100 раз подумать.


  1. kibitzer
    20.06.2015 20:13

    Дополню статью, точнее поясню. У Sencha можно покупать лицензии только кратно 5, вы не можете купить 1, 3 или 7 лицензий, только 5, 10 и т.д.

    Лицензия покупается на компанию и оформляется на разработчика, передать одну лицензию в другую компанию не получится. Если вы делаете приложение на заказ, то ваш заказчик так же должен купить этот пакет из 5 лицензий (которые они помечают как developer). Ещё интереснее, если вы делаете некоторое решение, которое сами продаете (не cloud, а standalone), тогда тот, кто покупает ваш продукт должен еще 3тыс.$ заплатить Sencha! Это очень круто.

    Нет никакого разделения на SDK и лицензию для поставки на продакшен сервер. Всё одно, и стоит одинаково (3225$).


    1. medved6216 Автор
      20.06.2015 20:38

      Дополнил статью Вашим комментарием. Спасибо.


    1. kibitzer
      20.06.2015 21:32

      Кто комментарий отминусовал, поясните, если не сложно. Возможно у вас есть другая информация, мне это важно, так как использую в работе ExtJS (как в компании, так и в своих проектах). Что я написал — это из общения со службой поддержки и их постам на официальном форуме.

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

      Хорошо, что если у вас была куплена лицензия раньше (до того, как они перешли на пэки по 5 штук), то вы можете покупать новые версии (по сути апдейтить лицензии) тем кол-вом, которое раньше было куплено, т.е., если у вас была куплена 1 лицензия ExtJS 4 в 2013 году, то можно купить/продлить только 1 лицензию на ExtJS 5 (во всяком случае в прошлом году так было, думаю с 6ой так же осталось).


      1. coh
        20.06.2015 21:44

        Все верно сказано. Правда есть у них одна расплывчатая оговорка:

        In some cases, you can transfer your license to the third party,
        в заметке для Consultants and Software Integrators


  1. coh
    20.06.2015 21:25

    Sencha начали жадничать и закручивать гайки, увеличивать стоимость лицензии. Становится накладно иметь дело с их продуктами в форме Commercial License. Про OEM лицензию маленькие стартапы теперь вовсе могут забыть. Печально, все так хорошо начиналось, на 3,4 верси можно было купить лицензию за $300-$400 без поддержки на одного разработчика.


  1. geroy
    30.06.2015 13:27

    Ещё интереснее, если вы делаете некоторое решение, которое сами продаете (не cloud, а standalone), тогда тот, кто покупает ваш продукт должен еще $3225 (для ExtJS) заплатить Sencha!

    Это Вы где нашли в лицензии, подскажите?


    1. medved6216 Автор
      02.07.2015 11:25
      +1

      Скорее всего автор имел ввиду cloud — это решение на своем сервере для массы (приобретают услугу по пользованию приложением). А standalone — это на сервере заказчика(приобретают приложение).
      В лицензии написано про этот пункт:

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


    1. coh
      02.07.2015 17:38
      +1

      Если вы являетесь Vendor и продаете конечный продукт ( софт который не используется для разработки и т.п), клиент использует ваше решение без внесения модификаций, то клиент не должен покупать лицензию. Так отвечала техподдержка несколько раз в 2010,2012,2015 годах. После этой статьи задавали вопрос еще раз.


      1. geroy
        03.07.2015 10:49

        Я тоже так понял из английского соглашения.