трънки и блогинки

Роля и значение на GNU Affero GPL

Написано на: 06.11.2007 · 2 коментара

Увод
GNU GPL v2 е създаден в годините1, когато използването и ролята на интернет са били значително по-малки. Той защитава правата на създателите и потребителите на софтуер в един офлайн свят. Днес, все повече приложения се ползват отдалечено, с връзка чрез компютърна мрежа, вместо да се зареждат и стартират от комютъра на потребителя. Този начин на ползване на софтуера прави неприложимо задължението за предоставяне на достъп до изходния код, което е в основата на GNU GPL и така дава възможност за заобикалянето му. Тези „вратички“ за заобикаляне на GNU GPL са известни като SaaS (Software as a Service) или ASP (Application Service Provider) loopholes и целта на Affero GNU GPL (AGPL) е тяхното затваряне и гарантирането на всички четири основни свободи2 и за приложенията, които се ползват по мрежа.

„Вратичките“ в GNU GPL
GNU GPL свързва задължението за предоставяне на изходния код на програмата с получаването на нейно копие от потребителя. Когато приложението се изпълнява на отдалечена машина, потребителя само си взаимодейства с него, не получава копие на програмата и за предоставящия услугата не се поражда задължението да осигури достъп до изходния код. Това е и изрично записано в дефиницията на „convey“3, която прави GNU GPL v3:

Простото взаимодействие с потребител, през компютърна мрежа, при което той не получава копие, не е разпространение.

„Вратичките“ предоставят възможност на всяка трета страна примерно да вземе което и да е от многобройните уеб приложения, разпространяващи се под GPL, да го „полира“ или модифицира добавяйки нужна функционалност и да го предложи като услуга без да е задължена да върне подобренията към оригиналния проект. Накратко казано – възможност да вземе без да даде, което е против идеята на GPL или поне така смятат критиците на горните текстове.

Affero GPL
Воден от желание да отговори на подобни на изложените рискове, през 2002 г. юридическият съветник на FSF проф. Ебен Мьоглен добавя една допълнителна клауза към GNU GPL v2, която гласи 4:

„Ако програмата, както сте я получили, е предназначена да взаимодейства с потребители чрез компютърна мрежа и ако във версията, която сте получили, на всеки потребител, който си взаимодейства с програмата, е предоставена възможност да заяви получаване на пълния изходен код, вие не трявба да премахвате тази възможност от вашата модифицирана версия на програмата или всяко произведение, базирано на програмата и трябва да осигурите еквивалентна възможност за всички потребители, които взаимодействат с вашата програма през компютърна мрежа да заявят незабавно получаване, чрез HTTP на пълния изходен код на модифицираната версия или на друго производно произведение“

Тази клауза дава решение, което отговаря на опасенията и възможните опастности за проекта „Affero“, но носи със себе си и нови проблеми. Първият, основен проблем, е, че новото лицензно споразумение не е съвместимо с GNU GPL v2. Това означава, че код, разпространяван под един от двата лиценза5 не може да бъде използван под другия, заради включеното и в двата изискване всяка модификация или произведение, включващо такъв код, да се разпростанява под същия лиценз.

Нещо друго, което ми прави впечатление, е изискването да се преценява предназначението на програмата („intent“). Това поставя под въпрос приложимостта на лиценза към приложения, които не комуникират директно с потребителя. Пример за такова приложение може да е софтуера за рутери, който може да предоставя диагностична информация на потребители, но основното му предназначение е да общува с други елементи от мрежовата инфраструктура, а не с крайния потребител. В подобни хипотези възниква и въпросът кой трябва да бъде възприеман като потребител, които неясноти внасят допълнителна несигурност и ограничават приложението на AGPL.

GNU Affero GPL
Във втората чернова („draft“) на GNU GPL v3 бе предвидена възможност носителят на правата да добави по свое желание и задължение за предоставяне на кода при използване по мрежа на приложението, но тази възможност отпадна във финалната версия. За сметка на това е решено да има отделен лиценз, наречен GNU Affero GPL, който да е съвместим с GNU GPL v3 и да сигнализира ясно задължението за предоставяне на модификациите и при отдалеченото ползване.

