Немного ликбеза.
Для более полного понимания того, что будет изложено далее, напомню, что такое исходный код для программы ЭВМ.
По определению, программой для ЭВМ является представленная в объективной форме* совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения (ст. 1261 ГК РФ).
*Про объективную форму можно подробнее прочитать в моей статье «Исчерпание прав на экземпляр программы для ЭВМ (Базы данных)».
Программист на определенном языке программирования записывает команды, использующие, в том числе данные. Данные и команды впоследствии позволят получить нужный результат .
Пример (на примитивном уровне).
Пишем программу («Расчет НДФЛ» для простейшего случая, когда нет вычетов, льгот, особых налоговых баз и ставок, а налогоплательщик - резидент):
✔️1. Получаем от пользователя данные «Д» (сумма дохода в соответствующем периоде).
2. Сравниваем Д с 5 000 000.
3. Если Д меньше или равно 5 000 000, то выполняем Действие1, иначе переходим к Действию2.
4. Действие 1. Рассчитываем Н по следующей формуле Н=Д умножить на 0,13.
5. Действие 2. Рассчитываем Н по формуле Н=650 000 + (Д – 5 000 000) умножить на 0,15.
6. Выдаем пользователю данные Н ( полученная величина Н)✔️
Совокупность действий (команд), изложенных выше в виде текста на определенном языке (программирования), и будет исходным кодом программы.
☝️Любой специалист, владеющий нужным языком программирования, сможет «прочитать» исходный код (он же текст) и понять, что программа делает.
В рассмотренном примере, если введем величину Д, равную 100 000, то в качестве результата получим величину Н=13 000.
Если введем величину Д, равную 5 200 000, то получим результат 680 000 (650 000+200 000*0,15).
🔷Исходный код программы, с точки зрения авторского права, приравнивается к литературному произведению. См. также мой пост от 18.06.2023 в Телеграм-канал.
По сути, исходный код программы – это рассказ на языке программирования о том, какие нужно совершить действия и применить данные, чтобы был получен нужный результат. Эти "рассказы" могут читать специалисты (люди).
Единственный нюанс, компьютер не понимает исходный код, для него это «абракадабра».
Компьютер работает с объектным кодом. Для этого исходный код переводят (компилируют) в объектный (числовой код, который состоит из двоичных чисел, таких как 0 и 1).
И исходный, и объектный коды охраняются авторским правом (хотя по поводу объектных кодов встречаются сомнения).
❗Соответственно, внесение изменений в коды (переработка), использование их в составных произведениях требуют согласия со стороны владельцев исключительных прав на них. Подробнее о переработке мой пост от 24.06.2023, о составном произведении - пост от 10.07.2023.
☝️В большинстве своем, чтобы поменять что-то в программе, нужно внести изменения именно в исходный код.
❓К чему это все.
При разработке новых программ для ЭВМ могут использоваться программные коды, написанные другими авторами.
Так, "чужие" программы могут быть использованы:
- для создания новых программных кодов. То есть, новый программный код может быть переработкой (модификацией) другой программы. См. мою статью «Программы для ЭВМ: модификация или параллельное творчество»;
- путем их вызова в процессе исполнения созданной программы ("чужая" программа может не входить в текст созданного кода);
- в составе других программных продуктов как элемент сборника (когда отдельные программы независимы друг от друга, но могут использоваться совместно (операционная система с предустановленными программами сторонних разработчиков).
Чтобы использовать наработки других лиц, в общем случае, разработчик нового программного продукта должен заключить договор (как правило, лицензионный) с правообладателем программы, которая планируется к использованию в новой программе.
🔷Но очень часто правообладатели уже предоставили возможность использования своих программных продуктов путем выдачи открытой лицензии.
Предоставляемое на основании открытых лицензий программное обеспечение в большинстве своем имеет доступный (открытый) исходный код. Это, так называемое open-source *. Исходный код можно увидеть, изучить и даже внести изменения (если лицензия разрешает).
*Примечание. Несмотря на то, что часто различают свободное (free/libre) и открытое (open-source) программное обеспечение, как правило доступность исходного кода для free software является обязательным. В связи с этим, я все же буду применять в статье термин open source и вести речь о таких open source, использование которых осуществляется на условиях открытых лицензий, которые прописаны в сопровождающих коды соглашениях от правообладателей.
❓Что такое открытая лицензия?
В Российском законодательстве открытым лицензиям посвящена ст. 1286.1 части четвертой ГК РФ.
Если коротко, открытая лицензия для программных продуктов – это лицензионный договор, построенный по принципу простой неисключительной лицензии, со следующей спецификой:
1. Заключается в упрощенном порядке (условия излагаются обычно либо на экземпляре программы (в том числе упаковке), либо размещаются в электронном виде рядом с программой, на которую выдается лицензия).
2. Является договором присоединения (пользователь либо принимает все условия, либо нет).
3. Содержит объект использования (собственно, программа) и объем возможного использования кода иными лицами (способы использования и др.).
4. По общему правилу безвозмездный (может быть установлено иное).
5. Содержит срок действия (если срока нет, считается, что лицензия предоставлена на срок действия исключительных прав на программу).
6. Содержит территорию, на которой допускается использование кода (если территории нет, использование допускается на территории всего мира).
7. Новый программный продукт, созданный с использованием open source, должен предоставляться третьим лицам, на тех же условиях, которые предусмотрены открытой лицензией (в противном случае правообладатель может лишить лицензии). Иное может быть установлено в лицензии.
Понятно, что лицензии на иностранные open-source могут иметь свои нюансы.
⚠️Таким образом, для правомерного использования open source важно соблюдение условий открытой лицензии, в которой определяется, какие действия можно совершать с используемым кодом, а также какие действия можно совершать с тем программным кодом, который создан с использованием open source!
🔷Что касается передаваемых правообладателями оpen source прав и их сущности (условий открытых лицензий на оpen source) – они тоже могут носить разный характер.
С точки зрения прав на последующее использование пользователями открытые лицензии делят на пермиссивные и копилефтные.
Пермиссивные лицензии дают пользователям полную свободу использовать, модифицировать и распространять как open source, так и программы, созданные на их основе, на любых условиях. Пользователя обязуют лишь уведомить об условиях лицензии и авторах open source.
Копилефтные же лицензии обязывают программные продукты, созданные с использованием open source , предоставлять на условиях оригинальной лицензии на open source.
В качестве примера можно рассмотреть распространенную лицензию GNU GPL (GNU General Public License). По этой лицензии пользователь получает права изучать программу, копировать, модифицировать её исходный код, распространять, в том числе на коммерческой основе, но под той же лицензией.
Используют также лицензии Creative Commons (международной некоммерческой организации, разработавшей типовые лицензии).
Они могут быть следующих видов:
Attribution (CC BY) - по условиям этой лицензии у лицензиата есть право копировать и распространять open source, а также его адаптировать, создавать производные объекты в любых целях, включая коммерческие. При этом пользователь должен обеспечить указание авторства на open source, предоставить ссылку на лицензию.
Attribution ShareAlike (CC BY-SA) – дополнительно к Attribution требует, чтобы код, созданный с использованием open source, распространялся на условиях той же лицензии, что и использованный open source.
Attribution Non-commercial (CC BY-NC) - позволяет использовать, адаптировать open source в некоммерческих целях, требует указания авторства, разработанные коды должны быть некоммерческими, но их использование не обязательно должно быть на условиях лицензии open source.
No Derivative Works (CC BY-ND) – запрещает создание новых (производных) произведений.
No Rights Reserved (СС0(СС Zero) – автор отказывается от всех авторских прав (насколько это применимо, см. мой пост в Телеграм от 17.08.2023) и передает программный код в общественное достояние. То есть, произведением на условиях лицензии СС0 можно свободно пользоваться третьим лицам.
То есть, если Вы видите на лицензии информацию о какой-то из указанных лицензий, Вы приблизительно понимаете, о чем речь. Ну, а подробнее об условиях лицензий можно ознакомиться на https://creativecommons.org/licenses/.
Есть множество иных лицензий. Например, на сайте http://licenseit.ru/ приведена подборка разнообразных лицензий.
❗Кстати, в России сейчас проводится эксперимент по созданию открытого программного обеспечения, которое будет распространяться на условиях открытой лицензии (open source). Планируется создание национального репозитория (хранилища, в том числе кодов) и наполнение его российским open source.
Эксперимент проводится в соответствии с постановлением Правительства РФ от 10 октября 2022 г. № 1804, направлен на импортозамещение, создание новых российских продуктов на основе open source; доступность решений, обеспечивающих возможность повторного использования программного обеспечения.
С большой вероятностью, буду введены разного рода льготы для организаций, разработавших open source и предоставивших лицензию, как это указано в постановлении.
☝️Постановление содержит требования к условиям открытой лицензии (п.3), на основании которой пользователи смогут использовать программные продукты, внесенные в национальный репозиторий. Одно из условий – доступность исходных текстов программного обеспечения.
Таким образом, можно ожидать, что в скором времени будет широко применяться российская типовая лицензия для open source.
🔷Конечно, использование уже готового кода в работе может ускорить разработку нового кода. Нет нужды изобретать велосипед. В этом польза open source.
Но есть и риски.
✔️Open source могут иметь уязвимости, в результате которых эти коды можно сделать вредоносными. И практика такие случаи знает.
✔️Проблемы могут «вылезать» в случае использования open source для нестандартных ситуаций, не зашитых в алгоритмы open source.
✔️Программист может использовать open source, не поставив об этом в известность заказчика, работодателя. Соответственно, у заказчика или работодателя могут возникнуть правовые проблемы в части нарушения лицензионных условий, в том числе выход за пределы прав, выданных лицензиями.
❓Что здесь можно посоветовать
1. Как минимум, целесообразно попытаться выяснить, есть ли open source в разработанной программе (как я указывала в начале статьи, я к нему отношу и свободное ПО).
Для этого можно использовать программы, определяющие SBOM. SBOM предоставляет возможность получить подробный список компонентов, модулей и библиотек, использованных при создании программного продукта.
По каждой компоненте, входящей в состав продукта, SBOM дает информацию о названии, версии и лицензии.
2. Если речь о работниках, целесообразно принять локальные нормативные акты, в которых будет прописан порядок работы с используемым open source, перечислены разрешенные и запрещенные программы. При возникновении потребности в новом open source разумно разработать порядок согласования введения его в работу.
3. В договорах с заказчиками целесообразно прописать заверения об обстоятельствах (ст. 431.2 ГК РФ) и последствиях, если они окажутся недостоверными (возмещение убытков, выплата неустойки).
4. Ну и, само собой, необходимо внимательное прочтение используемых лицензий, что также может представлять сложность, если это лицензии иностранных вендоров.
Сложно? Непросто.
В статье я постаралась изложить простым языком вопросы, связанные с open source. Надеюсь, она поможет уяснить, что же такое исходный код, что такое open source, какие виды открытых лицензий на них предоставляются.
Приглашаю также в свой телеграм-канал: t.me/beresneva_IP_law, посвященный объектам интеллектуальной собственности. Особенно канал будет полезен юристам, только начинающим познавать сферу интеллектуальной собственности.
©Береснева Н.В., 27.08.2023