ЧАсті ПИтання про ліцензію GNU GPL

(Frequently Asked Questions about the GNU GPL)

 [image of the Head of a GNU]

Неофіційний переклад Мар'яна Рачинського (rmaryan@ukr.net).
Редактор -- Наталя Каторож (natalya_kat@ukr.net)

Оригінал англійською мовою можна прочитати за адресою http://www.gnu.org/copyleft/gpl-faq.html

Останні зміни до перекладу: 28 березня 2004


Ця сторінка містить відповіді на питання про Загальну Публічну Ліцензію GNU (GNU General Public License (GPL)), які виникають найчастіше. Дізнатися більше про інші ліцензії Фундації Вільного Програмного Забезпечення (FSF) можна на сайті FSF.

Після прочитання цих ЧАПів, Ви можете перевірити свій рівень знань вільних ліцензій пройшовши швидкий тест на сайті FSF .

Зміст



Як розшифровується "GPL"?

"GPL" розшифровується як "General Public License" -- Загальна Публічна Ліцензія. Найпоширенішою такою ліцензією є GNU General Public License або скорочено -- GNU GPL. Часто її скорочують просто до "GPL", коли зрозуміло, що мова іде саме про GNU GPL.

Чи всі вільні програми зобов'язані використовувати GPL?

Не зобов'язані. Існує багато інших ліцензій вільного програмного забезпечення. Ми маємо неповний список таких ліцензій. Будь-яка ліцензія, яка забезпечує користувачам певні специфічні права є вільною ліцензією.

Чому я повинен використовувати GNU GPL, а не якусь іншу вільну ліцензію?

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

Чи все програмне забезпечення GNU використовує ліцензію GNU GPL?

Більшість програмних пакетів GNU використовує GNU GPL, але є кілька програм і частин програм GNU, які використовують менш вимогливі ліцензії, наприклад Lesser GPL (LGPL). Це робиться тільки зі стратегічних міркувань.

Чи вважається програма, що використовує GPL автоматично частиною проекту GNU?

Будь-хто може випустити програму під ліцензією GNU GPL, але це не робить її частиною проекту GNU автоматично.

Для того, щоб програма вважалася частиною проекту GNU, вона повинна бути явно включена до цього проекту. Для цього потрібна згода і розробників програмного продукту і представників проекту GNU. Якщо Ви хочете долучити свою програму до проекту GNU -- пишіть на <maintainers@gnu.org>.


Що робити, якщо я помітив, що хтось, можливо, порушує GPL?

Ви повинні повідомити про це. Для початку -- якомога докладніше перевірте факти. Потім - повідомте видавця чи особу, що має авторське право і суміжні права на цю GPL програму. Якщо це Фундація Вільного Програмного Забезпечення, напишіть до <license-violation@gnu.org>. В іншому випадку -- зв'яжіться з тим, хто підтримує програму. Він або сам володіє авторським правом, або знає, як знайти власника авторського права.

Чому GPL дозволяє користувачам публікувати програми, змінені ними?

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

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

Деколи контроль за модифікованими версіями пропонується як спосіб уникнення непорозумінь між різними версіями, створеними різними користувачами. Але досвід показує, що такі непорозуміння не викликають великих проблем. За межами проекту GNU було створено багато версій Emacs, але користувачі легко їх відрізняють. GPL вимагає, щоб автор модифікованої версії чітко вказував своє ім'я. Це дозволяє відрізнити модифіковану версію від оригіналу та інших модифікованих версій і захистити репутацію інших розробників.


Чи обов'язково згідно з GPL публікувати вихідні тексти змінених програм?

Згідно з GPL Ви не зобов'язані публікувати програми, до яких Ви вносили зміни. Ви маєте право модифікувати будь-які GPL програми і використовувати їх особисто, ніколи навіть не публікуючи цих змін. Це правило стосується також і організацій та фірм. Організації можуть створювати модифіковані версії і використовувати їх в своїх межах не публікуючи ці зміни.

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

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


Чи можна мені використовувати GPL програми та незалежні від них пропрієтарні програми одночасно на одному комп'ютері?

Так. Це приклад "випадкового поєднання" ("mere aggregation"), який описано в тексті GPL. Тут явно дозволено таке поєднання, але це лише узаконення того, чого, на нашу думку, все одно не вдалося б уникнути.

Що означає "written offer valid for any third party"? Чи означає це, що хто завгодно, незалежно від обставин, може отримати вихідні тексти будь-якої GPL програми?

"Valid for any third party" означає, що будь-хто, хто читає текст ліцензії може вимагати від Вас виконання всіх умов цієї ліцензії.

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


У GPL сказано, що модифіковані версії, якщо вони були опубліковані, повинні бути доступними для будь-якої третьої сторони ("licensed ... to all third parties"). Що це за третя сторона?

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

Чи зобов'язаний я вимагати визнання своїх авторських прав на зміни, внесені мною до GPL програми?

Ви не зобов'язані якимось чином вимагати визнання своїх авторських прав чи реєструвати свій твір. У більшості країн набуття авторських прав відбувається автоматично, отже якщо Ви хочете випустити програму без копірайту, Ви повинні чітко вказати, що ця програма є програмою загального користування (public domain).

