Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 4893470220568296.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 1240
Просмотры материалов : 4496814
 
Лицензирование личной программы со сторонними библиотеками (11.08.2013). Печать E-mail
2013 - Август
11.08.2013 16:39
Save & Share

Это - расширение статьи о лицензировании личного ПО. Усложняем задачу: пусть для программы "Hello, world" требуется подключение сторонних библиотек. Это наиболее неопределенная тематика, т.к. некоторые пункты лицензий конфликтуют между собой.

Итак, в предыдущей статье ясно: для "Hello, world" без сторонних библиотек минимально необходимо только 2 вещи: Windows с пробным периодом и лицензированная среда программирования. Включение сторонних библиотек порождает разные пути лицензирования "Hello, world".

Если библиотека существует сама по себе (например WIAAut.dll) - нужно ознакомиться с лицензией на ее использование. Найдя эту лицензию в архиве, переводим и вытаскиваем главное:
- "Microsoft grants you a limited, nonexclusive license to reproduce and distribute Redistributable Code in object code form only, subject to your compliance with Section 3". Это значит, что библиотека относится к вторично распространяемому коду (redistributable code/software). Это ключевой момент, что библиотеку можно без изменений включать в проект;
- далее в том же лицензионном соглашении указаны дополнительные условия: оставлять библиотеку без изменений, внести упоминание о ней в форму в исходном коде (комментарий), запрещено получение прибыли (продажа и прочее). Это ограничивает применение библиотеки, но условия есть условия;
- есть материал, косвенно отражающий лицензионное соглашение данной библиотеки: "Developers using wiaaut.dll are granted license to freely redistribute the library with their application as detailed in the redist.txt file inside the zip".

Обращу внимание на сам файл Redist.txt: это очень важный файл. Если этот файл существует для библиотеки или продукта - его нужно смотреть дополнительно к соглашению. Если там просто написано название библиотеки - это стандартный вторично распространяемый код. И разработчик обязан при прикреплении такой библиотеки к своему проекту создать файл Redist.txt разместить в своем проекте EULA.txt и Redist.txt в неизменном виде для каждой библиотеки (пока оставляю так). Запись о библиотеке WIAAut.dll будет выглядеть 2 строками: "REDISTRIBUTABLE CODE  - STANDARD:" и "WIAAut.dll". Я бы ещё через черточку подписывал, кому принадлежит библиотека и в состав какого продукта входит.
Разобрался окончательно. Файлы EULA.txt и Redist.txt, при неизменном содержимом и названии, для каждой библиотеки - просто должны храниться на ПК разработчика (в папке исходников, например). Эти файлы - прерогатива лицензиара, а не лицензианта. Также, как и ваша программа содержит только свое лицензионное соглашение, Redist.txt (только в том случае, что вы согласны вами написанные библиотеки подарить миру) - и всё.

Теперь представим, что библиотека входит в состав какого-либо ПО. Возьмем Visual Basic 6:
- читаем EULA.txt: "Redistributable Code-Standard. Microsoft grants you a nonexclusive, royalty-free right to reproduce and distribute the object code form of any portion of the SOFTWARE PRODUCT listed in REDIST.TXT ("Redistributable Code"). NOTE: certain Redistributable Code may be subject to the restrictions in Section 2.3 if it is also identified as "Limited Use Redistributable Code."". Неисключительная лицензия лучше, чем исключительная: она дает возможность не только использовать вторично распространяемый код VB6, но и самостоятельно лицензировать его в составе своего ПО на тех же условиях (а это деньги...);
- открываем Redist.txt. Там представлены несколько типов вторично распространяемого кода: ограниченное использование (Limited Use), расширенное (Extended Use), стандартное (Standard); а также перечислены примеры кода, которые так же можно использовать;
- что следует из всего этого. Представим, мне для проекта необходимо 2 библиотеки: ComCTL32.ocx и ComDLG32.ocx. Смотрю Redist.txt: расширенное использование. Шикарно: значит, для использования этих библиотек в своем ПО (в т.ч. платном) мне достаточно иметь только лицензию на VB6. О ComCTL32.ocx, в частности, сказано здесь.

