---
title: Огляд коду
x-toc-enable: true
...

репозиторії libreboot
===================

Інформацію про те, хто працює над libreboot і хто керує проектом, можна
знайти на [who.uk.md](who.uk.md)

Проект `libreboot` має 3 основні сховища Git:

* Система побудови: <https://codeberg.org/libreboot/lbmk>
* Веб-сайт (+документація): <https://codeberg.org/libreboot/lbwww>
* Зображення (для веб-сайта): <https://codeberg.org/libreboot/lbwww-img>
* Pico-serprog: <https://codeberg.org/libreboot/pico-serprog>

Ви також можете *переглядати* lbmk на власному екземплярі Libreboot cgit, хоча це не призначено
для розробки (використовуйте codeberg для цього):\
<https://browse.libreboot.org/lbmk.git/>

Якщо основні репозиторії Git лежать, дзеркала `lbmk` та `lbwww` є зазначеними
далі знизу на цій сторінці

Libreboot раніше використовував NotABug, але він мав проблеми з надійністю, які продовжувались,
в зв'язку з помилками HTTP 500, які повертались, в основному по вечорам, скоріше
за все тому, що надто багато людей було на ньому; було прийнято рішення, що Libreboot
потребував щось більш стабільне, тому тепер Libreboot розміщено на codeberg. Дивіться:
[оголошення переміщення на codeberg, 8 квітня 2023 року](news/codeberg.md)

Є також ці програми, розміщені в проекті Libreboot, і libreboot
або рекомендує їх, або використовує їх:

Проект `ich9utils` тепер доступний під `util/ich9utils` в lbmk, і
lbmk використовує *це*, але старий окремий репозиторій досі доступний на
notabug (bucts також там):

* Bucts (утиліта): <https://notabug.org/libreboot/bucts>
* ich9utils (утиліта): <https://notabug.org/libreboot/ich9utils>

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

Рекомендовано створювати libreboot (усі його частини) у дистрибутиві
Linux. Наприклад, система збірки (lbmk) не перевірена на системах BSD.
Встановіть `git` у вашій системі Linux, і завантажте одне із сховищ.