Незалежно від того, чи хочете Ви мати копірайт на ваші зміни чи ні, модифікована версія GPL програми повинна поширюватися вцілому під GPL.


Якщо у програмі поєднано код загального користування (public domain) і GPL код, чи можу я взяти частину коду загального користування і випустити його не під GPL?

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

Чи дозволяє мені GPL продавати копії програм за гроші?

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

Чи дозволяє мені GPL отримувати оплату за завантаження програм з мого сайту?

Так. За поширення копій програми Ви можете отримувати оплату будь-якого розміру. Якщо Ви надаєте доступ до файлів з двійковим кодом на якомусь сервері, то повинні надати "еквівалентний доступ" до отримання вихідних текстів -- тобто, ціна за завантаження вихідних текстів не повинна перевищувати ціни завантаження двійкових файлів.

Чи дозволяє мені GPL вимагати в будь-кого, хто отримав мою програму, якихось додаткових виплат чи повідомлень?

Ні. Фактично вимоги такого роду зроблять програму не вільною. Якщо люди повинні платити при отриманні копії програми чи посилати комусь якесь повідомлення, така програма не є вільною. Див. визначення вільного програмного забезпечення.

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


Якщо я поширюю GPL програму за гроші, чи зобов'язаний я крім цього надавати до неї вільний безоплатний доступ?

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

Чи дозволяє мені GPL обмежувати поширення модифікованої програми або бета-версії програми договором про нерозголошення?

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

Чи дозволяє мені GPL розробляти модифіковану програму, якщо я обмежений договором про нерозголошення?

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

Ви також можете надати ваші зміни замовнику на умовах ліцензії GPL, але погодитися не поширювати їх, поки замовник не дозволить цього. Це також не буде порушенням GPL, оскільки в такій ситуації нема факту поширення GPL коду із якимись додатковими обмеженнями.

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


Я хочу прославитися своєю роботою. Я хочу, щоб люди знали, що це створив саме я. Чи є можливість отримати визнання, використовуючи GPL?

Звичайно ж Ви можете отримати визнання і славу за вашу роботу. Частиною процесу випуску програми згідно з GPL є написання застереження про те, що на даний код поширюються ваші авторські права (якщо звичайно ж Ви володієте авторськими правами на цю програму). Більше того -- GPL вимагає, щоб кожна програма містила інформацію про особу, яка володіє авторським правом на неї.

Чому GPL вимагає долучення копії тексту GPL до кожної копії програми?

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

Можливо хтось волів би дати посилання на ліцензію в Інтернеті замість наведення самого тексту ліцензії, але Ви в цьому випадку не можете бути впевненими, що це посилання буде правильним через п'ять чи десять років. Можливо, за двадцять років теперішні Інтернет-посилання не використовуватимуться взагалі.

Єдиний спосіб гарантувати всім, хто отримав копію програми, можливість ознайомитися з ліцензією незалежно від змін в будові Інтернету, -- це включення тексту ліцензії до складу програми.


А що, якщо твір не набагато більший, ніж текст самої ліцензії?

Якщо програма є аж такою короткою, Ви можете обрати для неї не GNU GPL а якусь просту ліцензію, що дозволяє виконувати будь-які дії над копією програми.

Чи можна опустити преамбулу GPL або частину з настановами щодо використання GPL у власних програмах, просто щоб зекономити місце?

І преамбула, і настанови є невід'ємною частиною GNU GPL, їх не можна пропускати. Фактично, GPL захищена ліцензією, яка дозволяє копіювання GPL лише вцілому без жодних пропусків (Ви можете використати ті ж юридичні терміни і створити іншу ліцензію, але це вже не буде GNU GPL).

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


Що означає, що дві ліцензії є сумісними?

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

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


Що означає, що ліцензія є сумісною з GPL?

Це означає, що Ви можете поєднувати в одній програмі код, опублікований під іншою ліцензією, з кодом, опублікованим під GNU GPL.

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


Я пишу вільні програми, використовуючи не вільні бібліотеки. Які юридичні проблеми можуть виникнути при використанні GPL?

Якщо бібліотеки, які Ви використали підпадають під наступне правило з GPL:
      Однак, як спеціальний випадок, від поширюваного вихідного тексту, 

містити ніяких кодів компонент, що розповсюджуються (вихідними

текстами або двійковим кодом) звичайним чином (частини

компілятора, ядра, та ін.) з операційною системою, на якій

виконується дана програма, окрім випадку, коли така компонента

сама є супутньою частиною програми.

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

Якщо Ви хочете зв'язати вашу програму з бібліотекою, яка не підпадає під це правило, то Ви повинні додати своє власне доповнення до ліцензії на вашу програму як додаток до GPL. Наступне доповнення до ліцензії дає дозвіл на використання бібліотеки FOO при компілюванні вашої програми:

  Copyright (C) рік <ім'я автора>


Ця програма -- вільне програмне забезпечення. Ви можете розповсюджувати