А есть и третий вариант: библиотека входит в состав... Windows:
- возьмем лицензионное соглашение Windows 7: запрещается "использовать компоненты программного обеспечения для работы с приложениями, не предназначенными для работы с этим программным обеспечением". А вот и двоякие формулировочки пошли. С одной стороны, нельзя использовать компоненты Windows, ведь они писались именно для Windows. С другой стороны, эти библиотеки используются моей программой только в Windows ("приложение предназначено для работы с этим Windows"). Программа полностью привязывается к ОС, и Microsoft это выгодно. Пока жду ответа от их техподдержки; но я задавал вопрос уже 3 раза - и получал только невнятные ответы; зато узнал адрес президента российской Microsoft - напишу ему официальное письмо, если что.

Отдельно стоит сказать о файле .manifest, .config и аналогичных. Пишутся они на языке XML вами лично, либо представляют собой переработанные варианты каких-то уже написанных файлов. Так как в процессе написания эти файлы изменяются очень сильно - никаких лицензий для их включения в программу не требуется.

И о взаимодействии Windows со средой программирования. Runtime-библиотека msvcrt.dll является частью ОС Windows, и лицензия Windows запрещает ее отделение от себя. Но в каждой версии Microsoft Visual C, как средства разработки ПО, есть свои собственные версии этой библиотеки (типа msvcr90.dll и аналогичные), которые можно свободно распространять вместе со своим ПО, разработанном в этой, легально приобретенной среде.

(добавлено 12.08.2013): копирую пользователя Grand_Ross с форума Microsoft о компоненте SysMon.ocx:
"Увы! Но как это не печально, с Вами не согласен Гражданский Кодекс РФ. :(
Засада в ст. 1235, в которой говорится: "...Лицензиат может использовать результат интеллектуальной деятельности или средство индивидуализации только в пределах тех прав и теми способами, которые предусмотрены лицензионным договором. Право использования результата интеллектуальной деятельности или средства индивидуализации, прямо не указанное в лицензионном договоре, не считается предоставленным лицензиату...", а в комментариях к этой статье говорится: "...Если тот или иной способ использования результата ИД или СИ прямо не предусмотрены в ЛД, то лицензиат не вправе использовать результат ИД и СИ такими способами. Это же относится к виду права использования результата..."; "... к числу существенных условий ЛД относятся не только условия, прямо перечисленные в ст. 1235, но и условия, на включение которых в ЛД настаивает хотя бы одна из сторон (см. коммент. к ст. 432 ГК)...". Гражданский Кодекс РФ предусматривает, что если по существенным условиям не достигнуто соглашение, то нельзя считать договор заключенным, со всеми вытекающими из этого юридическими последствиями..."
Т
аким образом, беда в том, что именно Вам придется доказывать Законность использования любого из компонентов, автором которого Вы  не являетесь. Причем, в случае судебного разбирательства, любое двоякое толкование, либо отсутствие явного разрешения, причем на использование именно в тех целях, какие Вам необходимы, будет однозначно рассматриваться как запрет. Поскольку об этом прямо говорится в ГК.
Что касается Ваших рассуждений о SysMon.ocx, то попробуйте объяснить себе как Вы ответите на вопрос судьи о том, зачем Вы включаете в состав собственного дистрибутива компонент, который и так есть там, где Вы планируете его использовать? Думаю, Вы прекрасно понимаете, что для судьи ответ будет очевиден. Ведь достаточно хорошо известно, что в разных выпусках и редакциях Windows могут содержаться разные версии тех, или иных компонентов, обеспечивающие разный функционал. Поэтому перенос компонентов и запрещен лицензионным соглашением.
Резюмируя все выше сказанное, можно посоветовать включать в свой дистрибутив только те компоненты, Законность использования которых можете доказать. Это может избавить от очень серьезной головной боли в будущем.".

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

Обновлено ( 30.12.2018 15:39 )
 
 

Последние новости


©2008-2019. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).