В тази статия ще говорим малко за авторските права, но главно за избора на свободна лицензия за RAD фреймворк и за опенсорсни продукти на неговата основа. Ще разкажем за разрешителната лицензия Apache 2.0, за това, какво ни доведе до нея и с какви решения се сблъскахме в процеса.
Процесът на избор на лицензия е доста трудоемък и трябва да се подхожда с необходимата подготовка. Ако не притежавате юридическо образование, пред вас се отваря ново поле на информация за разнообразни свободни лицензии. Основното, което трябва да направите, е да съставите серия от ограничителни критерии. В хода на обсъждането и осмислянето вие и вашия екип ще можете да разберете какво искате да разрешите на потребителите на вашия продукт и какво да забраните. Когато вече имате описание, трябва да го наложите на съществуващите лицензии и да изберете тази, където най-голям брой точки съвпадат. Звучи просто, но всъщност, дори след обсъждане, обикновено остават въпроси.

Първо — линк на , полезен сайт, който активно използвахме. Особено обърнете внимание на на лицензите по 13 основни критерия. Да е с вас английският и търпението.
Мъките на избора
Да започнем с общите признаци на лицензиите за . Свободният софтуер предполага изключително свободна лицензия, която не ограничава търговското и нетърговското разпространение по модел . Съответно, публикувайки софтуер под свобода лицензия не можете напълно да ограничите неговото предаване, разпространение и продажба от трети лица и към това трябва просто да се подготвите морално.
Свободната лицензия дава на потребителя право сам да участва в обратната разработка на софтуера или да го изменя по други достъпни начини. Повечето лицензи не позволяват преименуване на продукта или извършване на каквито и да било манипулации с него, променящи правата на автора и/или собственика на системата.
Основните въпроси, които ни интересуваха относно свободните лицензи, бяха:
- Внесените изменения в софтуера трябва да бъдат фиксирани и нямат нищо общо с правопритежателя на системата?
- Името на производствения софтуер не трябва да съвпада с името на софтуера на правопритежателя?
- Възможно ли е да се промени лицензията за всяка нова версия на друга, включително на проприетарна?
Внимателно прегледайки списъка с най-разпространените лицензи, избрахме няколко, които разгледахме по-подробно. Потенциални лицензи за бяха: GNU GPLv3, Apache 2.0, MIT и MРL. MIT практически веднага отхвърлихме, това е разрешителна некопилефтна лицензия, която позволява употреба, модификация и разпространение на кода почти по какъвто и да е начин, а нас този вариант не ни удовлетворяваше, все пак искахме лицензията да регулира отношенията между правопритежателя и потребителя. Повечето неособено големи проекти в GitHub са публикувани именно под лиценцията MIT или нейните различни вариации. Самата лицензия е много кратка и от забраните единствено указанието за авторство на създателя на софтуера.
Следваща бе лиценцията MPL 2.0. Признавам, че не стигнахме до нея веднага, но изучавайки я по-подробно, бързо я отхвърлихме, тъй като основният недостатък е, че лицензията се прилага не за целия проект, а за отделни файлове. Освен това, ако потребителят модифицира файл, той не може да промени лиценцията. По фактически, колкото и старателно да изменяш Open source проекта, не можеш да го монетизираш заради подобна лицензия. Това, между другото, не касае правопритежателя.
Подобен проблем съществува и при лиценцията GNU GPLv3. Тя изисква всеки файл да остане под същата лицензия. GNU GPL е копилефтна лицензия, която изисква изходният код на производните работи да бъде отворен и да остане под същата лицензия. Тоест: ако пренапишете две реда код, ще бъдете принудени да затвърдите промените си и при по-нататъшна употреба или разпространение да запазите кода под GNU GPL. В този случай, това е ограничителен фактор за потребителя на нашия проект, а не за нас. Но смяната на GPL с каквато и да е друга лицензия е забранена, дори и в рамките на версиите на GPL. Например, ако смените LGPL (разширение на GPL) с GPL, то обратният път към LGPL вече няма да е възможен. И този пункт беше решаващ в гласуването против.
В общи линии, нашият избор първоначално беше насочен към GPL3 поради разпространението на модифициран код под същата лицензия. Смятахме, че по този начин ще успеем да защитим продукта си, но видяхме по-малко рискове в Apache 2.0. Според Free Software Foundation, GPLv3 е съвместима с Apache License v2.0, тоест винаги е възможно да смените лиценза от Apache License v2.0 на GPL v3.0.
Apache 2.0
— балансирана разрешителна лицензия с акцент върху авторските права. Ето какви отговори дава на интересуващите ни въпроси. Промените в софтуера трябва да бъдат документирани и не са свързани с правообладателя на системата? Да, всички промени трябва да бъдат записани и ние не носим отговорност нито за оригиналния код, нито за модифицирания. Файлът с промените трябва да бъде приложен към кода, в който са направени промените. Името на производния софтуер не трябва да съвпада с името на софтуера на правообладателя? Да, производният софтуер трябва да бъде издаден под друго име и под друга търговска марка, но с указание за авторството на правообладателя. Може ли лицензът да бъде променен за всички нови версии на друг, включително и на собственически? Да, може да се издава под различни лицензии, Apache 2.0 не ограничава прилагането на всякакви некомерчески и търговски лицензии.
Също така, при издаването на нови продукти на базата на отворен код по Apache 2.0 или продукти с допълнителна функционалност не е задължително да се използва същата лицензия. По-долу може да видите изображение с условията и ограниченията на лицензията Apache 2.0.

