Monday, December 04, 2006

А Вы знаете, что нельзя продавать софт под GPL-лицензией?

Последняя моя статья в «Компьютерре» была посвящена невольному пиратству – когда Вы покупаете программный продукт, в котором включен нелицензионный компонент, например, сервер СУБД или фреймворк, и не знаете, что неявно нарушаете лицензию на его использование.

Статья посвящена вопросам пиратства, а не особенностям лицензирования – когда ее прочитаете полностью, это станет ясно.

И в этой статье (на данный момент ее нет в открытом доступе, лишь немногие читали только в бумажном варианте) огромное число вопросов и просто криков, а также жалоб на Компьютерру, вызвал вот этот кусок из раздела по рекомендациям:

Задавайте вопросы поставщикам; если это коробка -- напишите им и поинтересуйтесь включенными в состав продукта компонентами, для которых может понадобиться лицензия (кстати, лицензии должны быть на все продукты, даже на open source, в виде файлов или манифестов). Если это свободные продукты, проверьте, чтобы они были не под GPL-лицензией -- иначе поставщик нарушает её, так как продукт коммерческий.

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

Без бумажки софт ...?

Самыми первыми всполошились линуксоиды: как же так, выходит нельзя продавать Linux, который выпущен под GPL? Что, Novell, ASPLinux и т.д. нарушают GPL, продавая свои продукты с включенным Linux?

Сыр-бор разгорелся из-за толкования положений #0 и #1 GPL-лицензии (весь флейм, еще не утихший, можно почитать здесь: http://linuxforum.ru/index.php?showtopic=29547&st=0).

Лицензии GPL:
http://www.gnu.org/licenses/gpl.html

На русском примерный неплохой [неофициальный] перевод
http://www.infolex.narod.ru/gpl_gnu/gplrus.html

Пункт #0 GPL (в моей интерпретации, чуть ниже об этом disclosure) говорит о «прилипчивости» GPL – если вы включили в свою программу GPL-код (исходники), и даже просто используете готовое GPL-приложение у себя, то Ваша программа тоже должна быть под GPL – т.е. нужно открыть ее коды и нельзя продавать лицензии на ее использование. Способ использования, приводящий к «GPL-зависимости», точно не определен в общем случае. Но для MySQL, упоминаемого в статье, он определен лицензией MySQL – если коротко, то если для личного использования или в GPL-ПО, используйте GPL-лицензию для MySQL, иначе – покупайте коммерческую:

http://www.mysql.com/company/legal/licensing/commercial-license.html

А пункт #1 GPL определяет, в частности, что разрешается (you may) брать деньги за услуги по записи на носитель, за услуги по трансферу и/или техподдержку.

Так вот, основной вопрос, вынесенный в заголовок поста - «Можно ли продавать софт с GPL-включениями»?

Слова, слова, слова

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

Более того, многие, похоже, путают понятия «дистрибутив», «носитель с дистрибутивом» и «программное обеспечение» и «лицензия на право использования программного обеспечения».

Неявно, когда говорят «я купил дистрибутив SuSe» подразумевают «Я купил носитель (CD, DVD, etc) с дистрибутивом SuSe».

Далее, когда говорят «Я купил программное обеспечение (софт)» можно предположить, что это означает либо «Я купил лицензию на право использования ПО», в случае проприетарного ПО, либо «Я купил носитель с дистрибутивом открытого ПО».

Весь вопрос в том, включать ли «носители с дистрибутивами» в множество «коммерческие программные продукты», о которых говорится в моей статье?

Как мне было верно указано, необходимо было точно указывать «коммерческий» = «проприетарный», чтобы утверждение статьи (и заголовка данного поста) стало 100% верным.

Иначе, если под "софтом" понимать в том числе «носитель с записанной на нем информацией», то продавать этот продукт можно, без сомнения. :)

Осел и прапорщик

Особенно интересен вопрос, пираты ли Novell и другие. Несмотря на очевидность ответа «Нет, не пираты!», стоит поинтересоваться «почему», и в чем разница между «продажей софта» от Microsoft, Borland и т.д. (то бишь проприетарного) и продажей Linux и другого OSS ПО.

Покупая медийный комплект, содержащий ПО под GPL, вы платите только за физическую составляющую: носитель, полиграфию, коробку и т.д., и, конечно, можете использовать его сколько угодно раз (т.е. легально поставить Linux с этого диска на N серверов).

Покупая лицензию на проприетарный софт, вы можете вообще не получить никакого носителя и даже электронного дистрибутива (например, при «легализации» уже давно использующихся Delphi вы получите только бумагу, подтверждающую Ваше право пользоваться ПО). Лицензия – это право на использование проприетарного программного обеспечения, и она никак не связана с физическими носителями (они не обладают сакральной ценностью и не делают лицензионной каждую установку, произведенную с них).

То есть «продажа софта» в применении к этим двум вариантам сильно отличается по существу. Брать деньги за носители/поддержку, или за лицензии на использованию - вещи абсолютно разные.

По поводу моей интерпретации

Вообще, есть ли у кого-нибудь комментарии по применению GPL? «Прилипчивость» лицензии, выраженная в п.1 словами

....The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language...

насколько она сильна? Моя интерпретация прилипчивости GPL лицензии максимально жесткая - используешь GPL-компоненты, значит весь софт становится под GPL, такая же, как и у MySQL, но MySQL молодцы, определили все явно, но есть же еще куча софта под GPL.

Если опустить очевидные случаи, когда включили в программу иконку под GPL и вся программа стала под GPL (о чем предупреждают юристы ), то возникает вопрос – как определить степень связанности GPL-модуля и Вашего приложения. Допустим, сервер баз данных под GPL, а клиент нет? Или еще хуже – вебсервер под GPL, а браузер нет? Как четко определить, основывается ли программа на GPL или просто «рядом проходила»?

Если основываться на преценденте MySQL, то все программы для GPL-лицензированных СУБД должны быть под GPL (а если нет, то нарушается лицензия GPL)?

Конечно, вопрос может и чисто академический, когда лицензии на самое что ни на есть проприетарное ПО тырят почем зря совершенно осознанно, но мы же должны что-то делать? :)