Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Лікбез по GPLv3 або Ніколи не довіряйте незнайомцям, особливо, якщо вони крадії


SergeTkach

318 переглядів

Нещодавно мав дуже неприємну розмову з одним крадієм, якій у своїй зухвалості дійшов до того, що відкрито вказує на своєму сайті про те, що викладає чужі модулі, бо наче має право згідно ліцензії GPL самого OpenCart.

 

З урахуванням того, що OpenCart дійсно розповсюджується під вільною ліцензією GPLv3, можна навіть нав'язати ідею, що це автори з форуму порушують ліцензію, накладаючи обмеження на використання своїх творів. Але давайте почитаємо щось трохи більше, ніж “GPL це вільна ліцензія, яка дає право на розповсюдження коду”, адже там 11 сторінок тексту https://www.duralex.org/licenses/gplru.pdf (російською мовою). Також є ціла купа тексту тлумачень. І в додаток існують певні норми законів (на хвилиночку!).

 

На що діє ліцензія насправді

 

Ліцензія діє на оригінальні програми, модифіковані версії та похідні роботи. В основному все розглядається в контексті похідного коду, але не дизайну (!).

 

А що там про розширення?

 

В тексті самої ліцензії — в принципі майже нічого не сказано. Слово "extension" зустрічається в тексті ліцензії лише раз в частині 5:

Збірка охопленого твору разом з іншими окремими та незалежними творами, які за своєю природою не є його розширеннями і не поєднані з ним таким чином, щоб утворювати більшу програму, у томі носія зберігання або розповсюдження називається "агрегатом", якщо сама збірка та її авторське право не використовуються для обмеження доступу або правових можливостей користувачів збірки понад те, що дозволяють окремі твори.

 

Ну і ще цікавий момент: Включення охопленого (ліцензією - п.а.) твору до агрегату не спричиняє поширення цієї Ліцензії на інші частини агрегату.


Цей абзац наводить мене на думку, що подібна збірка, де є програма з розширеннями + незалежний компонент має постачатися у вигляді "все разом". І навіть в таком вигляді, допускається включення незалежних та захищених частин.

 

Але модулі з форуму НЕ постачаються разом з Опенкартом, і відповідно, вони не утворюють єдиного продукту на одному носії, якщо говорити про "доставку" до клієнта.

 

В тлумачені сказано: якщо основна програма динамічно підключає плагіни, і вони взаємно викликають функції та обмінюються структурами даних, ми вважаємо, що вони утворюють одну єдину комбіновану програму, яку слід трактувати як розширення основної програми, так і плагінів. Якщо основна програма динамічно підключає плагіни, але комунікація між ними обмежена викликом функції 'main' плагіна з деякими опціями та очікуванням її повернення, це є прикордонним випадком - https://www.gnu.org/licenses/gpl-faq.ru.html#GPLPlugins

 

В цьому контексті цікава справа MySQL vs. Progress Software. Суд вирішив, що динамічне зв'язування само по собі не робить програму похідною роботою, якщо вона не містить копій коду з бібліотеки MySQL

 

Коротше кажучи, навіть в розумінні GPL, якщо створити окрему бібліотеку модуля та помістити там низькорівневу рутину (без використання методів OpenCart), то така бібліотека "не заражається" ліцензією GPLv3 і може мати окрему ліцензію та не підлягає вільному розповсюдженю. Але мова не лише про бібліотеку.

 

 

На що GPL однозначно НЕ діє