Лицензията поставя изискване за запазване и споменаване на авторските права и лицензията, под която се издава софтуерът. Задължително присъствие съобщение за авторски права името на правообладателя и лицензията защитава правата на оригиналния автор на софтуера, тъй като дори и да бъде преименуван, прехвърлен или продаден под друга лицензия, знака на автора все пак ще остане. За целта също може да се използва файл NOTICE и да бъде приложен либо в изходния код, либо в документацията на проекта.
Издаваме на отворен достъп в GitHub всички наши продукти под лицензията Apache 2.0, с изключение на , изходният код на който беше публикуван през април тази година под лицензията GPLv3 в GitHub от Далекоизточния център за социални технологии. В момента освен самия и неговия публикувани направен на фреймворка. В Хабра вече разказахме за и за .
Технически детайли относно фреймуърка
IONDV. Framework – отворен код фреймуърк на node.js за създаване на висококачествени уеб приложения на базата на метаданни, който не изисква сериозни умения за програмиране.
Основата на функционалността на приложението е регистър на данните – модул Регистри. Това е ключов модул, предназначен пряко за работа с данни на основата на структурите на метаданни – в това число за управление на проекти, програми, събития и др. В проекта също се използва модул на портала за визуализиране на случайни шаблони на данни – на него е реализиран фронтът на регистъра на архивни дела.
За СУБД се използва MongoDb – в нея се съхраняват както настройки на приложението, така и метаданни и самите данни.
Как да приложите лицензия към вашия проект?
Добавете файл LICENSE с текста на лиценза в репозитория на вашия проект и voilà, проектът е под защита на Apache 2.0. Трябва да посочите правообладателя, което е текстово известие за авторски права. Можете да направите това в изходния код или в файла NOTICE (текстов файл, изброяващ всички библиотеки, лицензирани под лиценза Apache заедно с имената на техните създатели). Самият файл поставете или в изходния код, или в документацията, разпространявана заедно с работата. При нас изглежда така:
Авторски права © 2018 ООД «ION DV».
Лицензирано под Лиценза Apache, версия 2.0
Текст на Лиценза Apache 2.0
Лицензия Apache
Версия 2.0, януари 2004
УСЛОВИЯ И ПРАВИЛА ЗА ИЗПОЛЗВАНЕ, ВЪСПРОИЗВЕЖДАНЕ И РАЗПРЕДЕЛЕНИЕ
Определения.
«Лицензия» означава условията и правилата за използване, възпроизвеждане,
и разпространение, както е определено в Раздели 1 до 9 на този документ.«Лицензодател» означава собственик на авторски права или организация, упълномощена от
собственика на авторски права, която предоставя Лицензията.«Юридическо лице» означава обединението на действащото лице и всички
други лица, които контролират, са контролирани от или са под общ
контрол с това лице. За целите на това определение,
«контрол» означава (i) правото, пряко или непряко, да причиниш
директора или управлението на такова лице, независимо дали по договор или
по друг начин, или (ii) собственост на петдесет процента (50%) или повече от
издадените акции, или (iii) полезна собственост на такова лице.«Вие» (или «Ваш») означава физическо лице или Юридическо лице,
което упражнява правомощия, предоставени от тази Лицензия.«Форма на източника» означава предпочитаната форма за правене на модификации,
включително, но не само, изходен код на софтуера, документация
и конфигурационни файлове.«Обектова» форма означава всякаква форма, произтичаща от механична
трансформация или превод на форма на източника, включително, но
не само, компилиран обектен код, генерирана документация,
и преобразувания в други медийни формати.«Произведение» означава произведение на авторство, независимо дали в Източник или
Обектова форма, предоставено под Лицензията, както е обозначено с
известие за авторски права, включено в или прикачено към произведението
(пример е предоставен в приложението по-долу).«Производни произведения» означава всяко произведение, независимо дали в Източник или Обектова
форма, което е основано на (или произлиза от) Произведението и за което
редакционни ревизии, анотации, пояснения или други модификации
представляват, като цяло, оригинално произведение на авторството. За целите на
тази Лицензия, производните произведения не включват творби, които остават
отделими от, или просто свързват (или свързват по име) с интерфейсите на,
Произведението и производните произведения от него.«Принос» означава всяко произведение на авторството, включително
оригиналната версия на Произведението и всякакви модификации или добавки
към това Произведение или производните произведения от него, което е умишлено
представено на Лицензодателя за включване в Произведението от притежателя на авторските права
или от лице или юридическо лице, упълномощено да представлява от името на
притежателя на авторските права. За целите на тази дефиниция, «представено»
означава всяка форма на електронна, устна или писмена комуникация, изпратена
към Лицензодателя или неговите представители, включително, но не само
комуникация по електронни пощенски списъци, системи за контрол на изходния код,
и системи за проследяване на проблеми, управлявани от или от името на
Лицензодателя с цел обсъждане и подобряване на Произведението, но
изключва комуникация, която е явно маркирана или по друг начин
определена писмено от притежателя на авторските права като «Не принос.»«Съсъдействуващ» означава Лицензодателя и всяко лице или юридическо лице
от името на което е получен Принос от Лицензодателя и
последователно вградено в Произведението.Предоставяне на лиценза за авторски права. При спазване на условията на
тази Лицензия, всеки Съсъдействуващ сега предоставя на Вас перманентен,
всеобхватен, неексклузивен, безплатен, безплатен, необратим
лиценз за авторски права за възпроизвеждане, подготовка на производни произведения,
публично показване, публично изпълнение, предоставяне на подлиценз и разпространение на
Произведението и такива Производни произведения в Изходна или Обектна форма.Предоставяне на лиценза за патент. Съгласно условията на
тази Лицензия, всеки Съсъдействуващ сега предоставя на Вас перманентен,
всеобхватен, неексклузивен, безплатен, безплатен, необратим
(освен както е посочено в този раздел) лиценза за патент за създаване, производство,
използване, предлагане за продажба, продажба, внос и друго прехвърляне на Произведението,
където такъв лиценз се прилага само за тези патентни искове, подлежащи на лицензиране
от такъв Съсъдействуващ, които са непременно нарушени от техните
Приноси сами или в комбинация с техните Приноси
с Произведението, за което тези Приноси са били представени. Ако Вие
институирате патентна съдебна процедура срещу всяко лице (включително
контраиск или контраиск в съдебно дело), което твърди, че Произведението
или Принос, вграден в Произведението, представлява пряко
или допълнително нарушение на патента, то всякакви патентни лицензи
предоставени на Вас съгласно тази Лицензия за това Произведение ще прекратят
от датата, в която такава е подадена съдебна процедура.Переразпределение. Можете да възпроизвеждате и разпространявате копия на
Произведението или производните произведения от него в какъвто и да е носител, с или без
модификации, и в Изходна или Обектна форма, при условие че Вие
спазвате следните условия:(a) Трябва да предоставите на всякакви други получатели на Произведението или
производните произведения копие на тази Лицензия; и(b) Трябва да причините на всякакви изменени файлове да носят видими известия
относно това, че сте променили файловете; и(c) Трябва да запазите, в изходната форма на всякакви производни произведения
които разпространявате, всички известия за авторски права, патенти, търговски марки и
разпознавателни известия от изходната форма на Произведението,
с изключение на онези известия, които не се отнасят до никаква част от
производните произведения; и(d) Ако Произведението включва текстов файл «УВЕДОМЛЕНИЕ» като част от своето
разпространение, тогава всякакви производни произведения, които разпространявате, трябва
да включват четима копия на известията за атрибуция, съдържащи се
в такъв УВЕДОМЛЕНИЕ файл, с изключение на онези известия, които не се
относят до никаква част от производните произведения, на поне едно
от следните места: в текстов файл УВЕДОМЛЕНИЕ, разпространяван
като част от производните произведения; в изходната форма или
документация, ако са предоставени заедно с производните произведения; или,
в дисплей, генериран от производните произведения, ако и
където такива известия от трети страни обикновено се появяват. Съдържанието
на текстовия файл УВЕДОМЛЕНИЕ е само за информационни цели и
не променяйте Лиценза. Можете да добавите собственото си признание
в уведомленията в производните произведения, които разпространявате, наред с
или като приложение към текста на УВЕДОМЛЕНИЕТО от Произведението, при условие
че такива допълнителни признания не могат да се тълкуват
като изменение на Лиценза.Можете да добавите собствено изявление за авторски права към модификациите си и
можете да предоставите допълнителни или различни условия и условия за лиценз
за използване, възпроизвеждане или разпространение на модификациите си, или
за всякакви подобни производни произведения като цяло, при условие че вашето използване,
възпроизвеждане и разпространение на Произведението иначе отговаря на
условията, посочени в този Лиценз.Представяне на приноси. Освен ако не посочите друго,
всеки принос, намерено представен за включване в Произведението
от вас към Лицензополучателя ще бъде при условията на
този Лиценз, без никакви допълнителни условия или условия.
Независимо от горното, нищо тук не отменя или изменя
условията на всяко отделно лицензионно споразумение, което може да сте подписали
с Лицензополучателя относно такива Приноси.Търговски марки. Този Лиценз не предоставя разрешение за използване на търговските
имена, търговски марки, услуги знаци или продуктови имена на Лицензополучателя,
освен както е необходимо за разумно и обичайно използване при описание на
произхода на Произведението и възпроизвеждане на съдържанието на файла УВЕДОМЛЕНИЕ.Отказ от гаранция. Освен ако не е изискано от приложимото законодателство или
съгласувано писмено, Лицензополучателят предоставя Произведението (и всеки
Приносител предоставя своите Приноси) на основание «КАКТО Е»,
БЕЗ ГАРАНЦИИ ИЛИ УСЛОВИЯ ОТ НИКАКЪВ ВИД, изрично или
подразбиращо се, включително, без ограничения, всякакви гаранции или условия
за ИМУЩЕСТВО, НЕНАЧЛЕНО, ТЪРГОВЕНО СЪОТВЕТСТВИЕ или ПОДХОДЯЩО ЗА
ОПРЕДЕЛЕНА ЦЕЛ. Вие носите единствената отговорност за определяне на
целесъобразността на използването или повторното разпространение на Произведението и поемате всякакви
рискове, свързани с упражняването на правата си по този Лиценз.Ограничение на отговорността. При никакви обстоятелства и при никаква правна теория,
независимо дали в деликт (включително небрежност), договор или иначе,
освен ако не е изискано от приложимото законодателство (като умишлени и грубо
небрежни действия) или съгласувано писмено, не може да бъде нито един Приносител
отговорен към вас за щети, включително всякакви преки, непреки, специални,
допълнителни или последващи щети от всякакъв характер, настъпили в резултат на този Лиценз или от използването или невъзможността да се използва
Произведението (включително, но не ограничено до щети за загуба на добро име,
спирането на работа, компютърна неизправност или malfunction, или всякакви и всички
други търговски щети или загуби), дори ако такъв Приносител
е бил уведомяван за възможността за такива щети.
Приемане на гаранция или допълнителна отговорност. Докато пре-разпространяватеПроизведението или производните произведения от него, можете да изберете да предложите,
и да таксувате такса за приемане на поддръжка, гаранция, обезщетение,
или други задължения и/или права, съответстващи на този
Лиценз. Въпреки това, при приемане на такива задължения, можете да действате само
от свое име и на своя собствена отговорност, а не от името
на какъвто и да е друг Приносител, и само ако се съгласите да обезщетите,
защитите и държите всеки Приносител безвреден за всяка отговорност
понесена от, или искове, предявени срещу, такъв Приносител, поради
вашето приемане на всяка такава гаранция или допълнителна отговорност.
КРАЙ НА УСЛОВИЯТА И УСЛОВИЯТАДОПЪЛНЕНИЕ: Как да приложите лиценза Apache към своята работа.
За да приложите лиценза Apache към своята работа, прикрепете следното
стандартно уведомление, с полетата, обградени от скоби «[]»
заменени с вашата собствена идентификационна информация. (Не включвайте
скобите!) Текстът трябва да бъде обграден в подходящата
коментарна синтаксиса за формата на файла. Препоръчваме също така файл или класово име и описание на целта да бъдат включени на
същата «печатна страница» като уведомлението за авторски права за по-лесна
идентификация в архивите на трети страни.
Авторски права [гггг] [име на притежателя на авторските права]
Лицензирано под лиценза Apache, версия 2.0 («Лиценз»);Авторски права [yyyy] [име на притежателя на авторските права]
Лицензирано съгласно лиценза на Apache, версия 2.0 (наречен „Лиценз“);
Не можете да използвате този файл освен в съответствие с Лиценза.
Можете да получите копие от Лиценза наОсвен ако не е предвидено от приложимото законодателство или уговорено писмено, софтуерът
разпространяван под Лиценза се разпространява на принципа на «AS IS»,
БЕЗ ГАРАНЦИИ ИЛИ УСЛОВИЯ ОТ ЛИЦЕ НА КАКЪВТО И ДА Е РОД, изрично или подразбиращо се.
Вижте Лиценза за конкретния език, регулиращ правата и
ограниченията под Лиценза.
Лицензия = договор
Свободната лицензия, макар и свободна, не допуска вседозволеност и вече представихме примери за ограничения. Избирайте лиценция, като вземете предвид както собствените си интереси, така и интересите на потребителя, защото отвореното ПО е проектирано именно за него. Потребителят на проекта трябва да възприема лиценцията като своеобразен договор между него и правообладателя, затова преди да предприемете каквито и да е действия с изходния код, внимателно проучете ограниченията, наложени от лиценцията на проекта.
Надяваме се, че малко сме осветили темата за лицензите и, въпреки сложността на въпроса, той не трябва да бъде пречка по пътя ви в Open Source. Развивайте проекта си и не забравяйте за правата, вашите и чуждите.
Полезни връзки
Накрая, малко полезни ресурси, които ни помогнаха при търсенето на информация за съществуващи лицензи и избора на най-подходящата за целите ни:
- Супер полезна от
Източник: habr.com