Розробка libreboot виконується за допомогою системи контролю версій Git.
Зверніться до [офіційної документації Git](https://git-scm.com/doc), якщо ви не
знаєте, як користуватися Git.

Репозиторій `bucts` розміщено в проекті libreboot, оскільки оригінальний
репозиторій на `stuge.se` більше не доступний, коли ми перевіряли останній раз.
Програма `bucts` була написана Пітером Стьюджем. Вам знадобляться `bucts`, якщо ви прошиваєте
внутрішньо libreboot ROM на ThinkPad X60 або T60, на якому зараз працює
невільний Lenovo BIOS. Інструкції щодо цього доступні тут:\
[посібники зі встановлення libreboot](docs/install/)

Репозиторій `ich9utils` активно використовується системою збирання `lbmk`. Однак
ви також можете завантажити `ich9utils` самостійно та використовувати його. Він генерує ICH9M
дескриптор+GbE образи для GM45 ThinkPad, які використовують південний міст ICH9M. Він
також може працювати з іншими системами, що використовують ту саму платформу/чіпсет.
Документація для `ich9utils` доступна тут:\
[документація ich9utils](docs/install/ich9utils.md)

lbmk (libreboot-make)
---------------------

Це основна система збирання в libreboot. Можна сказати, що `lbmk` *це*
libreboot! Завантажте репозиторій Git:

	git clone https://codeberg.org/libreboot/lbmk

Команда `git`, показана вище, завантажить систему збірки libreboot `lbmk`.
Потім ви можете перейти до цього так:

	cd lbmk

Внесіть будь-які зміни, які забажаєте, або просто побудуйте. Щоб отримати вказівки щодо
збирання `lbmk`, зверніться до [інструкцій зі збирання](docs/build/index.uk.md).

Інформація про саму систему збірки та про те, як вона працює, доступна в
[посібнику обслуговування lbmk](docs/maintain/).

lbwww та lbwww-img
-------------------

*Весь* веб-сайт і документація libreboot розміщені в репозиторії Git.
Завантажте так:

	git clone https://codeberg.org/libreboot/lbwww

Зображення розміщені на <https://av.libreboot.org/> і доступні в окремому
сховищі:

	git clone https://codeberg.org/libreboot/lbwww-img

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

Весь веб-сайт написаний у Markdown, зокрема його версія Pandoc.
Статичні сторінки HTML створюються за допомогою [Untitled](https://untitled.vimuser.org/).
Лія Роу, засновниця libreboot, також є засновницею проекту генератор статичних сайтів
Untitled.

Якщо хочете, ви можете налаштувати локальний HTTP-сервер і створити власну локальну
версію веб-сайту. Зауважте, що зображення все одно будуть посилатися на ті, що
розміщені на <https://av.libreboot.org/>, тому будь-які зображення, які ви додаєте до `lbwww-img`
не відображатимуться на вашому локальному сайті `lbwww`, якщо ви зробите, щоб посилання на зображення (для
зображень, які ви додаєте) посилались на `av.libreboot.org`. Однак необхідно, щоб такі
зображення розміщувалися на av.libreboot.org.

Тому, якщо ви бажаєте додати зображення на веб-сайт, надішліть їх також до
репозиторію `lbwww-img`, із посиланням на них
<https://av.libreboot.org/шлях/до/вашого/нового/зображення/в/lbwww-img> для кожного з них.
Коли його буде поєднано на веб-сайті libreboot, ваші зображення з'являться в реальному часі.

Якщо додаєте світлину, стисніть її для веб розповсюдження. Світлинам варто бути приблизно
800px завширшки, і зазвичай менше 100Кбайт розміром:

По-перше, зменшіть масштаб вашого зображення до приблизно 800px завширшки, використовуючи вашу улюблену
програму маніпуляції зображенням. Наприклад, з `imagemagick` ви можете зробити
наступне (переконайтесь, що зображення не є вже меншим або еквівалентним, ніж віддано перевагу).

        convert original.jpg -resize 600000@ -quality 70% web.jpg

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

        jpegoptim -s --all-progressive web.jpg

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

Зображенням PNG варто бути оптимізованими з `zopfli` (він так само без втрат).
Наприклад, це зменшило логотип завантаження Libreboot з приблизно 11k до 3k:

        zopflipng -ym image.png image.png

Для цілей розробки ви можете спочатку створити локальні посилання на зображення, а
потім налаштувати URL-адреси, коли надсилатимете документацію/патчі веб-сайту.

На веб-сайті Untitled є інструкції щодо налаштування локальної версії
веб-сайту. Завантажте untitled, і в своєму каталозі `untitled` створіть каталог
під назвою `www/`, потім увійдіть у каталог www і клонуйте сховище `lbwww`
там. Налаштуйте локальний HTTP-сервер відповідним чином.

Знову ж таки, інструкції для цього доступні на веб-сайті Untitled.

Ім'я не вимагається
-----------------

Внески, які ви робите, реєструються публічно в репозиторії Git, доступ
до якого мають всі. Це включає ім'я та електронну адресу
учасника.

У Git для імені автора та електронної адреси вам не потрібно використовувати
ідентифікаційні дані. Ви можете використовувати `libreboot Contributor`, а свою електронну адресу можна
вказати як contributor@libreboot.org. Вам дозволено це робити, якщо
ви бажаєте зберегти конфіденційність. Ми віримо в конфіденційність. Якщо ви вирішите залишитися
анонімними, ми врахуємо це.

Звичайно, ви можете використовувати будь-яке ім'я та/або адресу електронної пошти.

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

Якщо ви використовуєте інше ім'я та адресу електронної пошти у своїх комітах/патчах, то
маєте бути досить анонімним. використовуйте
[git log](https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History)
та [git show](https://git-scm.com/docs/git-show), щоб підтвердити це перед тим, як ви
надсилаєте зміни до загальнодоступного сховища Git.

Ліцензії (для учасників)
--------

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

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

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

Ви можете знайти типові приклади ліцензій
[тут](https://opensource.org/licenses).

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

<https://opensource.org/licenses/MIT>

Надсилайте виправлення
------------

Створіть обліковий запис на <https://codeberg.org/> і перейдіть (увійшовши в систему) до
репозиторію, над яким ви хочете працювати. Натисніть *Fork*, і у вашому обліковому записі,
ви матимете власне сховище libreboot. Клонуйте свій репозиторій, внесіть у нього
будь-які зміни, а потім надішліть їх у свій репозиторій у своєму обліковому
записі на NotABug. Ви також можете зробити це на новій гілці, якщо хочете.

У своєму обліковому записі Codeberg, ви можете перейти до офіційного репозиторія libreboot
і надіслати запит на отримання. Принцип роботи подібний до інших популярних веб-платформ
Git, якими люди користуються сьогодні.

Ви можете відправити свої патчі туди. Крім того, ви можете увійти на
IRC-канал libreboot і повідомити канал, які виправлення ви хочете бути переглянутими, якщо у вас
є власне сховище Git з виправленнями.

Після того, як ви подасте Pull Request, розробники libreboot отримають сповіщення
електронною поштою. Якщо ви не отримаєте достатньо швидкої відповіді від проекту, ви
також можете повідомити проект через канал `#libreboot` на Libera Chat.

Інший спосіб подати виправлення - це напряму надіслати Лії Роу електронною поштою:
[leah@libreboot.org](mailto:leah@libreboot.org) - це адреса електронної пошти проекту Лії.

Однак, для прозорості процесу перевірки коду, ми рекомендуємо на даний момент
використовувати Codeberg.

Дзеркала lbmk.git
===================

Репозиторій `lbmk` містить автоматизовану систему побудови Libreboot, що
створює випуски Libreboot (включаючи зібрані образи ROM).

Ви можете виконати `git clone` на будь-якому з цих посилань (посилання є також доступними для натискання,
для перегляду змін в вашому веб-браузері):

* <https://git.disroot.org/libreboot/lbmk>
* <https://gitea.treehouse.systems/libreboot/lbmk>
* <https://git.fosscommunity.in/libreboot/lbmk>
* <https://0xacab.org/libreboot/lbmk/>
* <https://framagit.org/libreboot/libreboot>
* <https://gitlab.com/libreboot/lbmk>
* <https://pagure.io/libreboot>
* <https://rocketgit.com/libreboot/libreboot>

Дзеркала pico-serprog.git
=========================

* <https://notabug.org/libreboot/pico-serprog>

дзеркало lbwww.git
----------------

Репозиторій `lbwww` містить файли Markdown (варіант pandoc), для використання
з [генератором статичних сайтів Untitled](https://untitled.vimuser.org/); це те,
що Libreboot використовує для надання веб-сторінок HTML, *включаючи* сторінку, яку ви
читаєте прямо зараз!

Ви можете виконати `git clone` на цих посиланнях, та/або натиснути для перегляду змін в вашому
веб-браузері. Дивіться:

* <https://git.disroot.org/libreboot/lbwww>
* <https://gitea.treehouse.systems/libreboot/lbwww>
* <https://git.fosscommunity.in/libreboot/lbwww>
* <https://0xacab.org/libreboot/lbwww>
* <https://framagit.org/libreboot/lbwww/>
* <https://gitlab.com/libreboot/lbwww>
* <https://rocketgit.com/libreboot/lbwww>

ПРИМІТКА: Репозиторій `lbwww-img` не зазвичай надано, на дзеркалах, оскільки
вони лише файли зображень, які ви можете знайти на <https://av.libreboot.org>
і це не намір проекта Libreboot втягнути *дзеркала*
в додатковий трафік шляхом розміщення зображень.

Репозиторії Notabug
====================

Коміти, які ідуть до codeberg досі push'аться до notabug, в додаток до
інших дзеркал. Notabug розцінюється *дзеркалом* з 8 квітня 2023 року, коли
основний сайт розробки Libreboot переїхав на *Codeberg*.

До СТАРИХ репозиторіїв notabug досі push'иться в якості резервної копії, але дзеркало codeberg
розцінюється в якості основного/офіційного зараз, як в [оголошенні 8
квітня 2023 року](news/codeberg.md). Дивіться:

* Система побудови: <https://notabug.org/libreboot/lbmk>
* Веб-сайт (+документація): <https://notabug.org/libreboot/lbwww>
* Зображення (для веб-сайта): <https://notabug.org/libreboot/lbwww-img>

Для відправлення виправлень, тепер віддається перевага тому, щоб ви використовували *codeberg*. Технічно,
pull request'и досі можливі через Notabug. Поки Notabug досі існує,
виправлення Libreboot буде продовжено push'ити там, відзеркалюючи що push'иться
на Notabug.

Тому що pull request'и та проблемні питання були доступними на notabug в минулому, має
сенс тримати їх відкритими, хоча наше прохання, щоб ви відправляли до codeberg. Якщо
їх було би закрито на notabug, або існуючі PR та проблемні питання не були би доступними для перегляду
більше, тому вони мусять залишатись відкритими.