У поясненнях до ліцензії GPLv3 чітко вказано, що вона НЕ розповсюджується на:

  1. Шрифти (https://www.gnu.org/licenses/gpl-faq.ru.html#FontException)
  2. HTML (Як особливе виключення до GPL, будь-який HTML-файл, який просто викликає функції з цього коду і для цієї мети включає його за посиланням, вважається окремою роботою з точки зору авторського права.) https://www.gnu.org/licenses/gpl-faq.html#WMS
  3. Стилі - тут й самому тупому варезнику має бути зрозумілим, що жоден кастомний файл стилів не наслідує нічого від опенкарт, він надає інструкції напряму браузеру, і підключається через HTML
  4. Декларативні файли install.xml - по такій логіці не є програмою взагалі. Він ж декларативний.
  5. Документація (керівництва, інструкції) не є вихідним кодом і на них не накладаються ті самі умови розповсюдження - https://www.gnu.org/licenses/gpl-faq.ru.html#WhyNotGPLForManuals. З точки зору закону це також окремий авторський твір
  6. Зображення (іконки) - це точно не Source Code програми
  7. Прямо вказано, що деякі плагіни НЕ утворюють тісне зв'язування, і, відповідно, на них ліцензія не розповсюджується - https://www.gnu.org/licenses/gpl-faq.ru.html#GPLPlugins

 

В багатьох випадках куплені модулі містять комбінацію різного роду файлів, і деякі з цих файлів 100% не підпадають під вільне розповсюдження. Тому не потрібно розповідати казочки про те, що вільна ліцензія виправдовує крадіжку.

 

Чи дозволяється використання комбінованих ліцензій?

 

Так, основним нововведенням GPLv3 (у порівнянні з GPLv2), є можливість поєднання різних ліцензій. Тобто різні частини тієї самої програми можна ліцензувати на різних умовах, в тому числі можна використовувати комбінацію GPLv3 та пропрієтарної ліцензії на окремі частини модуля.

 

В ліцензії є чіткі умови розповсюдження вільного коду

 

Ліцензія не лише надає права, але й вимагає виконувати деякі зобов'язання. Тож навіть до тих творів, до яких дійсно застосовується принцип вільного розповсюдження, накладаються певні вимоги.

 

В контексті збереження вказання авторства

 

В пункті 4 ліцензії зазначено, що в разі розповсюдження, необхідно передавати “точну копію”.

  • Ви можете передавати точні копії вихідного коду Програми, як ви його отримуєте, на будь-якому носії, за умови, що ви явно і належним чином розміщуєте на кожній копії відповідне повідомлення про авторські права;

 

Пункт 5 ліцензії каже, що в разі модифікації:

  • а) Робота повинна містити помітні повідомлення, які вказують, що ви її змінювали, та наводять відповідну дату.


Окрім того нагадаємо, що згідно закону про авторське право існують майнові та немайнові права. Загалом концепії копілефт не посягають на немайнові права автора. А в законі чітко прописано, що право на ім'я є невідторгним. Тому “відповідне повідомлення про авторські права” має містити не лише сповіщення про GPL, а й сповіщення про авторство на будь якій копії модуля.

 

В контексті продажу власного коду

 

Також потрібно повідомляти, що саме з якою ліцензією розповсюджується.

 

Яку юридичну силу має ліцензія GPLv3?

Адепти GPL стверджують, що пропрієтарні ліцензії “перетягують ковдру” до правовласників, порушуючи права користувачів. А звідки ми знаємо, що вільна ліцензія не робить те саме в іншу сторону? 

 

Чому ми маємо сліпо довіряти тексту ліцензії, яку написала одна сторона, якщо ми знаємо, що ця сторона напряму зацікавлена в пропаганді певної ідеї?

 

Варто задуматися, а що взагалі означає слово “ліцензія”. По суті це договір ліцензування між двома сторонами (правовласник та користувач). Як ми розуміємо, будь якій договір має відповідати місцевому законодавству.

 