її та/або вносити зміни відповідно до умов Загальної Публічної

Ліцензії GNU у тому вигляді, у якому вона була опублікована Фундацією

Вільного Програмного Забезпечення, 2ї версії Ліцензії, або (на Ваш

розсуд) будь-якої більш пізньої версії.


Ця програма розповсюджується із сподіванням, що вона виявиться

корисною, але БЕЗ БУДЬ-ЯКОЇ навіть УЯВНОЇ ҐАРАНТІЇ

КОМЕРЦІЙНОЇ ПРИДАТНОСТІ чи ВІДПОВІДНОСТІ БУДЬ-ЯКОМУ ПЕВНОМУ

ЗАСТОСУВАННЮ. Зверніться до Загальної Публічної Ліцензії GNU за

подробицями.


Ви мали отримати копію Загальної Публічної Ліцензії GNU разом з цією

програмою. Якщо Ви не отримали копії ліцензії, напишіть за адресою

Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,

MA 02111-1307, USA.


Додатково, як особливий виняток, <ім'я автора> дає дозвіл на

зв'язування коду цієї програми з кодом бібліотеки FOO

(або зі зміненими версіями FOO, якщо вони використовують таку ж ліцензію

як FOO), і поширення утвореної комбінації цих двох складових. Ви повинні

дотримуватися вимог ліцензії GNU General Public License у всьому іншому,

що не стосується бібліотеки FOO. Якщо Ви модифікуєте цей файл, то

Ви маєте також право розширити рамки доповнення чи переписати його,

хоча робити це і не обов'язково. При бажанні Ви можете навіть вилучити

це доповнення взагалі у своїй версії, якщо бібліотека FOO більше не буде

потрібною, або Ви хочете заборонити під'єднання бібліотеки FOO до своєї

версії програми.

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

Коли інші люди модифікують програму, вони не зобов'язані дозволяти ті ж винятки, що були дозволені для початкової програми -- вони мають право вибору у цьому питанні.

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

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

Якщо програму вже написано з використанням не вільної бібліотеки, то цілком можливо, що вже надто пізно щось міняти. Можливо, краще випустити програму як є, ніж не випускати її взагалі, але не забудьте вказати в README, про те, що для цієї програми необхідна пропрієтарна бібліотека це недолік і наголосіть, що було б непогано змінити програму так, щоб вона робила те ж саме, але без використання не вільних бібліотек.

Крім того, напишіть нам (<tasks@gnu.org>) про не вільну бібліотеку, що Ви використали і яку роль вона відіграє у вашій програмі. Ми можемо посприяти щоб хтось написав вільну бібліотеку, яка робитиме те, що Вам треба.


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

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

Однак, реєстрування авторського права в США є дуже хорошою ідеєю. Реєстрація є вагомим аргументом при розв'язуванні спірних питань.

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

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


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

На сьогодні багато університетів пробують підзаробити, закриваючи доступ до знань та інформації, які вони досліджують, фактично поводячись майже як звичайнісінькі комерційні структури (див. "The Kept University", Atlantic Monthly, March 2000, за загальним оглядом проблем і побічних ефектів такого підходу).

Якщо Ви вважаєте цілком ймовірним, що ваш навчальний заклад може не дозволити випустити вашу програму як вільне ПЗ, дуже важливо потурбуватися про це якомога раніше. Чим ближча програма до завершення, тим більше адміністрація схилятиметься до думки, що треба Вас позбутися і завершити роботу без Вас. На ранніх етапах Ви матимете більший вплив.

Отже, ми рекомендуємо Вам звернутися до адміністрації ще тоді, коли програма є на половину готовою з пропозицією випустити Вашу програму під вільною ліцензією або відмовитись від роботи. Не вважайте це блефом. Для остаточної перемоги Вам, можливо, доведеться сказати: "Або моя програма буде вільною, або не народиться ніколи!"


Чи можете Ви описати крок за кроком, як застосувати GPL до моєї програми?

Див. сторінку GPL instructions.

Я чув, що хтось отримав копію GPL програми під іншою ліцензією. Чи це можливо?

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

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


А що, якщо я хочу випустити свою програму під ліцензією GNU GPL і одночасно використовувати цей код в пропрієтарних програмах?

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

Чи є розробник GPL програми якимось чином обмежений нею? Чи може взагалі розробник якимось чином порушити GPL?

Строго кажучи, GPL -- це ліцензія, яку надає розробник користувачам і яка вказує умови використання, поширення і модифікування програми. Сам розробник ніяким чином не є обмеженим, тобто, що б він не робив -- це не є "порушенням" GPL.

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


Чи може розробник GPL програми потім передати її комусь для ексклюзивного використання?

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

Чи можна мені використовувати GPL програми, наприклад GNU Emacs, для розробки пропрієтарних програм? Чи можу я використовувати GPL-утиліти, наприклад GCC, для їхнього компілювання?

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