В момента GNU Affero GPL няма още финална версия, а към този момент е актуална втората чернова за обсъждаже („discussion draft 2“). Разликите с GNU GPL v3 са най-вече в секция 13 където се дефинира задължението за предодставяне на изходния код и съвместимостта на GNU Affero GPL с GNU GPL v36:

Независимо от всякакви други условия на този Лиценз, ако модифицирате Програмата, вашата модифицирана версия трябва ясно да предлага на всички потребители, взаимодействащи си отдалечено с нея, чрез компютърна мрежа (ако вашата версия поддържа такова взаимодействие) възможност да получат съответстващия изходен код на вашата версия, чрез предоставяне на достъп до съответстващия изходен код от мрежови сървър, без изискване на заплащане и чрез някой стандартен или обичаен начин за улесняване копирането на софтуера. Този съответстващ изходен код ще включва съответстващия изходен код на всяко произведение, разпространявано при условията на третата верся на GNU General Public License, съгласно условията в следващия параграф.

Независимо от всякакви други условия на този Лиценз, вие имате право да свързвате или комбинирате всяко произведение, разпространявано при настоящите условия, с друго произведение което се разпространява при условията на трета версия на GNU General Public License в сборно произведение и да предавате резултатното произведение. Условията на този Лиценз ще продължат да се прилагат към частта, която е при настоящите условия, но произведението, което е използвано ще остане при условията на третата верся на GNU General Public License

Заключение
Това е, накратко представена, идеята и предназначението на първия GUN лиценз, който ще е съвместим с GNU GPL и ще защитава моралните ценности и основните свободи на свободния софтуер и в софтуерния свят, където мрежите и отдалечения достъп до приложения ще играят все по-голяма роля. Моля, като намерите пропуски, грешки, неясноти или имате предложения за корекции или допълнения да ги оставите като коментар или за по-сигурно да ми пишете, за да може статията да стане максимално точна и полезна.

Бележки:
1. Първата версия на GNU GPL е от 1989-та, а година по-късно, през 1990-та е създадена и втората версия, която бе актуална до средата на 2007г. обратно

2. Четирите основни свободи са:

  • Свободата да използва програмата, за всякакви цели (свобода 0).
  • Свободата да изучава как работи самата програма, и да я адаптира към своите конкретни нужди (свобода 1). Достъпът до изходния код е предпоставка за това.
  • Свободата да разпространява копия за да подпомага своите ближни (свобода 2).
  • Свободата да усъвършенства програмата, и да прави своите постижения общодостъпни, така че да са от полза на цялата общност. (свобода 3). Достъпът до изходния код е предпоставка за това.

Срамота, ако сте прочели тази бележка.обратно

3. В секция 0. Definitions на GUN GPL v3 е записано:

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

обратно

4. Горният превод е неофициален и само с информативна цел. Оригиналният и приложим текст на на секция 2(d) от GNU GPL v2 е:

„If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program’s complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work.“

обратно

5. Под „лиценз“ тук имам предвид договор по смисъла на българското право. Дискусията дали GNU GPL е лиценз или договор дълга и сложна и не желая да взимам отношение тук и сега. обратно

6. Горният превод е неофициален и само с информативна цел. Оригиналният и приложим текст на на секция 13 от GNU Affero GPL dd2 е:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

обратно

Категория: свободни неща

2 коментара ↓

  • Хубаво ми е, когато хората коментират. Чета внимателно всеки коментар и отговарям, когато имам какво да кажа.

  • Милен на 06.11.2007г. в 17:08ч.

    Пейо, за пореден път си двигателя на свободната мисъл в България относно света на лицензите за ползване на свободен софтуер. Чесно казано за първи път чувам този лиценз.

  • Деси на 09.11.2007г. в 23:41ч.

    това ли говорихте с георг?