Вихідний код OpenWrt
Див. також: Додавання нового пристрою
Вихідний код OpenWrt зберігається у Git-репозиторії, що містить усі гілки та релізи, які колись створювалися.
Усі репозиторії доступні для перегляду онлайн:
Git-репозиторії OpenWrt
Увесь розвиток OpenWrt ведеться в основному Git-репозиторії, доступному через HTTP або HTTPS:
git clone https://git.openwrt.org/openwrt/openwrt.git
Альтернатива — дзеркало на GitHub:
git clone https://github.com/openwrt/openwrt.git
Структура вихідних файлів
Основні директорії в репозиторії:
- /config — конфігураційні файли для `make menuconfig`
- /include — глобальні конфігураційні Makefile-інструкції
- /package — опис і конфігурація всіх пакетів
- /scripts — скрипти, що використовуються під час збірки
- /target — налаштування ImageBuilder, ядра, SDK, toolchain
- /toolchain — конфігурація для побудови компіляторів
- /tools — утиліти, що потрібні під час побудови
Релізи
Процес формування релізів OpenWrt майже повністю автоматизовано.
Планується також запровадити файл TESTERS, подібний до MAINTAINERS з Linux, де учасники зможуть позначити, які пристрої вони готові тестувати.
Після створення релізу тестери отримуватимуть сповіщення про потребу протестувати образи для своїх пристроїв.
Основні принципи щодо релізів:
- Релізи мають відбуватись не рідше одного разу на рік
- Кожен реліз повинен мати хоча б один maintenance-оновлення
- Критичні виправлення (CVE, безпека) мають підтримуватись протягом року після релізу
- У реліз включаються лише підтримувані цілі (targets)
- Усі цілі повинні бути протестовані на реальному пристрої
- Реліз має відбуватись тоді, коли він готовий (без форсування)
Детальніше — на сторінці TODO проєкту.
Staging-дерева
Щоб створити особисту staging-гілку в `git.openwrt.org` (для core-учасників):
ssh git@git.openwrt.org "create openwrt/staging/ваш_нік" ssh git@git.openwrt.org "desc openwrt/staging/ваш_нік Staging tree of Ваше Ім’я"
Щоб ваша гілка стала видимою на https://git.openwrt.org:
ssh git@git.openwrt.org "perms openwrt/staging/ваш_нік + READERS gitweb"
Щоб зробити гілку публічною для читання (наприклад, для перегляду всіма):
ssh git@git.openwrt.org "perms openwrt/staging/ваш_нік + READERS @all"
Оновлення ядра Linux
Практика негайного оновлення ядра після кожного випуску призвела до проблем:
- фрагментація версій ядер;
- тиск на мейнтейнерів оновлювати частіше, ніж стабілізувати;
- витрати зусиль на 3–4 апгрейди ядра між релізами;
- складність підтримки модулів `kmod-*`;
- оновлення на неперевірені версії ядра.
Це не означає, що старі ядра слід залишати без змін. Але потрібен баланс між новизною і стабільністю.
Рекомендація: підтримувати максимум три паралельні версії ядра (оптимально — дві).
🔹 Ключовий принцип: стабільність важливіша за “bleeding edge”. Нові функції потрібні, але не за рахунок надійності.