На профільному сайті, якій пояснює ідеї “копілефту”, розміщена ціла стаття про похідні твори (https://copyleft.org/guide/comprehensive-gpl-guidech5.html), в якій визнається, що положення ліцензії GPL можуть вступати в конфлікт з національними законами. Там прямо написано: “Саме похідний характер твору щодо вільного програмного забезпечення вимагає дотримання умов відповідної ліцензії. Тому виникає питання: що саме є "похідним твором"?” Також там визнається, що суди США більше схиляються до визначення “похідного твору” в законі про авторське право і мають власні методи оцінки похідності.

 

І в законі США, і в українському законі про авторське право програми розглядаються як "набір інструкцій", а не як місце в пам'яті. Так само в обох юрисдикціях є чітке визначення похідного твору, якій має бути "заснований на одному або кількох попередніх творах" (в законі США) та "твір, що є творчою переробкою іншого існуючого твору" (в законі України).

 

Подібним чином похідні твори визначає й eстонське законодавство (форум зареєстрвоаний саме в цій юрисдикції).

 

Тобто, похідний твір з точки зору законодавства не може взятися з нізвідки, він має бути зміненою версією чогось, що вже існувало. І якщо такого модуля не було в опенкарті, то він вже не може вважатися похідним твором. А закон має більшу юридичну силу, ніж ліцензія GPL.

 

Тому визначення похідних творів в розумінні GPL не відповідають дійсному законодавству (!)

 

Також викликає сумніви тон тлумачень ліцензії GPL. Вони всюди, де прямо не застосовується GPL, рекомендують просто надавати інші дозвільні ліцензії, уникаючи фраз, що насправді, якщо може застосовуватися інша ліцензія, то вона може бути і пропрієтарною. А це вже викривлення фактів на користь конкретної ідеї.

 

Як визначають похідність творів суди США на практиці?

 

У вже згаданій статті на сайті copyleft.org надається опис того, як суди в США визначають, чи є програма похідною чи ні.

 

Першочергово відсіюється все, що не може бути захищеним. Адже авторське право не поширюється на ідеї, процедури, процеси, системи, методи роботи, концепції або принципи, що містяться в оригінальній програмі. Саме реалізація цього правила, що вимагає "відфільтрувати" непідлягаючі захисту елементи, є найчастішою причиною розбіжностей у судовій практиці.


Наскільки я зрозумів вміст описаних методів, похідні твори визначаються за 2 одночасними критеріями:

  1. Програма має подібний декларативний опис
  2. Виконувані функції мають подібне вираження в коді

Суд аналізує, чи скопійовані захищені елементи і наскільки вони суттєві у загальній структурі програми. Якщо захищені елементи, що містяться у другій програмі, є значущими, вона визнається похідною від першої. Якщо ж скопійовані елементи є незначними, друга програма не вважається похідною.

 

На основі цієї статті в мене взагалі виникло враження, що похідність програми стає правовим питанням, коли в одну програму скопійовано код з іншої майже рівноцінної програми, і вони є конкурентними... Або інша площина — це коли виробники технічних пристроїв беруть за основу код під GPL, і при цьому забороняються користувачам вносити зміни, тобто привласнили чужий готовий код і модифікували його так, щоб заборонити його редагування, ну або не надали похідний код (справи BusyBox, Tivo, Samsung).

 

Немає захисту для «методів роботи»

 

Найбільш цікавий пункт тієї статті на сайті copileft.org   “Немає захисту для «методів роботи»”. Тобто "дослівне копіювання ієрархії команд меню або будь-який інший «метод роботи» не може бути основою для визначення того, що одна робота є похідною від іншої".

 

Найцікавішим прикладом застосування цього принципу є справа Oracle проти Google. Верховний Суд США ухвалив рішення на користь Google, визнавши використання  Java API "добропорядним використанням" (fair use), хоча ухилився від остаточного визначення, чи є декларативний код незахищеним як "метод роботи", залишивши це питання відкритим.

 

Також варта уваги справа VMware проти Крістофа Хеллвіга (2015–2019, Німеччина). Там була ситуація, що в одному продукті одночасно містився і закритий власний код, і відкриті частини коду Linux. Суд не дійшов до висновку що продукт VMware був похідною роботою.

 

Тобто з модулями ми маємо таку штуку:

  1. Ніде в тексті ліцензії чітко не визначений статус розширень, які постачаються окремо від самої програми. А трактування адептів GPL — це лише їх власна думка, не підтверджена жодним судовим прецедентом
  2. Модуль не йде у порівняння з декларативним описом всієї системи, тобто він виконує якусь іншу функцію, яка іноді навіть відсутня в самому OpenCart
  3. Маємо в модулях виклики системних методів OpenCart ($this->db->query(), $this->load->model() тощо), і це можна розглядати як виклик "методів роботи" (методів системного API), а не як копіювання безпосередньої реалізації цих методів (назва методу ≠ його реалізація)
  4. Власна логіка деяких модулів суттєво більша, ніж виклик стандартних методів OpenCart в тому модулі

 

Таким чином, ми можемо стверджувати, що модуль, якій не має модифікатору — може не вважатися похідним твором від опенкарту.


А потім спадає на думку, що OCMOD — це визначений системою API. Адже API — це не лише про REST API (!). Як зазначено у Wikipedia, у багатьох випадках API є частиною набору розробки програмного забезпечення (SDK), якій в свою чергу є набором “засобів розробки, утиліт і документації, який дає програмістам змогу створювати прикладні програми за визначеною технологією або для певної платформи”.

 

Хоча, очевидно, що в разі, коли модуль вмішується в логіку стандартних функцій опенкарту, то він змінює поведінку програми та використовує спільний простір пам'яті. З точки зору GPL — це важливо, а ось з точки зору законодавства ні.

 

Суперечливий статус модулів

 

В тексті ліцензії слово plugin в принципі не зустрічається, хоча саме про плагіни надається тлумачення. Проте варто пам'ятати, що тлумачення саме по собі наче й немає юридичної сили.


Також у визначеннях є термін "Охоплений твір", на якій діє ліцензія. Це означає або немодифіковану Програму, або твір, створений на основі Програми. Ніяких розширень, які можуть бути встановлені в програму окремо, там не згадується.


Окрім того за визначенням "Модифікувати" твір "означає скопіювати або змінити весь твір чи його частину у спосіб, що потребує дозволу відповідно до законодавства про авторське право, за винятком створення точної копії. Отриманий твір називається "модифікованою версією" початкового твору або твором, "створеним на основі" початкового твору".


Так, можна сказати, що модулі модифікують твір. Але в момент передачі клієнту модуль це окремі файли, які ще нічого не модифікували і не є частиною існуючої на той момент програми на сервері клієнта. Згідно закону — це окремий твір зі своїм набором інструкцій. Розробник не створює у своєму файлі модифікацію системи опенкарт. Ядро модифікується лише після встановлення користувачем в систему.

 

 

P.S.

Важливо чітко розуміти, що навіть якщо OpenCart (продукт А) поширюється за ліцензією GPL, то це ще не означає, що модулі (Продукт Б) також повністю підпадають під цю ліцензію і не містять захищених авторським правом частин. Тож якщо ви крадете, це ваш вибір. Але GPL тут взагалі ні до чого!

 

 

  • +1 1

4 коментаря


Recommended Comments

Нужно же добавить что речь про 

 

ФОП С***кін Дм***о І********ч

UA9*32****0000260****2007***89

ИНН 3***10**52

 

владелец пиратской помойки dev-opencart.com, который своим маленьким мозгом решил что где есть слово опенкарт - можно безнаказанно воровать и продавать

 

Почему-то платежи на фоп уже не принимают, только хотел оформить контрольную закупку, эх, глядит на шаг вперед ;)

Надіслати

Хто пірат - й так зрозуміло. Але цей опус ще й самому допоміг розібратися більш детально та розставити крапки над і.

Надіслати

Про це ("бібліотеки", "код" та т п)  вже давно Даніель писав на форумі в себе. Що це авторська частина розробника та невід'ємна частина модулів.
На рахунок "зображень", "документації" та т п теж він писав - це невід'ємна частина модулів та авторський твір (я наприклад так заморачиваюся, що сам роблю іконки, шрифти та т.п.)
Але що ти ідіоту "доведеш". Воно ж не розуміє... бо ідіот

 

Прихований текст

Ефе́кт Да́ннінга — Крю́ґера (ефект профана) — когнітивне упередження, яке полягає в тому, що люди з низькою кваліфікацією роблять помилкові висновки та ухвалюють невдалі рішення, але їхня некомпетентність не дозволяє їм це усвідомити

Воно ще і копірайти на свої заміняє ... ти курво його робив. Злодій який перепродає крадене

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.