Деякі програми можуть з чисто технічних причин видавати фрагменти свого коду як результат роботи -- наприклад Bison копіює стандартну програму синтаксичного аналізу у файл з результатами. У таких випадках текст програми, виданої як результат роботи іншої програми, підпадає під ту ж ліцензію, що і код програми-генератора. Одночасно, частина результатів, яка є похідною від початкових даних, успадковує ліцензію і авторські права від початкових даних.

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


Чи маю я юридичне право використовувати вихідні тексти GPL програм?

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

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


Чи може урядова структура США публікувати програми під GNU GPL?

Якщо програму було написано працівниками урядових структур США, вона повинна поширюватися як програма загального користування (public domain), тобто як така, що не є об'єктом авторського права. Оскільки GNU GPL основана на проголошенні авторського права, така програма не може поширюватися під GNU GPL. (Але вона все ще може бути вільною програмою -- програми загального використання є вільними.)

Однак якщо урядова структура США замовила роботу по контракту в субпідрядника -- це вже інша ситуація. Контракт може вимагати від субпідрядника публікування роботи під ліцензією GNU GPL. (Саме так і було створено GNU Ada.) Або контракт може обумовлювати передачу авторських прав урядовій організації, яка, в свою чергу, може опублікувати програму під ліцензією GNU GPL.


Чи може урядова структура США публікувати модифікації до GPL програм?

Так. Якщо вдосконалення програми було виконане працівниками урядових структур США, то саме по собі це вдосконалення є кодом загального використання (public domain). Але вдосконалена програма вцілому все ще підлягає GNU GPL. У такому поєднанні нема жодних конфліктів.

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


Чи є якийсь спосіб змусити користувачів публікувати результати роботи GPL програми також згідно з ліцензією GPL? Наприклад, якщо моя програма використовується для підготовки креслень, чи можу я вимагати, щоб ці креслення публікуватися тільки згідно з GPL?

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

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

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


У яких випадках результати роботи GPL програм повинні підпадати також під GPL?

Тільки тоді, коли програма копіює свою частину до результуючих даних.

Якщо я додаю модуль до GPL програми, чи зобов'язаний я використовувати GPL як ліцензію для мого модуля?

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

Але Ви можете дозволяти ще й додаткові способи використання вашого коду. Наприклад поширювати код під менш строгою ліцензією у порівнянні з GPL. Але ця ліцензія повинна бути сумісною з GPL. Неповний список ліцензій можна знайти на сайті GNU.


Якщо бібліотека поширюється по ліцензії GPL (не LGPL), чи означає це, що будь-яка програма, що її використовує, повинна також поширюватися під GPL?

Так, повинна. Працююча програма фактично містить в собі і код бібліотеки.

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

Якщо інтерпретатор не більше, ніж інтерпретує програми написані якоюсь мовою, -- ні. Інтерпретована програма для інтерпретатора -- просто дані; вільна програма, яка поширюється на умовах ліцензії типу GPL, що основана на законах про авторське право, не може обмежувати Вас у використанні даних для інтерпретації. Ви можете запускати інтерпретатор для будь-яких даних (програми, що інтерпретується), будь-яким способом і не існує жодних обмежень на ліцензування даних, які Ви опрацьовуєте.

