Вихідний код OpenWrt

Див. також: Додавання нового пристрою

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

Усі репозиторії доступні для перегляду онлайн:

  • GitWeb — основне сховище проєкту OpenWrt
  • GitHub — дзеркало GitWeb з постійною синхронізацією

Увесь розвиток 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-гілку в `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"

Практика негайного оновлення ядра після кожного випуску призвела до проблем:

  • фрагментація версій ядер;
  • тиск на мейнтейнерів оновлювати частіше, ніж стабілізувати;
  • витрати зусиль на 3–4 апгрейди ядра між релізами;
  • складність підтримки модулів `kmod-*`;
  • оновлення на неперевірені версії ядра.

Це не означає, що старі ядра слід залишати без змін. Але потрібен баланс між новизною і стабільністю.

Рекомендація: підтримувати максимум три паралельні версії ядра (оптимально — дві).

🔹 Ключовий принцип: стабільність важливіша за “bleeding edge”. Нові функції потрібні, але не за рахунок надійності.

  • Last modified: 2025/05/25 20:33
  • by vazaz