Це переклад оригінальної сторінки з англійської мови.

Розгляд програм для GNU

Як запропонувати GNU свою програму

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

Будь ласка, не поспішайте при заповненні анкети. Ми оформили її як моноширинний текст, який ви можете скопіювати на свою систему й доповнити відповідями. Заповнивши анкету, надішліть її простим текстом (без HTML) на <gnueval@gnu.org>.

GNU — це не просто добірка корисних програм, а цілісна операційна система, 100% якої — вільне програмне забезпечення. Щоб система GNU залишалась технічно послідовною, всі її частини мусять бути сумісними. При розгляді ми оцінюємо, наскільки та чи інша програма пасує системі GNU — як технічно, так і філософськи — а також наскільки вона якісна, зручна й загалом відповідає звичним очікуванням. Спираючись на звіт про розгляд, Річард Столмен (очільник GNU) ухвалює остаточне рішення про те, приймати внесок чи ні.

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

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

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

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

Ще раз дякуємо за вашу зацікавленість GNU.

Що для програми означає бути пакунком GNU

Ось як rms роз'яснює, що для програми означає бути пакунком GNU, а також яку відповідальність передбачає супровід пакунка GNU.

Передання програми до набору пакунків GNU означає, що її розробниці й розробники погоджуються з проєктом GNU в тому, що «Ця програма є частиною проєкту GNU й випускається під егідою GNU», й зазначають це в самій програмі.

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

Програми, що є пакунками GNU, ми зазвичай розміщуємо на ftp.gnu.org (втім, можемо посилатись на інший ftp-сайт на ваш вибір, якщо він дозволяє з'єднання будь-кому й звідусіль).

Це означає, що офіційному вебсайту програми слід бути на www.gnu.org, а саме за адресою /software/ПРОГРАМА. Тобто передаючи комусь посилання на сторінку пакунка, давайте їм саме цю URL-адресу. Можете використовувати інший сайт для вторинних тем, наприклад для сторінок розробниць і розробників пакунка, а також для розміщення баз даних. (Зробимо виняток і розмістимо вебсторінки деінде, якщо виникне справді нагальна підстава.)

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

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

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

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

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

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

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

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

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

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

Докладніше — в цих документах:

Основні ідеї GNU й вільних програм викладено в таких дописах:

Анкета: пропоную GNU свою програму

* Загальні дані
** Чи згодні ви дотримувати політику GNU?
   Якщо вашу програму буде прийнято до складу системи GNU, це означає, 
   що ви станете супровідницею чи супровідником GNU, а це в свою чергу 
   означає, що вам треба дотримувати політику GNU щодо цієї програми GNU.
   (Це підсумок. Посібник із супроводу описує все докладніше.)

** Назва й версія пакунка:

** Повне ім'я авторки чи автора <е-пошта>:

** URL-адреса головної сторінки пакунка (якщо маєте):

** URL-адреса tar-архіву вихідного коду:
    Просимо надати архів випуску, щоб ми змогли його розглянути незалежно 
    від того, загальнодоступний він чи ні. Якщо не маєте куди його
    вивантажити, вкладіть його до листа.

** Короткий опис пакунка:


* Код
** Залежності:
    Просимо перелічити залежності пакунка (мову вихідного коду, бібліотеки тощо.).

** Налаштування, збірка, встановлення:
    Пакунку необов'язково використовувати Autoconf/Automake, але обов'язково
    дотримувати стандарти GNU. Навіть пакунки, які не потрібно збирати,
    мусять дотримувати ці стандарти, щоб при встановленні можливо було
    звичним чином зазначити цільові каталоги тощо. Будь ласка, перегляньте:
    https://www.gnu.org/prep/standards/html_node/Configuration.html
    https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html

** Документація:
    Використовувати Texinfo (https://www.gnu.org/software/texinfo/)
    для документації обов'язково. Радимо написати довідку й інструкцію
    як один посібник. Будь ласка, перегляньте:
    https://www.gnu.org/prep/standards/html_node/GNU-Manuals.html

** Інтернаціоналізація:
    Якщо будь-які рядки пакунка видні користувачкам і користувачам,
    зробіть можливим переклад їх іншими мовами за допомогою GNU Gettext:
    https://www.gnu.org/software/gettext/

** Доступність:
    Просимо зазначити особливості пакунка, які можуть перешкоджати його доступності:
    наприклад, використання спеціалізованих API.

** Безпека:
    Просимо описати всі можливі небезпечні особливості пакунка: які
    криптографічні алгоритми він застосовує, які чутливі дані зберігає,
    які дозволи йому потрібні тощо.

* Ліцензування:
   Як сама програма, *так і всі її залежності* (сторонні бібліотеки тощо)
   мусять бути вільним програмним забезпеченням, щоб їх було можливо додати
   до GNU. Зазвичай офіційні програми GNU слід випускати під
   GNU GPL версії 3 чи будь-якої новішої версії, а документацію GNU слід
   випускати під GNU FDL версії 1.3 чи будь-якої новішої версії.

   Перегляньте https://www.gnu.org/philosophy/license-list.html —
   практичний посібник із розрізнення вільних (для цілей GNU) і невільних
   ліцензій. Будь ласка, зазначте точні URL-адреси всіх використаних
   ліцензій, яких нема в переліку на цій сторінці.


* Схожі проєкти вільних програм:
   Розкажіть, що мотивувало вас написати свій пакунок, і пошукайте
   як мінімум у Каталозі вільних програм (https://www.gnu.org/directory/)
   проєкти, схожі на ваш. Якщо вони існують, просимо також описати,
   чим ваш пакунок принципово відмінний.

* Будь-які інші дані, коментарі чи запитання:

Заповнивши анкету, надішліть її на <gnueval@gnu.org>.

Інші способи допомогти проєкту GNU

Можете допомагати GNU багатьма різними шляхами — технічними й не тільки.