Однак часто буває, що інтерпретатор надає додаткові засоби (не обов'язково бібліотеки), використання яких фактично полягає у лінкуванні коду програми з частинами коду інтерпретатора. У таких випадках, якщо код, до якого лінкується програма, поширюється згідно з ліцензією GPL, то і сама програма повинна поширюватися згідно з ліцензією, сумісною з GPL. Прикладом такого засобу є JNI або Java Native Interface. Бібліотеки, доступ до яких здійснюється таким чином, фактично динамічно під'єднуються до Java програм.

Інший дуже поширений випадок -- коли разом з інтерпретатором надаються бібліотеки, код яких інтерпретується разом із самою програмою. Наприклад, Perl постачається з великою кількістю модулів, а реалізації Java включають в себе стандартний набір Java-класів. Ці бібліотеки завжди динамічно лінкуються з програмами, що їх використовують. У такій ситуації, якщо Ви вирішите використати GPL-модулі для Perl або класи Java у своїй програмі, Ви повинні випустити свою програму під ліцензією GPL незалежно від того, під якою ліцензією було випущено інтерпретатора Perl чи віртуальну машину Java.

Я пишу Windows програми на Microsoft Visual C++ і розповсюджую їх під GPL. Чи дозволяє GPL динамічно лінкувати мою програму із Visual C++ run-time library?

Так, оскільки run-time library є складовою компілятора чи інтерпретатора, який Ви використовуєте.

Чому початкова BSD ліцензія є несумісною з GPL?

Бо вона містить специфічну вимогу, яка суперечить GPL, а саме -- вимогу про анонс програми. У GPL сказано:
    Ви не маєте права висувати 
жодних додаткових обмежень прав викладених тут.

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

Виправлена ліцензія BSD вже не має такої вимоги, тому з нею нема жодних проблем.


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

Все залежить від того, як саме програма запускає плагіни. Якщо програма використовує fork і exec для їхнього запуску, тоді плагіни вважаються окремими програмами, а отже, ліцензія на головну програму ніяким чином не може обмежувати вибір ліцензії на допоміжні програми.

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

Межовим випадком застосування цього правила є варіант, при якому програма динамічно під'єднує плагін, але весь зв'язок з ним зводиться до виклику якоїсь "головної" функції (наприклад `main') і очікування, поки вона не завершиться.


Чи можу я створювати GPL плагіни для програми, що не є вільною?

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

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

Для додаткової інформації прочитайте відповідь на питання "Я пишу вільні програми, використовуючи не вільні бібліотеки..."


Ви маєте GPL програму, код якої я б хотів прилінкувати до свого для побудови пропрієтарної програми. Чи означає факт лінкування мого коду з GPL кодом те, що моя програма також повинна поширюватися під GPL?

Так.

Якщо так, чи маю я шанси домовитися з автором про отримання його коду під Lesser GPL?

Можете спробувати, але більшість авторів твердо скажуть "ні". Якщо Ви хочете використати наш код у своїй програмі, ваша програма також повинна бути вільною -- це одна із ключових ідей GPL. Наша мета -- заохотити Вас випустити вашу програму згідно з принципами нашої спільноти.

Ви завжди маєте законну альтернативу не використовувати наш код.


Яким чином я можу дозволити лінкувати пропрієтарні модулі з моєю GPL бібліотекою в межах тільки конкретних інтерфейсів?

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

створенням скомбінованої роботи. Таким чином, умови Загальної

Публічної Ліцензії GNU поширюються на всю комбінацію вцілому.


Як особливий виняток, власник авторського права на FOO дає Вам

дозвіл приєднувати FOO до незалежних модулів, які підтримують зв'язок з

FOO виключно через інтерфейс FOOBAR, незалежно від типу ліцензії,

під якою ці модулі поширюються, і поширювати утворену скомбіновану

роботу будь-яким способом за вашим вибором, при умові, що

кожна копія скомбінованої роботи буде супроводжуватися повною копією

вихідних текстів FOO (тої версії, яка була використана при створенні

скомбінованої роботи), яка надаватиметься згідно з Загальною

Публічною Ліцензією GNU із збереженням тексту цього дозволу. Незалежний

модуль -- це модуль, який не є похідним від модуля FOO.


Зверніть увагу -- той, хто вносить зміни до модуля FOO не зобов'язаний

надавати цей особливий дозвіл для своєї модифікованої версії, а робить це

на свій розсуд. Загальна Публічна Ліцензія GNU дає право випускати

модифіковані версії не даючи такого виняткового дозволу, лише наявність

такого дозволу в оригінальній програмі дає право давати такий дозвіл

також і для модифікованих версій.


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

Щоб дати відповідь на це питання, ми повинні бачити список всіх компонент, що використовує ваша програма, ліцензій цих компонент і короткий опис того, як саме ваша програма використовує ці компоненти (кількох речень буде досить). Наприклад:


Яка відмінність між "випадковим поєднанням" ("mere aggregation") і "об'єднанням модулів у програму" ("combining two modules into one program")?

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

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

Питання у чому саме полягає комбінування двох складових в одну програму -- чисто юридичне, остаточну відповідь на яке може дати лише суд. Ми переконані, що шукаючи відповідь на це питання, треба враховувати як механізми взаємозв'язку між модулями (exec, pipes, rpc, виклик функцій із використанням спільних сегментів пам'яті і т.п.), так і семантику комунікацій (якою саме інформацією обмінюються модулі).

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

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


Чому FSF вимагає, щоб люди, задіяні у розробці проектів FSF, передавали свої авторські права FSF? Якщо я володію авторським правом на GPL програму, чи повинен я також це зробити? Якщо повинен -- то як саме?

Наші юристи порадили нам робити саме так, бо це значно полегшить процес захисту виконання умов GPL в суді. Для цього ми повинні зробити статус авторських прав на наші програми максимально простим. Ми робимо це, вимагаючи від розробників або передати FSF авторські права на програму (ті, які підлягають передаванню), або явно відмовитися від авторських прав на програму, передаючи її таким чином у загальне користування (public domain).

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

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

Якщо Ви захочете відстоювати умови GPL для своєї програми особисто, то, можливо, Вам слід також скористатися цим підходом. Напишіть на <licensing@gnu.org>, якщо Вас цікавить детальніша інформація.


Чи маю я право модифікувати сам текст ліцензії GPL і випустити його як іншу ліцензію?

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

Якщо Ви все ж хочете використати нашу преамбулу в модифікованій ліцензії, напишіть нам про це на <licensing@gnu.org>. Якщо умови вашої ліцензії відповідатимуть нашим вимогам, ми дамо на це дозвіл.

Хоча, в принципі, не будемо заперечувати проти створення модифікованої ліцензії, але, сподіваємося, Ви двічі подумаєте перш, ніж будете це робити. Річ у тому, що модифікована ліцензія скоріш за все буде несумісною з GNU GPL і така несумісність може перешкоджати нормальному використанню у вільних програмах модулів, які Ви створите. Хаотичне відбруньковування різноманітних ліцензій вільного програмного забезпечення є обтяжливим з будь-якої точки зору.


Якщо я використовую програмне забезпечення згідно з ліцензією GNU GPL, чи маю я право внести зміни до початкової версії і продавати модифіковану програму на комерційних засадах?

Ви можете комерційно продавати копії модифікованої програми, але лише згідно з умовами GNU GPL. Наприклад, згідно з GPL, Ви повинні надати користувачам доступ до вихідних текстів програми, а користувачі матимуть право, згідно з GPL, поширювати їх далі і вносити зміни.

Виконання цих вимог -- це єдине, що треба зробити, щоб мати право включити код GPL-програми до своєї власної програми.


Чи можна використовувати GPL для ще чогось, крім програм?

Ви можете застосовувати GPL до будь-яких творів, якщо зрозуміло, що саме для них можна вважати "джерельним текстом" ("source code"). GPL визнає джерельний текст як найкращий об'єкт для модифікацій.

Для посібників та книжок, або, в загальному, для будь-яких творів метою яких є навчання, ми рекомендуємо використання GFDL замість GPL.


Розглянемо наступну ситуацію: Чи повинен X отримати дозвіл від Y на це?

Так. Y зобов'язаний випустити свою версію під GNU GPL, оскільки вона базується на версії V1 програми X. Ніщо не зобов'язує Y погодитися на якусь іншу ліцензію для свого коду. Тому X повинен отримати дозвіл в Y перед тим як випустити код під іншою ліцензією.

Я б хотів включити GPL програму до моєї пропрієтарної системи. Чи маю я на це право?

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

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

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

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

Якщо дві програми залишаються достатньо відділеними, наприклад як компілятор і ядро, або як редактор та інтерпретатор командної стрічки, тоді їх можна вважати двома окремими програмами, але навіть таке поєднання повинне бути зробленим правильно. Проблема лише у формі: як Ви можете описати те, що Ви робите. Для чого цим перейматися? Це все робиться для того, щоб користувачі чітко усвідомлювали, що в наборі програм, які вони використовують, є і вільні програми.

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


Я б хотів модифікувати GPL програми і лінкувати їх з проміжними бібліотеками фірми Money Guzzler Inc. Я не можу поширювати вихідні тексти цієї бібліотеки, тому кожен користувач сам повинен окремо отримати ці бібліотеки. Чому GPL не дозволяє цього?

Для цього є дві причини.

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

Надати всім користувачам доступ до вихідних текстів -- ось наша головна мета, зловживання -- це те, чого ми б хотіли уникнути.

Якщо конкретніше -- версії програми, що під'єднуються до бібліотек Money Guzzler не будуть по-справжньому вільними в тому сенсі, в якому ми це розуміємо -- вони не зможуть поширюватися з повним набором вихідних текстів, яких було б достатньо для кінцевих користувачів щоб перекомпілювати програму.


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

Якщо програма P поширюється під GPL то це означає, що *будь-яка її частина* також може поширюватися згідно з GPL. Якщо Ви приєднуєте модуль Q і випускаєте утворену програму P+Q під GPL, то це означає, що будь-яка частина P+Q може бути використана на умовах GPL. Однією такою частиною P+Q є Q. Отже, поширення P+Q під GPL означає що Q, як і будь-яка інша частина, може бути поширена під GPL. Іншими словами, користувач, який отримав P+Q під ліцензією GPL може просто витерти P так, що залишиться тільки Q, і те, що залишиться, все ще буде GPL-кодом.

Якщо ліцензія модуля Q дозволяє такі речі, то така ліцензія є сумісною з GPL. Якщо ні -- вона є несумісною з GPL.

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


Чи можу я випустити GPL програму тільки у двійковому форматі

Ні. Основною ідеєю GPL є те, що всі модифіковані версії мають бути вільним ПЗ , що означає, у цьому конкретному випадку, вихідні тексти мають бути доступними користувачам.

Я б хотів не розповсюджувати вихідні тексти разом з двійковим кодом. Чи можу я просто викласти вихідні тексти на FTP і не висилати їх звичайною поштою?

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

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

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

Звичайно ж найпростіший варіант -- це просто завжди надавати вихідні тексти разом із двійковим кодом програми.


Мій товариш отримав GPL-бібліотеку разом з пропозицією щодо отримання відповідних вихідних текстів і скопіював її і мені. Чи можу я скористатися цією пропозицією і замовити вихідні тексти для себе також?

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

Чи можу я викласти двійковий код на одному інтернет-сервері, а вихідні тексти на якомусь іншому інтернет-сервері?

GPL каже, що Ви повинні надати доступ до вихідних текстів "з цього ж місця"; тобто, зразу ж біля двійкових файлів. Однак, якщо Ви організували зберігання вихідних текстів на якомусь іншому сервері, а біля двійкових файлів дали прямий лінк на файли з вихідними текстами, на нашу думку це також можна вважати "тим же ж місцем".

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


Я хочу розповсюдити покращену версію GPL програми у двійковому форматі. Чи достатньо мені розповсюджувати з нею вихідні тексти лише початкової програми?

Ні, Ви повинні надати вихідні тексти, які відповідають двійковому коду. Відповідні вихідні тексти -- це тексти, з яких користувач може побудувати ті ж двійкові файли.

Частиною ідеї вільного програмного забезпечення є надання користувачам доступу до вихідних текстів *програм, які вони використовують*. Ті, хто використовують вашу версію, повинні мати доступ до вихідних текстів вашої версії програми.

Головна мета GPL -- збудувати Вільну Спільноту гарантуючи, що і самі вдосконалення вільних програм також будуть вільними. Якщо Ви поширюєте вдосконалену версію GPL-програми, то зобов'язані також поширювати і вдосконалені вихідні тексти згідно з GPL.


Я хочу розповсюджувати модифікований двійковий код програми, але мені незручно розповсюджувати ще й вихідні тексти. Чи достатньо буде просто надати список змін, які було здійснено у початковій програмі?

В цьому може бути якийсь сенс, але такий спосіб надання вихідних текстів може бути недієвим.

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

Отже, разом з двійковими файлами, Вам необхідно надавати крім списку змін ще й повні вихідні тексти програми.


Я хочу викласти двійковий код на анонімному FTP, а вихідні тексти висилати тільки тим, хто попросить.

Якщо Ви хочете розповсюджувати двійковий код через анонімний FTP, Ви повинні викласти також і вихідні тексти -- це не так вже й важко. Якщо Ви знайшли сайт, що розповсюджуватиме двійковий код, то на вихідні тексти місце вже знайдеться.

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

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


Як я можу бути певним, що кожен користувач, який завантажив двійкові файли також завантажить і вихідні тексти?

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

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


Компанія використовує модифіковану GPL програму на своєму сайті. Чи зобов'язана вона опублікувати модифіковані вихідні тексти?

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

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

При потребі Ви можете використати Affero GPL для програм, призначених для роботи на сервері.


Чи вважається "розповсюдженням" використання програми в межах однієї організації?

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

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


Якщо хтось викрав компакт-диск з GPL програмою, чи дозволяє GPL йому поширювати цю програму?

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

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


А що, якщо компанія розповсюджує копії, що містять комерційні таємниці?

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

Чому деякі бібліотеки GNU поширюються під ліцензією GPL, а не під ліцензією Lesser GPL?

Використання Lesser GPL для будь-якої конкретної бібліотеки є справді відхиленням від ідеї вільного програмного забезпечення. Це означає, що ми частково відступили від захисту свобод користувачів та інших вимог для того, щоб дозволити надбудовувати якісь певні модулі над GPL-програмами. Сам по собі такий відступ є негативним явищем.

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

Було б гарно мати можливість на деякий час спробувати застосувати LGPL до кожної бібліотеки і подивитися чи це допоможе, якщо ні -- повернутися назад до GPL. Але це неможливо. Як тільки ми використаємо LGPL для якоїсь бібліотеки, повернутися назад буде надзвичайно важко.

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


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

Нажаль, ми не робимо таких винятків. Це було б неправильно.

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

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

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


Чому у програмах повинно бути сказано "Version 2 of the GPL or any later version" (Версія 2 ліцензії GPL або будь-яка наступна версія)?

Час від часу, приблизно раз на кілька років, ми вносимо зміни до GPL -- деколи щоб прояснити її, деколи щоб дозволити якісь способи використання, які раніше не було дозволено, а деколи і щоб підвищити вимоги. (Остання зміна була в 1991 році.) Використання такого "непрямого посилання" в кожній програмі дає нам можливість змінити умови розповсюдження всього набору програм GNU, просто змінюючи саму GPL.

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

Нехай, наприклад, у програмі було сказано "Версія 2 ліцензії GPL або будь-яка наступна версія" і було випущено нову версію GPL. Якщо нова версія GPL дає додаткові свободи, то ці свободи зразу ж стануть доступними для всіх користувачів програми. А якщо GPL нової версії зробить вимоги суворішими, це не зможе завадити використанню поточної версії програми, оскільки її все ще можна буде використовувати згідно з умовами GPL версії 2. Якщо у програмі сказано "Версія 2 ліцензії GPL або будь-яка наступна версія", користувачі завжди матимуть дозвіл користуватися програмою, і навіть змінювати її згідно з умовами GPL версії 2 -- навіть після того, як вийде GPL новішої версії.

Виникає питання, як можна буде застосувати суворіші вимоги нової версії GPL, якщо вони не є обов'язковими до виконання при використанні існуючих програм? Як тільки з'явиться GPL версії 3, розробники більшості GPL-програм опублікують новіші версії своїх програм, вказавши "Версія 3 ліцензії GPL або будь-яка наступна версія". Тоді користувачі будуть змушені виконувати суворіші вимоги GPL версії 3, при використанні всіх наступних версій програми.

Однак, розробники не зобов'язані це робити; вони можуть дозволити використання програми на умовах попередньої версії GPL, якщо їм так більше подобається.


Чому Ви не використовуєте GPL для посібників?

Для посібників можна використовувати і GPL, але Ліцензія Вільної Документації GNU -- Free Documentation License (GFDL) підходить набагато краще.

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

Ми дозволяємо зміни в тексті, пов'язаному з технічними питаннями, але ми не дозволяємо вносити зміни у розділи, де стверджуються юридичні, політичні чи етичні позиції. Ми це робимо чітко перераховуючи розділи, змінювати які заборонено. GFDL передбачає можливість існування таких "незмінних розділів", в той час як GPL цього б не дозволила.

Дозвіл змінювати технічні розділи є важливим, оскільки люди, що модифікують програму, можуть захотіти виправити документацію, щоб та відповідала новим змінам в програмі. Ми не можемо зобов'язувати їх це робити, але сподіваємося, що саме так розробники і чинять. А раз так -- краще їм у цьому не заважати.


Чи існують переклади GPL іншими мовами?

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

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

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

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

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

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


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

Якщо інтерпретатор не більше, ніж інтерпретує програми, написані якоюсь мовою, відповідь -- так. Інтерпретована програма для інтерпретатора -- просто дані; GPL не ставить обмежень щодо інструментів, якими Ви опрацьовуєте свої програми. Однак часто буває, що інтерпретатор надає додаткові засоби (часто, але не обов'язково бібліотеки), використання яких фактично полягає у лінкуванні коду програми з частинами коду інтерпретатора. JNI або Java Native Interface є прикладом такого підходу. Бібліотеки, доступ до яких здійснюється таким чином фактично динамічно під'єднуються до Java програм. Отже, якщо ці бібліотеки поширюються під ліцензією, несумісною з GPL, ситуація повністю повторює випадок приєднання до програми GPL-несумісної бібліотеки.

Це означає, що:
  1. Якщо Ви написали код і поширюєте його під GPL, Ви можете дозволити як виняток, використовувати ці конкретні можливості, несумісні з GPL.

  2. Якщо Ви написали програму і випустили її під GPL, і ваша програма спеціально спроектована для використання таких можливостей, користувачі можуть сприймати це як неявний дозвіл до використання цих можливостей. Але якщо саме це Ви мали на увазі -- краще сказати про це явно.

  3. Ви не маєте права взяти чужий GPL код і використовувати його таким чином, чи дозволяти для нього винятки такого роду. Тільки власник авторського права може дозволяти такі винятки.

Хто має право вимагати виконання GPL?

Оскільки GPL спирається на авторське право, власники авторського права можуть відстоювати і вимагати виконання GPL. Якщо Вам відомі факти порушення GPL, Ви повинні повідомити розробників GPL-програми. Вони або самі володіють авторськими правами на програму, або знають як знайти власника авторських прав.

В об'єктно-орієнтованих мовах, наприклад Java, якщо я використовую GPL клас не модифікуючи його, а просто наслідуючи від нього інші класи, як GPL має бути застосована до такої програми?

Наслідування -- це створення похідної роботи. Тому умови GPL повинні стосуватися всієї програми, де було створено нащадків GPL класу.

Якщо я портую програму під GNU/Linux, чи означає це, що я зобов'язаний поширювати її як Вільне Програмне Забезпечення під GPL або якоюсь іншою ліцензією вільного ПЗ?

В загальному -- ні, це не є юридичною вимогою. Але в кожному конкретному випадку відповідь залежить від того, які бібліотеки Ви хочете використати і згідно з якими ліцензіями ці бібліотеки поширюються. Більшість системних бібліотек використовують GNU Lesser GPL, або GNU GPL з дозволом приєднувати бібліотеку до будь-чого. Ці бібліотеки можуть використовуватися і в програмах, що не є вільними, але у випадку Lesser GPL, вони висувають певні вимоги, які Ви повинні виконати.

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

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

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


Я щойно виявив, що одна компанія продає GPL програму за гроші. Чи порушують вони умови GPL, не надавши доступу до цієї програми через Інтернет?

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

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


Чи можу я випустити програму з ліцензією, згідно з якою буде дозволено розповсюджувати всі модифіковані версії цієї програми під GPL, але заборонено розповсюджувати під GPL саму початкову програму?

Така ліцензія буде суперечити сама собі. Давайте розглянемо, що це означатиме для користувачів.

Припустимо, що я отримав початкову версію програми (версію А), додав трохи коду (ну, наприклад, 1000 стрічок), і випустив модифіковану версію (версію Б) під GPL. GPL дозволяє будь-кому змінити код версії Б знову і випустити модифіковану програму під GPL. Отже я, або будь-хто інший, можу просто стерти ті 1000 стрічок коду, і створити версію В, яка буде ідентичною до версії А, але розповсюджуватиметься під GPL.

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


Зауваження щодо українського перекладу можна надсилати Мар'яну Рачинському (rmaryan@ukr.net)
Зауваження чи питання щодо Фундації Вільного Програмного Забезпечення чи GNU надсилайте на gnu@gnu.org. Є й інші способи зв'язатися з FSF.

Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Translation Copyright (C) 2003 Maryan Rachynskyy

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Відтворення і поширення цього документа вцілому будь-яким способом дозволяється при умові збереження цього зауваження.



SourceForge.net Logo