* [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity
@ 2026-07-17 17:16 rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 01/16] scripts: Add hunspell checker rockosov
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:16 UTC (permalink / raw)
This patch series reworks the LANDAU documentation website to reflect
the project's evolution from a single Linux kernel fork into a broader
umbrella initiative under RULKC.
The series introduces infrastructure improvements (Hugo migration,
Mermaid support, spell checking) followed by content restructuring that
establishes LANDAU as a collection of system components, with LANDAU
Linux as the first active subproject.
Compared to v1, this version includes significant additions:
- Full Hugo migration with a dedicated theme (landau-hacker)
- Mermaid diagram rendering support (JavaScript-based workaround)
- A comprehensive 300+ line maintenance manifest for LANDAU Linux
- Project branding unification (LANDAU -> LANDAU Linux)
- Maintainer responsibilities and the 2MR process with gitGraph diagrams
Summary of changes:
- Patch 1: .gitignore - ignore Hugo build artifacts
- Patch 2: scripts/spellcheck.sh - hunspell-based spell checker (en_US + ru_RU)
- Patch 3: themes/landau-hacker - add dedicated Hugo theme (port of GitHub Hacker)
- Patch 4: hugo.yaml - preliminary Hugo configuration
- Patch 5: layouts/partials/head-additions.html - Mermaid JS workaround
- Patch 6: content: rename index.md -> _index.md for Hugo compatibility
- Patch 7: content: move content to subdirectory
- Patch 8: Re-design main page from LANDAU Kernel to LANDAU umbrella project
- Patch 9: Add LANDAU Linux subproject overview (index.md)
- Patch 10: Add LANDAU Linux maintenance manifest (maintenance.md)
- Patch 11: landau-linux: major overhaul of the maintenance doc
- Patch 12: landau-linux: finalize documentation after review call
- Patch 13: config: update LANDAU acronym and branding
- Patch 14: treewide: update rulkc official mailing address
- Patch 15: misc: fix front matter (published -> draft)
The maintenance manifest (patches 10-12) formalizes key processes:
- Versioning scheme (VERSION.PATCHLEVEL.SUBLEVEL.lXYZ)
- Branching strategy (landau-next, landau-V.P.y)
- Release cycle with RMW and RC phases
- LTS support policy (guaranteed support for the latest LTS kernel)
- Maintainer workflow with the double-merge (2MR) process
- GPG signing requirements for tags and pull requests
- Squash policy with Co-developed-by attribution
After this series, the website will have:
.
├── _config.yml # Legacy Jekyll config
├── hugo.yaml # Main Hugo configuration
├── README.md # Project overview
├── LICENSE # GNU GPL v3 license
│
├── content/ # Site content
│ ├── _index.md # LANDAU umbrella landing page
│ ├── landau-linux/
│ │ ├── _index.md # LANDAU Linux subproject overview
│ │ └── maintenance/
│ │ └── _index.md # Maintenance manifest
│ ├── open_mic_27_03_2026/
│ │ └── _index.md # Open Mic event page
│ └── rulkc.png # RULKC logo image
│
├── layouts/
│ └── partials/
│ └── head-additions.html # Mermaid JS workaround
│
├── scripts/
│ └── spellcheck.sh # Hunspell-based spell checker
│
└── themes/
└── landau-hacker/ # Custom Hugo theme
├── archetypes/ # Content templates
│ ├── default.md
│ ├── events.md
│ └── news.md
├── layouts/ # Theme templates
│ ├── 404.html
│ ├── index.html
│ ├── _default/
│ │ ├── baseof.html
│ │ ├── list.html
│ │ ├── single.html
│ │ └── _markup/
│ │ └── render-codeblock.html
│ └── partials/
│ └── head-additions.html
├── static/ # Static assets
│ ├── css/
│ │ └── hacker.css # Main stylesheet (290 lines)
│ ├── favicon.svg # Site favicon
│ ├── images/
│ │ ├── bkg.png # Background texture
│ │ └── bullet.png # List bullet icon
│ └── rulkc.png # RULKC logo
├── LICENSE # GPL v3
├── README.md # Theme documentation
└── theme.yaml # Theme metadata
Future subprojects (U-Boot, EFI, QEMU) will follow the same pattern.
This work was co-developed by:
- Dmitry Rokosov <rockosov at rulkc.org>
- Nikita Shubin <nikita.shubin at maquefel.me>
- Serge Semin <svsemin at unistemlab.com>
Dmitry Rokosov (8):
Re-design main page from LANDAU Kernel to LANDAU umbrella project
Add LANDAU Linux project overview and maintenance documentation
content: Move content to subdirectory
template: config: fix LANDAU acronym expansion and update URLs
content: convert links to canonical
config: update LANDAU acronym and branding
landau-linux: finalize documentation after review call
treewide: update rulkc official mailing address
Nikita Shubin (7):
scripts: Add hunspell checker
hugo: renamed index.md to _index.md
themes: add landau-hacker theme
template: config: Add landau preliminary config
content/landau_linux_maintenance: Fix front matter
mermaid: Add mermaid workaround
misc: add .gitignore
Serge Semin (1):
landau-linux: maintenance: major overhaul of the maintenance doc
.gitignore | 2 +
.spellcheck-allow.txt | 89 +++
README.md | 4 +-
_config.yml | 4 +-
content/_index.md | 88 +++
content/landau-linux/_index.md | 27 +
content/landau-linux/maintenance/_index.md | 491 +++++++++++++
.../open_mic_27_03_2026/_index.md | 4 +-
rulkc.png => content/rulkc.png | Bin
hugo.yaml | 41 ++
index.md | 67 --
layouts/partials/head-additions.html | 26 +
scripts/spellcheck.sh | 112 +++
themes/landau-hacker/LICENSE | 674 ++++++++++++++++++
themes/landau-hacker/README.md | 19 +
themes/landau-hacker/archetypes/default.md | 5 +
themes/landau-hacker/archetypes/events.md | 38 +
themes/landau-hacker/archetypes/news.md | 9 +
themes/landau-hacker/layouts/404.html | 39 +
.../_default/_markup/render-codeblock.html | 7 +
.../layouts/_default/baseof.html | 43 ++
.../landau-hacker/layouts/_default/list.html | 14 +
.../layouts/_default/single.html | 3 +
.../layouts/_markup/render-codeblock.html | 7 +
themes/landau-hacker/layouts/index.html | 3 +
.../layouts/partials/head-additions.html | 0
themes/landau-hacker/static/css/hacker.css | 290 ++++++++
themes/landau-hacker/static/favicon.svg | 3 +
themes/landau-hacker/static/images/bkg.png | Bin 0 -> 1218 bytes
themes/landau-hacker/static/images/bullet.png | Bin 0 -> 603 bytes
themes/landau-hacker/static/rulkc.png | Bin 0 -> 8749 bytes
themes/landau-hacker/theme.yaml | 15 +
32 files changed, 2051 insertions(+), 73 deletions(-)
create mode 100644 .gitignore
create mode 100644 .spellcheck-allow.txt
create mode 100644 content/_index.md
create mode 100644 content/landau-linux/_index.md
create mode 100644 content/landau-linux/maintenance/_index.md
rename open_mic_27_03_2026.md => content/open_mic_27_03_2026/_index.md (98%)
rename rulkc.png => content/rulkc.png (100%)
create mode 100644 hugo.yaml
delete mode 100644 index.md
create mode 100644 layouts/partials/head-additions.html
create mode 100755 scripts/spellcheck.sh
create mode 100644 themes/landau-hacker/LICENSE
create mode 100644 themes/landau-hacker/README.md
create mode 100644 themes/landau-hacker/archetypes/default.md
create mode 100644 themes/landau-hacker/archetypes/events.md
create mode 100644 themes/landau-hacker/archetypes/news.md
create mode 100644 themes/landau-hacker/layouts/404.html
create mode 100644 themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/_default/baseof.html
create mode 100644 themes/landau-hacker/layouts/_default/list.html
create mode 100644 themes/landau-hacker/layouts/_default/single.html
create mode 100644 themes/landau-hacker/layouts/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/index.html
create mode 100644 themes/landau-hacker/layouts/partials/head-additions.html
create mode 100644 themes/landau-hacker/static/css/hacker.css
create mode 100644 themes/landau-hacker/static/favicon.svg
create mode 100644 themes/landau-hacker/static/images/bkg.png
create mode 100644 themes/landau-hacker/static/images/bullet.png
create mode 100644 themes/landau-hacker/static/rulkc.png
create mode 100644 themes/landau-hacker/theme.yaml
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 01/16] scripts: Add hunspell checker
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
@ 2026-07-17 17:16 ` rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 02/16] hugo: renamed index.md to _index.md rockosov
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:16 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
See original commit by Viacheslav Bocharov <v at baodeep.com>
https://github.com/adeepn/landau/commit/c694f9d9f41d0b5298fc822edcdfba61bceadb6c.
[Splitted checker into content repo site]
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
.spellcheck-allow.txt | 89 +++++++++++++++++++++++++++++++++
scripts/spellcheck.sh | 112 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 201 insertions(+)
create mode 100644 .spellcheck-allow.txt
create mode 100755 scripts/spellcheck.sh
diff --git a/.spellcheck-allow.txt b/.spellcheck-allow.txt
new file mode 100644
index 000000000000..a14a49dc19eb
--- /dev/null
+++ b/.spellcheck-allow.txt
@@ -0,0 +1,89 @@
+AOSP
+BSP
+CalVer
+Dependabot
+LTS
+Lightbox
+ODM
+OSDevConf
+OpenHands
+PEM
+PRs
+RGB
+RSS
+RULKC
+SCSS
+SHA
+UI
+YAML
+backlink
+canonicalise
+changelog
+codespell
+cron
+dirs
+docroot
+env
+favicon
+flavoured
+frontmatter
+github
+hostname
+hunspell
+inlined
+labelled
+linux
+mailto
+md
+nginx
+og
+params
+px
+repo
+roadmap
+rsync
+rsyncing
+rsyncs
+rulkc
+submodule
+toolchain
+url
+апстрим
+Митапы
+Форк
+агенда
+архитектур
+бэк
+валидируемый
+валидны
+вендоров
+деплой
+десктопов
+драфты
+коммит
+коммитит
+коммиты
+конфиге
+мейнтейнеров
+мерж
+мержа
+митапы
+патчей
+перебилдит
+перевыпустили
+перегенерировать
+прогонятся
+продакшн
+продакшне
+пуше
+пушем
+разрулит
+ревью
+репозитории
+репозитория
+санкционные
+удвоений
+форк
+форка
+форке
+форки
diff --git a/scripts/spellcheck.sh b/scripts/spellcheck.sh
new file mode 100755
index 000000000000..caf08f486343
--- /dev/null
+++ b/scripts/spellcheck.sh
@@ -0,0 +1,112 @@
+#!/usr/bin/env bash
+# Spell-check Markdown sources using hunspell with ru_RU + en_US dictionaries.
+# Words listed in .spellcheck-allow.txt are accepted as correct.
+#
+# Usage: scripts/spellcheck.sh [paths...]
+# Default scope when no args given: content/, docs/, README.md, AGENTS.md.
+
+set -euo pipefail
+
+ROOT=$(cd "$(dirname "$0")/.." && pwd)
+ALLOW="${ROOT}/.spellcheck-allow.txt"
+[ -f "${ALLOW}" ] || { echo "missing allow list: ${ALLOW}" >&2; exit 1; }
+
+cd "${ROOT}"
+
+PATHS=("$@")
+if [ "${#PATHS[@]}" -eq 0 ]; then
+ PATHS=(content docs README.md AGENTS.md)
+fi
+
+# Build the file list. Avoid `mapfile`/`readarray` so the script runs on
+# Bash 3.2 (macOS default) as well as Linux's modern bash.
+files=()
+while IFS= read -r line; do
+ [ -n "${line}" ] && files+=("${line}")
+done < <(
+ for p in "${PATHS[@]}"; do
+ [ -e "${p}" ] || continue
+ if [ -d "${p}" ]; then
+ find "${p}" -type f -name '*.md'
+ else
+ printf '%s\n' "${p}"
+ fi
+ done | sort -u
+)
+
+if [ "${#files[@]}" -eq 0 ]; then
+ echo "no markdown files found"
+ exit 0
+fi
+
+# Sanity check: confirm hunspell can actually load both dictionaries.
+# (On some environments — e.g. GitHub Actions ubuntu-24.04 runner image —
+# Ubuntu's hunspell-ru / hunspell-en-us packages can install successfully
+# but leave /usr/share/hunspell/ stripped of the .aff/.dic files. Set
+# DICPATH to a directory containing ru_RU.{aff,dic} and en_US.{aff,dic} as
+# a workaround.)
+if echo 'архитектура' | hunspell -d ru_RU,en_US -l | grep -qx 'архитектура'; then
+ echo "::error::hunspell ru_RU dictionary not loaded properly"
+ echo "DICPATH=${DICPATH:-(unset)}"
+ hunspell -D 2>&1 | head -30
+ exit 1
+fi
+if echo 'architecture' | hunspell -d ru_RU,en_US -l | grep -qx 'architecture'; then
+ echo "::error::hunspell en_US dictionary not loaded properly"
+ echo "DICPATH=${DICPATH:-(unset)}"
+ hunspell -D 2>&1 | head -30
+ exit 1
+fi
+
+# Explicit template — bare `mktemp` errors on macOS/BSD (`too few X's in template`).
+unknown=$(mktemp "${TMPDIR:-/tmp}/landau-spellcheck.XXXXXX")
+trap 'rm -f "${unknown}"' EXIT
+
+for f in "${files[@]}"; do
+ awk '
+ BEGIN { fm = 0; code = 0 }
+ NR == 1 && /^---[[:space:]]*$/ { fm = 1; next }
+ fm && /^---[[:space:]]*$/ { fm = 0; next }
+ fm { next }
+ /^[[:space:]]*```/ { code = !code; next }
+ code { next }
+ {
+ gsub(/<[^>]*>/, " ") # HTML tags
+ gsub(/`[^`]*`/, " ") # inline code spans
+ gsub(/https?:\/\/[^[:space:])]+/, " ") # URLs
+ gsub(/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/, " ") # emails
+ gsub(/[][(){}|*_~#]/, " ") # markdown punctuation
+ # Strip invisible Unicode chars that confuse hunspell tokenizer.
+ # Byte sequences below are the UTF-8 encodings of:
+ gsub(/\xef\xb8\x8f/, " ") # U+FE0F variation selector-16
+ gsub(/\xef\xb8\x8e/, " ") # U+FE0E variation selector-15
+ gsub(/\xe2\x80\x8d/, " ") # U+200D zero-width joiner
+ gsub(/\xe2\x80\x8c/, " ") # U+200C zero-width non-joiner
+ gsub(/\xe2\x80\x8b/, " ") # U+200B zero-width space
+ print
+ }
+ ' "$f" \
+ | hunspell -d ru_RU,en_US -l \
+ >> "${unknown}"
+done
+
+# Empty unknown list = nothing to filter; happy exit.
+if [ ! -s "${unknown}" ]; then
+ echo "Spell check OK across ${#files[@]} files."
+ exit 0
+fi
+
+# Filter accumulated unknowns against the allow list (exact, fixed strings).
+sort -u "${unknown}" -o "${unknown}"
+filtered=$(grep -vxFf "${ALLOW}" "${unknown}" || true)
+
+if [ -n "${filtered}" ]; then
+ echo "::error::Unknown words found in markdown sources:"
+ printf '%s\n' "${filtered}" | sed 's/^/ /'
+ echo
+ echo "If these are intentional (proper nouns, technical terms),"
+ echo "add them to .spellcheck-allow.txt. Otherwise, fix the spelling."
+ exit 1
+fi
+
+echo "Spell check OK across ${#files[@]} files."
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 02/16] hugo: renamed index.md to _index.md
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 01/16] scripts: Add hunspell checker rockosov
@ 2026-07-17 17:16 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 03/16] Re-design main page from LANDAU Kernel to LANDAU umbrella project rockosov
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:16 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
hugo requires this for some reason, otherwise refuses to render pages
on same level.
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
index.md => _index.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename index.md => _index.md (100%)
diff --git a/index.md b/_index.md
similarity index 100%
rename from index.md
rename to _index.md
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 03/16] Re-design main page from LANDAU Kernel to LANDAU umbrella project
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 01/16] scripts: Add hunspell checker rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 02/16] hugo: renamed index.md to _index.md rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 04/16] Add LANDAU Linux project overview and maintenance documentation rockosov
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Replace the LANDAU Kernel-specific landing page with a broader
LANDAU umbrella project introduction. The new page presents LANDAU
as a collection of system components (Linux kernel, U-Boot, EFI,
QEMU, and more) under the Russian Linux Kernel Community (RULKC).
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
_index.md | 51 ++++++++++++++++++++++++++++++++++++---------------
1 file changed, 36 insertions(+), 15 deletions(-)
diff --git a/_index.md b/_index.md
index 62df8fd4e5e1..5d9702870a5e 100644
--- a/_index.md
+++ b/_index.md
@@ -1,28 +1,28 @@
-# ⚛️ LANDAU Kernel
+# ⚛️ LANDAU
-**⚡ Linux kernel Advanced for Next-gen Devices & Architectures ⚡**
-*(Продвинутое ядро Linux для устройств и архитектур нового поколения)*
+**Linux And Neo-Depositorium Associated Unity**
---
-🧪 **О проекте**
+## 🧪 Что такое LANDAU?
-Проект назван в честь выдающегося физика-теоретика, нобелевского лауреата **Льва Давидовича Ландау** — создателя научной школы, воспитавшей поколения ученых. Как Ландау объединял физиков вокруг новых идей, так и наш форк призван объединить российских разработчиков для создания единой кодовой базы ядра.
+**LANDAU** — это зонтичный проект, объединяющий усилия российского open-source сообщества по развитию ключевых системных компонентов.
----
-
-## 🎯 О проекте
+Название проекта отсылает к выдающемуся физику-теоретику, нобелевскому лауреату **Льву Давидовичу Ландау** — создателю научной школы, воспитавшей поколения ученых. Как Ландау объединял физиков вокруг новых идей, так и LANDAU призван объединить разработчиков для создания единой технологической базы.
-**LANDAU** — это инициатива [**Russian Linux Kernel Community (RULKC)**](https://rulkc.org) по созданию единого форка, ориентированного на развитие, а не изоляцию.
+---
-Мы видим LANDAU как **upstream-first форк**, улучшающий mainline/stable ветки и работающий по модели **AOSP Common Kernel**:
+## 🎯 Что мы развиваем?
-* 🔄 **Регулярное обновление:** Следование за актуальными версиями mainline / stable (раз в 1–2 месяца).
-* 📦 **Приём патчей:** Включение полезных наработок, которые по разным причинам не попали в upstream (драйверы, архитектурные доработки).
-* 🖥️ **Поддержка российского железа:** Создание единой ветки ядра как основы BSP для процессоров различных архитектур (ARM, MIPS, RISC-V, Эльбрус), аппаратных платформ и consumer электроники, разрабатываемой в России.
-* 👁️ **Прозрачность:** Открытый процесс ревью, современный CI и совместное тестирование.
+LANDAU охватывает широкий спектр open-source проектов, критически важных для системной экосистемы:
-Проект призван решать как текущие задачи индустрии (сохранение и развитие кода, снижение фрагментации), так и готовить основу для будущего — появления собственных IP- и Core-вендоров, ODM-производителей устройств на отечественных чипах.
+| Проект | Назначение | Статус |
+|--------|------------|--------|
+| 🐧 **[LANDAU Linux](./landau-linux/)** | Форк ядра LANDAU Linux | ✅ Активен |
+| 🖥️ **LANDAU U-Boot** | Форк загрузчика для встраиваемых систем LANDAU u-boot | 🚧 В планах |
+| 🔧 **LANDAU EFI** | Поддержка LANDAU UEFI | 🚧 В планах |
+| 📦 **LANDAU QEMU** | Эмуляция и виртуализация LANDAU | 🚧 В планах |
+| 🏗️ **Другие проекты** | TBD | 🚧 В планах |
---
@@ -65,3 +65,24 @@
<br>
📌 *Этот сайт — отправная точка для навигации по инициативе LANDAU. Все ключевые документы, анонсы и ссылки на репозитории будут добавляться по мере развития проекта.*
+
+## 🤝 Сообщество
+
+LANDAU развивается под эгидой [**Russian Linux Kernel Community (RULKC)**](https://rulkc.org).
+
+| Канал | Ссылка |
+|-------|--------|
+| 🏠 **Основной сайт** | [rulkc.org](https://rulkc.org) |
+| 📧 **Mail** | [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com) |
+| 💬 **Telegram-канал** | [t.me/linux_kernel_O](https://t.me/linux_kernel_O) |
+| 🐙 **GitHub** | [github.com/rulkc](https://github.com/rulkc) |
+
+<br>
+
+| | |
+|---|---|
+| <a href="https://rulkc.org" target="_blank"><img src="rulkc.png" alt="RULKC" width="120"></a> | **💬 Присоединяйтесь к обсуждению**<br>Все новости и анонсы в нашем Telegram-канале |
+
+---
+
+📌 *Этот сайт — центральная точка входа во все проекты LANDAU.*
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 04/16] Add LANDAU Linux project overview and maintenance documentation
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (2 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 03/16] Re-design main page from LANDAU Kernel to LANDAU umbrella project rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 05/16] landau-linux: maintenance: major overhaul of the maintenance doc rockosov
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Introduce the LANDAU Linux subproject under the LANDAU umbrella:
- Add landau-linux/index.md with project description, goals, and
key documents navigation
- Add landau-linux/maintenance.md with the comprehensive maintenance
manifest covering:
* Versioning scheme (VERSION.PATCHLEVEL.SUBLEVEL.lXYZ)
* Branching strategy (landau-next, landau-V.P.y)
* Release cycle and schedule
* RC testing process
* LTS support policy
* Maintainer responsibilities
* GPG signing requirements
* Squash policy with Co-developed-by attribution
These documents formalize the LANDAU Linux maintenance process and
establish the project as an upstream-first fork tracking mainline
and stable kernels.
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
landau-linux/index.md | 27 +++
landau-linux/maintenance.md | 325 ++++++++++++++++++++++++++++++++++++
2 files changed, 352 insertions(+)
create mode 100644 landau-linux/index.md
create mode 100644 landau-linux/maintenance.md
diff --git a/landau-linux/index.md b/landau-linux/index.md
new file mode 100644
index 000000000000..2891de83267a
--- /dev/null
+++ b/landau-linux/index.md
@@ -0,0 +1,27 @@
+# ⚛️ LANDAU Linux
+
+---
+
+## 🎯 О проекте
+
+Мы видим LANDAU Linux как **upstream-first форк**, улучшающий mainline/stable ветки*:
+
+* 🔄 **Регулярное обновление:** Следование за актуальными версиями mainline/stable (раз в 1–2 месяца).
+* 📦 **Приём патчей:** Включение полезных наработок, которые по разным причинам не попали в upstream (драйверы, архитектурные доработки).
+* 🖥️ **Поддержка российского железа:** Создание единой ветки ядра как основы BSP для процессоров различных архитектур (ARM, MIPS, RISC-V, Эльбрус), аппаратных платформ и consumer электроники, разрабатываемой в России.
+* 👁️ **Прозрачность:** Открытый процесс ревью, современный CI и совместное тестирование.
+
+Проект призван решать как текущие задачи индустрии (сохранение и развитие кода, снижение фрагментации), так и готовить основу для будущего — появления собственных IP- и Core-вендоров, ODM-производителей устройств на отечественных чипах.
+
+---
+
+## 📄 Ключевые документы
+
+| Документ | Описание |
+|----------|----------|
+| 📋 **[LANDAU Linux Maintenance](./maintenance.md)** | Официальный процесс maintenance LANDAU Linux |
+
+---
+
+[⬅️ Вернуться на главную LANDAU](../index.md)
+
diff --git a/landau-linux/maintenance.md b/landau-linux/maintenance.md
new file mode 100644
index 000000000000..906c625ee06f
--- /dev/null
+++ b/landau-linux/maintenance.md
@@ -0,0 +1,325 @@
+title: "📋 Манифест сопровождения LANDAU"
+description: "Официальный процесс maintenance LANDAU Linux — версионирование, ветки, релизы и LTS"
+published: true
+---
+
+# 📋 Манифест процесса сопровождения LANDAU
+
+> **LANDAU** — форк ядра Linux с собственной схемой версионирования и предсказуемым циклом релизов.
+> Этот документ описывает формальный процесс сопровождения (maintenance) проекта.
+
+---
+
+## 🧭 1. Обзор
+
+### 🎯 Цель
+
+Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-релизов с отслеживанием апстрим-ядра Linux.
+
+### Глоссарий
+V - VERSION - major версия ядра Linux
+P - PATCHLEVEL - middle версия ядра Linux
+S - SUBLEVEL - minor версия ядра Linux
+E - EXTRAVERSION - поле в версии ядра Linux, в которое мы встраиваем версию LANDAU (ядром Linux обычно используется для -rc релизов (testing фазы))
+RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU ребейзят свой changelog на новую базовую версию ядра.
+Bundle - в общем случае это changelog LANDAU Linux, который отличается от upstream (группа патч серий). Есть общий LANDAU Bundle, а есть Bundle-ы мейнтейнеров в их форках.
+
+### 📁 Структура репозитория
+
+| Сущность | Назначение |
+|----------|-------------|
+| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+
+`landau-next` - это ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`.
+`landau-next` - это force-push ветка, которая меняется при каждом старте нового RMW
+
+### 🪞 Апстрим-зеркала
+
+На сервере `https://git.rulkc.org` поддерживаются постоянно обновляемые зеркала:
+
+- 🔷 `torvalds/linux` — основная ветка ядра
+- 🔷 `stable/linux` — стабильные релизы
+- 🔷 `linux-next` — интеграционное дерево linux-next
+
+---
+
+## 🏷️ 2. Схема версионирования
+
+### 📐 Формат версии LANDAU
+
+```
+VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
+```
+
+| Компонент | Пример | Описание |
+|-----------|--------|----------|
+| `VERSION` | `7` | Мажорная версия ядра |
+| `PATCHLEVEL` | `0` | Минорная версия |
+| `SUBLEVEL` | `12` | Номер стабильного обновления апстрима |
+| `lXYZ` | `l0`, `l1` | Сборочный номер LANDAU |
+
+
+### 🏷️ Git-теги
+
+Используются **аннотированные теги** в формате:
+
+```
+v7.0.lXYZ
+```
+
+Пример: `v7.0.l0`, `v7.0.l5`
+
+---
+
+## 🌿 3. Веточная стратегия
+
+### 📌 Основные ветки
+
+| Ветка | Назначение |
+|-------|-------------|
+| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+
+### ⏳ Жизненный цикл ветки
+
+```mermaid
+graph LR
+ A[Создание ветки<br>landau-7.0.y] --> B[Активная разработка<br>и выпуск релизов]
+ B --> C{Тип поддержки?}
+ C -->|Обычное ядро| D[EOL апстрима →<br>ветка архивируется]
+ C -->|LTS ядро| E[Поддержка до EOL апстрима<br>только исправления]
+```
+
+| Стадия | Действие |
+|--------|----------|
+| 🆕 Создание | От тега апстрим-релиза |
+| 🔧 Разработка | Ветка `landau-7.0.y` |
+| 🛑 Окончание поддержки | Апстрим достигает EOL |
+| 🐢 LTS | Только исправления (без новых фич) |
+
+---
+
+## 📅 4. График релизов
+
+### ⏱️ Апстрим-график
+
+| Фаза | ⏰ Длительность | 📝 Описание |
+|------|----------------|-------------|
+| Разработка | 9-10 недель | Подготовка к новому релизу |
+| Rebase & Merge Window | 2 недели | Приём новых Merge Requests от мейнтейнеров |
+| RC-тестирование | 7-8 недель | Тестирование кандидатов на релиз |
+| Финальный релиз | — | Публикация стабильного ядра |
+
+> ℹ️ **Важно**: Релизы LANDAU отстают от апстрима на **1 patchlevel (SUBLEVEL)**.
+
+---
+
+## 🔄 5. Процесс выпуска LANDAU
+
+### 📊 Полный цикл релиза
+
+```mermaid
+flowchart TD
+ A[📦 Выход нового апстрим-релиза mainline] --> B[🔓 Открытие RMW LANDAU<br>2 недели]
+ B --> C[🏷️ Создание тега v7.0.l-rc1]
+ C --> D[🧪 Фаза RC-тестирования<br>1 неделя на RC]
+ D --> E{Все тесты пройдены?}
+ E -->|Нет| F[🔧 Исправление ошибок]
+ F --> D
+ E -->|Да| G[✅ Релиз v7.0.l]
+ G --> H[🔄 Интеграция SUBLEVEL<br>апстрима]
+ H --> I[📈 Повышение версии<br>v7.0.1.l1]
+```
+
+### 5.1 🆕 Новый релиз mainline
+
+| Шаг | Действие |
+|-----|----------|
+| 1 | Создать ветку `landau-7.0.y` от тега апстрим-релиза |
+| 2 | Применить LANDAU-специфичные патчи |
+| 3 | Установить `VERSION`, `PATCHLEVEL`, `SUBLEVEL` по апстриму |
+| 4 | Оставить `EXTRAVERSION` пустым (используется `.lX` формат) |
+| 5 | Создать тег `v7.0.l-rc1` |
+
+### 5.2 🧪 RC-тестирование
+
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | **1 неделя** на каждый RC |
+| 🏷️ Кандидаты | `rc1`, `rc2`, `rc3` ... |
+| 🎯 Фокус | Регрессионное тестирование, стабильность, валидация фич |
+| 🔧 Исправления | Применяются непосредственно в ветку релиза |
+
+### 5.3 ✅ Финальный релиз
+
+1. Убедиться, что все критические проблемы решены
+2. Создать финальный аннотированный тег `v7.0.l`
+3. Опубликовать релиз
+
+### 5.4 🔄 Интеграция апстрим-обновлений SUBLEVEL
+
+| Шаг | Действие | Пример |
+|-----|----------|--------|
+| 1 | Определить новый `SUBLEVEL` из апстрим-тега | `v7.0.1` |
+| 2 | Смержить апстрим-изменения | `git merge v7.0.1` |
+| 3 | Повысить LANDAU-версию | `l` → `l1` |
+| 4 | Обновить версию | `v7.0.1.l1` |
+| 5 | Выпустить релиз | Публикация тега |
+
+---
+
+## 🐢 6. Политика в отношении LTS
+
+Мейнтейнеры LANDAU приняли решение **нативно поддерживать LTS-версии** апстрим-ядра.
+
+### ⚠️ Ограничения LTS-поддержки
+
+| ✅ Разрешено | ❌ Запрещено |
+|--------------|--------------|
+| Исправления безопасности | Бэкпорт новых фич |
+| Критические багфиксы | Новые драйверы |
+| Стабилизирующие патчи | Изменения подсистем |
+| Документация | Любые не-багфиксы |
+
+> 📌 **Принцип**: Поддерживается тот Changelog, который был на момент отвода LTS основного ядра.
+
+### 🛑 Окончание поддержки
+
+| Тип ядра | Условие окончания поддержки |
+|----------|------------------------------|
+| Обычное | Апстрим достигает EOL |
+| LTS | Поддержка продолжается до EOL апстрима (без добавления новых фич) |
+
+Гарантировано LANDAU Owners поддерживают одно последнее LTS ядро. Про остальные LTS ядра думаем при наличии ресурсов.
+
+---
+
+## 👤 7. Обязанности мейнтейнера
+
+| Область | Ответственность |
+|---------|------------------|
+| 👁️ Мониторинг апстрима | Отслеживание новых релизов и RC-циклов |
+| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений |
+| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vX.Y.lZ` |
+| 🧪 Координация RC | Организация тестирования кандидатов на релиз |
+| 🔒 Безопасность | Мониторинг и применение апстрим-исправлений безопасности |
+| 📝 Документирование | Ведение changelog для каждого LANDAU-релиза |
+
+---
+
+## 📖 8. Пример полного цикла релиза
+
+### Исходные данные
+
+Апстрим выпускает ядро **`6.12.0`**
+
+### 📍 Пошаговый пример
+
+#### 👁️ Схема
+
+| Этап | Действие | Результат | Версия сборки |
+|------|----------|-----------|---------------|
+| 1 | Force push ветки `landau-next` на `v7.0` | `landau-next` | — |
+| 2 | Старт RMW | `landau-next` | `N/A` |
+| 3 | Создание RC1 | `v7.0.l-rc1` | `7.0.l-rc1` |
+| 4 | Создание RC2 | `v7.0.l-rc2` | `7.0.l-rc2` |
+| 5 | Создание RC3 | `v7.0.l-rc3` | `7.0.l-rc3` |
+| 6 | **Финальный релиз** и **отвод ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` |
+| 7 | Апстрим выпускает `7.0.1` | Слияние изменений в `landau-7.0.y` | — |
+| 8 | Обновление версии | `v7.0.1.l1` | `7.0.1.l1` |
+| 9 | Апстрим объявляет EOL для `7.0` | Ветка `landau-7.0.y` архивируется | — |
+
+#### 🔄 Детальное описание процесса
+
+1. **Выход нового стабильного релиза upstream kernel** (например, `v7.0` по результатам 7 недель стабилизации)
+2. **Открытие RMW LANDAU** — берём 2 недели на свой релиз LANDAU:
+ - Затаскиваем патч-серии (MR) в ветку `landau-next`, на основе `v7.0`
+ - Там же происходит решение всех конфликтов
+ - Формируются первые общие сборки ядра
+3. **Выпуск RC-версий** (например, `v7.0.l-rc1`) — RC-релизы делаются в ветке `landau-next`
+4. **Тестирование** — длится до 7 недель (может быть меньше):
+ - Выпускаются RC-версии: `rc1`, `rc2`, `rc3` и т.д.
+5. **Финальный релиз и отвод стабильной ветки**:
+ - Выпускаем релиз `v7.0.l`
+ - Отводим стабильную ветку **`landau-7.0.y`** от финального релиза
+ - Вся дальнейшая поддержка этой версии ведётся в `landau-7.0.y`
+6. **Завершение цикла `landau-next`**:
+ - Ветка `landau-next` останавливает свой рост на первом релизе `v7.0.l`
+ - Переключается на шаг 1, когда в upstream выходит новый стабильный релиз (например, `v7.1`)
+7. **Интеграция SUBLEVEL из upstream**:
+ - Если в upstream меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
+ - Повышаем свою версию: `v7.0.1.l1`
+ - То есть повышается версия LANDAU, а SUBLEVEL становится равным upstream SUBLEVEL
+8. **Развитие стабильной версии**:
+ - Стабильная версия LANDAU `v7.0` ведётся в ветке `landau-7.0.y`
+9. **Окончание поддержки релиза**:
+ - Поддержка релиза LANDAU-ветки заканчивается, когда версия основного ядра больше не тегируется как stable на kernel.org (например, `7.0` достигла EOL)
+10. **LTS-поддержка**:
+ - Если основное ядро уходит в LTS, LANDAU поддерживает LTS до конца
+ - Приносятся только фиксы LANDAU (без новых фич) и новые SUBLEVEL
+11. **Гарантии поддержки**:
+ - LANDAU Owners гарантированно поддерживают **одно последнее LTS ядро**
+ - Про поддержку более старых LTS ядер думаем при наличии ресурсов
+
+#### 📊 Визуализация цикла
+
+```mermaid
+flowchart TD
+ A[Выход нового<br>stable релиза upstream<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
+ B --> C[Приём MR в landau-next<br>на основе v7.0]
+ C --> D[Выпуск RC1, RC2, RC3...<br>до 7 недель]
+ D --> E{Тестирование пройдено?}
+ E -->|Нет| D
+ E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод ветки<br><b>landau-7.0.y</b>]
+ F --> G[Ожидание нового<br>stable upstream]
+ G --> H[Апстрим выпускает<br>новый SUBLEVEL,<br>например, 7.0.1]
+ H --> I[Интеграция в landau-7.0.y:<br>v7.0.1.l1]
+ I --> J{Апстрим EOL?}
+ J -->|Нет| H
+ J -->|Да| K[Архивация ветки<br>landau-7.0.y]
+```
+
+#### 🏷️ Пример полной цепочки тегов
+
+Для ядра `7.0.x` в LANDAU:
+
+```
+v7.0.l-rc1 → v7.0.l-rc2 → v7.0.l-rc3 → v7.0.l
+ ↓
+ отвод landau-7.0.y
+ ↓
+ v7.0.1.l1 → v7.0.2.l2 → ...
+```
+
+---
+
+### Требования к патчам
+
+TODO
+
+### Pull requests
+
+TODO
+
+### Maintainers B4 usage
+
+TODO
+
+---
+
+## 📚 9. Ссылки и ресурсы
+
+| Ресурс | URL |
+|--------|-----|
+| 📦 Репозиторий LANDAU | `https://git.rulkc.org/pub/scm/landau` |
+| 🪞 Зеркала апстрима | `https://git.rulkc.org` |
+| 🔗 Апстрим-ядро | `https://kernel.org` |
+
+---
+
+> 📌 **Актуальная версия документа**: 1.0
+> ✍️ **Поддерживается**: LANDAU Maintainers
+> 📅 **Последнее обновление**: 2026
+
+[⬅️ Вернуться на страницу LANDAU Linux](./index.md)
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 05/16] landau-linux: maintenance: major overhaul of the maintenance doc
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (3 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 04/16] Add LANDAU Linux project overview and maintenance documentation rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 06/16] content: Move content to subdirectory rockosov
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Serge Semin <svsemin at unistemlab.com>
This patch comprehensively revises and restructures the LANDAU-Linux
maintenance documentation.
Key improvements include:
- Project naming: Explicitly uses "LANDAU-Linux" throughout to avoid
ambiguity with other potential LANDAU forks.
- Terminology: Replaces English-isms (maintenance, changelog, upstream)
with appropriate Russian alternatives; adds missing definitions for
MR and EOL to the glossary.
- Versioning: Adds the RC-stage version/tags format (l-rcX and
v7.0.l-rcX) to the release versioning chapter and corrects the
version example.
- Git workflow: Clarifies branch/repo terminology with "GIT-" prefix;
extends the branches description with details about 'landau-next'
and RC-stages; fixes the release lag description.
- Process structure: Completely refactors the release process chapter
into a structured, step-by-step format with unified paragraphs,
merges LTS support into the stable release section, and adds
detailed descriptions of commit creation and format.
- Maintainer responsibilities: Adds a new section covering
sub-repository maintenance, change collection, and the 2MR process,
including a mermaid gitGraph diagram.
No functional changes are made to the actual process-only
documentation clarity, completeness, and structure are improved.
Signed-off-by: Serge Semin <svsemin at unistemlab.com>
---
landau-linux/maintenance.md | 326 ++++++++++++++++++++++++------------
1 file changed, 215 insertions(+), 111 deletions(-)
diff --git a/landau-linux/maintenance.md b/landau-linux/maintenance.md
index 906c625ee06f..2b5a000d3f7c 100644
--- a/landau-linux/maintenance.md
+++ b/landau-linux/maintenance.md
@@ -1,11 +1,11 @@
-title: "📋 Манифест сопровождения LANDAU"
-description: "Официальный процесс maintenance LANDAU Linux — версионирование, ветки, релизы и LTS"
+title: "📋 Манифест сопровождения ядра LANDAU-Linux"
+description: "Описание процесса разработки ядра LANDAU-Linux — ветки, релизы, версионирование и сопровождение"
published: true
---
-# 📋 Манифест процесса сопровождения LANDAU
+# 📋 Манифест процесса сопровождения ядра LANDAU-Linux
-> **LANDAU** — форк ядра Linux с собственной схемой версионирования и предсказуемым циклом релизов.
+> **LANDAU-Linux** — форк <u>ядра Linux</u> с собственной схемой версионирования и предсказуемым циклом релизов.
> Этот документ описывает формальный процесс сопровождения (maintenance) проекта.
---
@@ -14,39 +14,40 @@ published: true
### 🎯 Цель
-Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-релизов с отслеживанием апстрим-ядра Linux.
+Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-Linux-релизов с отслеживанием оригинального репозитория ядра Linux.
### Глоссарий
V - VERSION - major версия ядра Linux
P - PATCHLEVEL - middle версия ядра Linux
S - SUBLEVEL - minor версия ядра Linux
-E - EXTRAVERSION - поле в версии ядра Linux, в которое мы встраиваем версию LANDAU (ядром Linux обычно используется для -rc релизов (testing фазы))
-RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU ребейзят свой changelog на новую базовую версию ядра.
-Bundle - в общем случае это changelog LANDAU Linux, который отличается от upstream (группа патч серий). Есть общий LANDAU Bundle, а есть Bundle-ы мейнтейнеров в их форках.
+E - EXTRAVERSION - поле в версии ядра Linux, в которое встраивается версия ядра LANDAU-Linux (ядром Linux обычно используется для -rc релизов (testing фазы))
+MR - Merge Request - запрос на слияние одной GIT-ветки с другой. Обычно оформляется в виде ссылки на GIT-репозиторий и ветку авторизованного ментейнера (верифицированного источника) в сопровождение с формальным описанием содержимого. Информация из последнего может быть использована для формирования текста merge-коммита в GIT.
+RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU переносят подопечный им набор изменений на новую базовую версию ядра.
+Bundle - в общем случае это полный набор изменений репозитория LANDAU-Linux, который отличает его от оригинального репозитория ядра Linux (фактически это набор патч-серий). Есть общий LANDAU-Linux Bundle, а есть Bundle-ы мейнтейнеров в их форках.
+EOL - End-of-Life - завершение этапа поддержки выпущенной версии продукта (релиза).
-### 📁 Структура репозитория
+### 📁 Структура GIT-репозитория форка
| Сущность | Назначение |
|----------|-------------|
-| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+| `landau-next` | GIT-ветка для следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | GIT-ветка релиза LANDAU-Linux на базе ядра Linux с версией V.P |
-`landau-next` - это ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`.
-`landau-next` - это force-push ветка, которая меняется при каждом старте нового RMW
+> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится (_force-push_) на новый релиз ядра Linux.
-### 🪞 Апстрим-зеркала
+### 🪞 Зеркала оригинальных репозиториев Linux
На сервере `https://git.rulkc.org` поддерживаются постоянно обновляемые зеркала:
-- 🔷 `torvalds/linux` — основная ветка ядра
-- 🔷 `stable/linux` — стабильные релизы
+- 🔷 `torvalds/linux` — основная ветка ядра Linux
+- 🔷 `stable/linux` — стабильные релизы ядра Linux
- 🔷 `linux-next` — интеграционное дерево linux-next
---
## 🏷️ 2. Схема версионирования
-### 📐 Формат версии LANDAU
+### 📐 Формат версии LANDAU-Linux
```
VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
@@ -55,9 +56,10 @@ VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
| Компонент | Пример | Описание |
|-----------|--------|----------|
| `VERSION` | `7` | Мажорная версия ядра |
-| `PATCHLEVEL` | `0` | Минорная версия |
-| `SUBLEVEL` | `12` | Номер стабильного обновления апстрима |
-| `lXYZ` | `l0`, `l1` | Сборочный номер LANDAU |
+| `PATCHLEVEL` | `0` | Минорная версия ядра |
+| `SUBLEVEL` | `12` | Номер стабильного обновления ядра |
+| `l-rcX` | `l-rc1`, `l-rc2` | Сборочный номер отладочного релиза LANDAU-Linux |
+| `lXYZ` | `l0`, `l1` | Сборочный номер стабильного релиза LANDAU-Linux |
### 🏷️ Git-теги
@@ -65,44 +67,60 @@ VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
Используются **аннотированные теги** в формате:
```
+v7.0.l-rcX
v7.0.lXYZ
```
-Пример: `v7.0.l0`, `v7.0.l5`
+Пример: `v7.0.l-rc1`, `v7.0.l0`, `v7.0.l5`
---
-## 🌿 3. Веточная стратегия
+## 🌿 3. Cтратегия организации GIT-веток
-### 📌 Основные ветки
+### 📌 Основные GIT-ветки
| Ветка | Назначение |
|-------|-------------|
-| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+| `landau-next` | GIT-ветка следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | Текущая GIT-ветка для релиза LANDAU-Linux на базе <u>стабильного</u> ядра Linux с версией V.P |
-### ⏳ Жизненный цикл ветки
+### ⏳ Жизненный цикл GIT-веток
```mermaid
-graph LR
- A[Создание ветки<br>landau-7.0.y] --> B[Активная разработка<br>и выпуск релизов]
- B --> C{Тип поддержки?}
- C -->|Обычное ядро| D[EOL апстрима →<br>ветка архивируется]
- C -->|LTS ядро| E[Поддержка до EOL апстрима<br>только исправления]
+flowchart LR
+ subgraph one["Релиз LANDAU-Linux"]
+ E[<b>landau-V.P.y→<br>landau-next</b>]-->F
+ F[Поддержка<br><b>landau-V.P.y</b>]-->G{Статус <b>linux-V.P.y<b><br><b>EOL</b>?}
+ G-->|Нет|F
+ G-->|Да|H([Архивация<br><b>landau-V.P.y</b>])
+ end
+ subgraph two["Подготовка релиза (этап RC)"]
+ A([<b>landau-next→<br>linux-V.P.y</b>])-->B
+ B[Стабилизация<br><b>landau-next</b>]-->C{Код <b>landau-next</b><br>стабилен?}
+ C-->|Нет|B
+ C-->|Да|D(P = P + 1</b>)
+ C-->|Да|E
+ D-.->|Ожидание<br>релиза P|A
+ end
```
| Стадия | Действие |
|--------|----------|
-| 🆕 Создание | От тега апстрим-релиза |
-| 🔧 Разработка | Ветка `landau-7.0.y` |
-| 🛑 Окончание поддержки | Апстрим достигает EOL |
-| 🐢 LTS | Только исправления (без новых фич) |
+| 🛑 Старт | Принудительное переназначение `landau-next` на базовую версию ядра Linux |
+| 🔧 Разработка | Сбор и стабилизация изменений LANDAU в GIT-ветке `landau-next` |
+| 🆕 Релиз | Создание `landau-V.P.y` на основе стабильной `landau-next` |
+| 🔧 Поддержка | Сбор исправлений ошибок в GIT-ветке `landau-V.P.y` |
+| 🐢 Окончание поддержки | Исходная версия достигает EOL |
+
+> В базовом представлении _поддержка_ подразумевает периодическую синхронизацию `landau-V.P.y` с исходной GIT-веткой `linux-V.P.y`.
---
## 📅 4. График релизов
-### ⏱️ Апстрим-график
+### ⏱️ Цикл релизов ядра Linux
+
+В оригинальном репозитории ядра Linux поддерживается следующий цикл разработки:
| Фаза | ⏰ Длительность | 📝 Описание |
|------|----------------|-------------|
@@ -111,69 +129,106 @@ graph LR
| RC-тестирование | 7-8 недель | Тестирование кандидатов на релиз |
| Финальный релиз | — | Публикация стабильного ядра |
-> ℹ️ **Важно**: Релизы LANDAU отстают от апстрима на **1 patchlevel (SUBLEVEL)**.
+> ℹ️ **Важно**: Поскольку релизы LANDAU-Linux базируются на стабильных релизах ядра Linux, то текущий цикл разработки всегда отстаёт от последней версии ядра Linux на **1 PATCHLEVEL**.
---
-## 🔄 5. Процесс выпуска LANDAU
+## 🔄 5. Процесс выпуска LANDAU-Linux
### 📊 Полный цикл релиза
```mermaid
flowchart TD
- A[📦 Выход нового апстрим-релиза mainline] --> B[🔓 Открытие RMW LANDAU<br>2 недели]
- B --> C[🏷️ Создание тега v7.0.l-rc1]
- C --> D[🧪 Фаза RC-тестирования<br>1 неделя на RC]
- D --> E{Все тесты пройдены?}
- E -->|Нет| F[🔧 Исправление ошибок]
- F --> D
- E -->|Да| G[✅ Релиз v7.0.l]
- G --> H[🔄 Интеграция SUBLEVEL<br>апстрима]
- H --> I[📈 Повышение версии<br>v7.0.1.l1]
+ A["📦 Выход нового релиза ядра Linux"] --> B
+ B(["🔓 1. RMW LANDAU-Linux<br>(~2 недели)"]) --> C
+ C["🔧 Перенос и слияние наработок LANDAU-Linux"] --> D
+ D(["🔓 2. RC LANDAU-Linux<br>(~1 недели на RCx)"]) --> E
+ E["🔧 Исправление ошибок<br>(выпуск RC)"] --> F
+ F(["✅ 3. Релиз LANDAU-Linux"]) --> G
+ G["🔧 Публикация списка<br>изменений LANDAU-Linux"] --> H
+ H(["🔓 4. Поддержка LANDAU-Linux"]) --> I
+ I["🔧 Исправление ошибок и<br>синхронизация SUBLEVEL"] --> J
+ J(["🐢 5. EOL LANDAU-Linux"])
```
-### 5.1 🆕 Новый релиз mainline
+### 5.1 🆕 Этап RMW LANDAU-Linux
| Шаг | Действие |
|-----|----------|
-| 1 | Создать ветку `landau-7.0.y` от тега апстрим-релиза |
-| 2 | Применить LANDAU-специфичные патчи |
-| 3 | Установить `VERSION`, `PATCHLEVEL`, `SUBLEVEL` по апстриму |
-| 4 | Оставить `EXTRAVERSION` пустым (используется `.lX` формат) |
-| 5 | Создать тег `v7.0.l-rc1` |
+| 1 | Создать GIT-ветку `landau-next` от первого релиза стабильного ядра Linux |
+| 2 | Объявить сбор изменений LANDAU-Linux от нижестоящих ментейнеров |
+| 3 | Применить изменения LANDAU-Linux в `landau-next` |
+| 4 | Запросить повторную публикуцию изменений в случае сложных конфликтов |
+| 5 | Провести базовое сборочное тестирование результирующей ветки `landau-next` |
+| 6 | Обновить `EXTRAVERSION` на `l-rc1` и создать коммит "LANDAU-Linux V.P.l-rc1" |
+| 7 | Отметить коммит аннотированным тегом `vV.P.l-rc1` |
+
+> ℹ️ Переменная `EXTRAVERSION` в стабильных релизах ядра Linux остаётся пустым, потому может быть использована для сохранения версий LANDAU-Linux. При этом оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` в дальнейшем сохраняются для индикации версии исходного ядра Linux.
-### 5.2 🧪 RC-тестирование
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | **~2 недели** |
+| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктв |
+| 🏷️ Релизы | `l-rc1` |
+| 🔧 Исправления | Незначительные проблемы разрешаются в merge-коммитах. Значительные - через повторный запрос изменения от ментейнера |
+
+### 5.2 🧪 Этап RC LANDAU-Linux
+
+| Шаг | Действие |
+|-----|----------|
+| 1 | Получить корректирующие изменений LANDAU-Linux от нижестоящих ментейнеров |
+| 2 | Применить корректирующие изменения LANDAU-Linux в `landau-next` |
+| 3 | Провести базовое сборочное тестирование результирующей ветки `landau-next` |
+| 4 | Cоздать коммит "LANDAU-Linux V.P.l-rcX" для инкрементированной в `EXTRAVERSION` RC-версии |
+| 5 | Отметить коммит аннотированным тегом `vV.P.l-rcX` |
+| 6 | Перейти к 1. в случае выявления ошибок |
| Параметр | Значение |
|----------|----------|
-| ⏱️ Длительность | **1 неделя** на каждый RC |
-| 🏷️ Кандидаты | `rc1`, `rc2`, `rc3` ... |
+| ⏱️ Длительность | **~1 неделя** на каждый RC, но **не более 7-8 недель** |
| 🎯 Фокус | Регрессионное тестирование, стабильность, валидация фич |
-| 🔧 Исправления | Применяются непосредственно в ветку релиза |
+| 🏷️ Релизы | `l-rc1`, `l-rc2`, `l-rc3` ... |
+| 🔧 Исправления | Применяются непосредственно в ветку релиза по запросу нижестоящих ментейнеров |
-### 5.3 ✅ Финальный релиз
+> ℹ️ Стабилизация GIT-ветки `landau-next` (отсуствие выявленных ошибок в очреденом RC-цикле) символизирует окончание этапа RC и выход на релиз.
-1. Убедиться, что все критические проблемы решены
-2. Создать финальный аннотированный тег `v7.0.l`
-3. Опубликовать релиз
+### 5.3 ✅ Релиз LANDAU-Linux
-### 5.4 🔄 Интеграция апстрим-обновлений SUBLEVEL
+| Шаг | Действие |
+|-----|----------|
+| 1 | Убедиться в отсуствии существенных проблем на последнем этапе RC |
+| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU-Linux V.P.l" |
+| 3 | Отметить коммит аннотированным тегом `vV.P.l` |
+| 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU-Linux |
+
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | **более 1 недели** в последней фазе RC |
+| 🎯 Фокус | Стабилизация собранных измений и опубликование списка изменений |
+| 🏷️ Релизы | `l` |
+| 🔧 Исправления | Отсуствуют в рамках последней фазы RC |
+
+### 5.4 🔄 Поддержка стабильной и LTS-версий LANDAU-Linux
| Шаг | Действие | Пример |
|-----|----------|--------|
-| 1 | Определить новый `SUBLEVEL` из апстрим-тега | `v7.0.1` |
-| 2 | Смержить апстрим-изменения | `git merge v7.0.1` |
-| 3 | Повысить LANDAU-версию | `l` → `l1` |
-| 4 | Обновить версию | `v7.0.1.l1` |
-| 5 | Выпустить релиз | Публикация тега |
-
----
+| 1 | Определить последний `SUBLEVEL` в исходной GIT-ветки стабильного ядра Linux | `v7.0.1` |
+| 2 | Применить изменения из стабильной GIT-ветки ядра Linux в `landau-V.P.y` | `git merge v7.0.1` |
+| 3 | Получить корректирующие изменений LANDAU-Linux от нижестоящих ментейнеров | - |
+| 4 | Применить корректирующие изменения LANDAU-Linux в `landau-V.P.y` при наличии | - |
+| 5 | Инкрементировать `EXTRAVERSION` на единицу и создать коммит "LANDAU-Linux V.P.Y.lX" | `l` → `l1` |
+| 6 | Отметить коммит аннотированным тегом `vV.P.Y.lX` | `v7.0.1.l1` |
-## 🐢 6. Политика в отношении LTS
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | До получения статуса EOL исходной версии ядра Linux |
+| 🎯 Фокус | Исправление серьезных ошибок, выявленных в стабильном релизе LANDAU-Linux |
+| 🏷️ Релизы | `l1`, `l2`, `l2`, ... |
+| 🔧 Исправления | Применяются по запросу нижестоящих ментейнеров в рамках корректирующих релизов |
-Мейнтейнеры LANDAU приняли решение **нативно поддерживать LTS-версии** апстрим-ядра.
+Мейнтейнеры LANDAU-Linux приняли решение **нативно поддерживать стабильные и LTS-версии** ядра Linux до получения статуса EOL. Однако гарантировано корректирующие изменения LANDAU-Linux портируются в LANDAU-Linux на основе последней LTS-версии ядра Linux. Портирование изменений в более ранние версии возможно при наличии ресурсов.
-### ⚠️ Ограничения LTS-поддержки
+⚠️ Особенности интеграции изменений в стабильную и LTS версии LANDAU-Linux:
| ✅ Разрешено | ❌ Запрещено |
|--------------|--------------|
@@ -184,35 +239,84 @@ flowchart TD
> 📌 **Принцип**: Поддерживается тот Changelog, который был на момент отвода LTS основного ядра.
-### 🛑 Окончание поддержки
+### 5.5 🔄 Завершение поддержки релиза LANDAU-Linux (EOL)
+
+| Шаг | Действие |
+|-----|----------|
+| 1 | Получение статуса EOL исходной версии стабильного ядра Linux |
+| 2 | Объявление о завершении поддержки LANDAU-Linux в GIT-ветке `landau-V.P.y` |
-| Тип ядра | Условие окончания поддержки |
-|----------|------------------------------|
-| Обычное | Апстрим достигает EOL |
-| LTS | Поддержка продолжается до EOL апстрима (без добавления новых фич) |
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | Минимум несколько корректирующих релизов стабильной версии LANDAU-Linux до регистрации EOL |
+| 🎯 Фокус | Завершение поддержки релиза |
+| 🏷️ Релизы | `lZ` |
+| 🔧 Исправления | Не применяются |
-Гарантировано LANDAU Owners поддерживают одно последнее LTS ядро. Про остальные LTS ядра думаем при наличии ресурсов.
+Поддержка **стабильной и LTS версий** LANDAU-Linux завершается либо вместе с получением статуса EOL исходной версии ядра Linux, либо после выпуска релиза LANDAU-Linux, основанного на последней LTS-версии ядра Linux.
---
-## 👤 7. Обязанности мейнтейнера
+## 👤 6. Обязанности мейнтейнера
| Область | Ответственность |
|---------|------------------|
-| 👁️ Мониторинг апстрима | Отслеживание новых релизов и RC-циклов |
-| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений |
+| 👁️ Мониторинг исходного репозитория | Отслеживание новых релизов и RC-циклов |
+| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений ядра |
| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vX.Y.lZ` |
| 🧪 Координация RC | Организация тестирования кандидатов на релиз |
-| 🔒 Безопасность | Мониторинг и применение апстрим-исправлений безопасности |
+| 🔒 Безопасность | Мониторинг и применение исправлений безопасности |
| 📝 Документирование | Ведение changelog для каждого LANDAU-релиза |
+### Личные репозитории ментейнеров
+
+В личных репозиториях ментейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений. В целом, способ организации персональных репозиториев ментейнеры могут выбирать самостоятельное. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR. Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному ментейнеру, должна сохранять историю предыдущих изменений LANDAU-Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU-Linux. Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала ментейнеры sub-LANDAU-Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW:
+
+```mermaid
+---
+config:
+ gitGraph:
+ parallelCommits: true
+ mainBranchName: 'linux-V.P.y'
+---
+gitGraph
+ branch baikal-next order: 2
+ branch amlogic-next order: 3
+ commit
+ commit
+ commit
+ commit
+ checkout baikal-next
+ commit
+ commit
+ commit
+ checkout linux-V.P.y
+ commit
+ commit
+ commit id: "Linux V.P" tag: "vV.P"
+ branch landau-next order: 1
+ commit id: " " type: HIGHLIGHT
+ checkout amlogic-next
+ merge landau-next
+ checkout baikal-next
+ merge landau-next
+ checkout landau-next
+ merge amlogic-next
+ merge baikal-next
+ commit id: "LANDAU-Linux V.P.l-rc1" tag: "vV.P.l-rc1"
+```
+
+Таким образом, основная нагрузка по исправлению конфликтов ложится на нижестоящих ментейнеров. Главному ментейнуру остаётся лишь собрать все MR в `linux-next`. Если и в этом случае возникают сложные конфликты, то главный ментейнер вправе попросить выполнить повторный цикл **двойного слияния**, чтобы кросс sub-LANDAU-Linux конфликты были разешены на стороне нижестоящих ментейнеров.
+
+К тому же опционально ментейнеры могут выполнять поддержку GIT-веток с патч-сетами для последующей отправки изменений в оригинальный репозиторий ядра Linux. До момента интеграции патч-сеты могут "поглощать" исправления и стилистические изменения в процессе перебазирования на новую версию ядра Linux. Это упрощает сопровождение таких GIT-веток, минимизируя лог изменений, который к тому же является лишним при интеграции в ядро Linux.
+
---
-## 📖 8. Пример полного цикла релиза
+## 📖 7. Пример полного цикла релиза
### Исходные данные
-Апстрим выпускает ядро **`6.12.0`**
+Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит сомволизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`.
### 📍 Пошаговый пример
@@ -220,64 +324,64 @@ flowchart TD
| Этап | Действие | Результат | Версия сборки |
|------|----------|-----------|---------------|
-| 1 | Force push ветки `landau-next` на `v7.0` | `landau-next` | — |
+| 1 | Force-push GIT-ветки `landau-next` на `v7.0` | `landau-next` | — |
| 2 | Старт RMW | `landau-next` | `N/A` |
| 3 | Создание RC1 | `v7.0.l-rc1` | `7.0.l-rc1` |
| 4 | Создание RC2 | `v7.0.l-rc2` | `7.0.l-rc2` |
| 5 | Создание RC3 | `v7.0.l-rc3` | `7.0.l-rc3` |
-| 6 | **Финальный релиз** и **отвод ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` |
-| 7 | Апстрим выпускает `7.0.1` | Слияние изменений в `landau-7.0.y` | — |
+| 6 | **Финальный релиз** и **создание нумерованной GIT-ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` |
+| 7 | Выходит оригинальный релиз `7.0.1` | Слияние изменений в `landau-7.0.y` | — |
| 8 | Обновление версии | `v7.0.1.l1` | `7.0.1.l1` |
-| 9 | Апстрим объявляет EOL для `7.0` | Ветка `landau-7.0.y` архивируется | — |
+| 9 | Исходная версия `7.0.x` получает статус EOL | GIT-ветка `landau-7.0.y` архивируется | — |
#### 🔄 Детальное описание процесса
-1. **Выход нового стабильного релиза upstream kernel** (например, `v7.0` по результатам 7 недель стабилизации)
-2. **Открытие RMW LANDAU** — берём 2 недели на свой релиз LANDAU:
+1. **Выход нового стабильного релиза ядра Linux** (например, `v7.0` по результатам 7 недель стабилизации)
+2. **Открытие RMW LANDAU-Linux** — берём 2 недели на свой релиз LANDAU-Linux:
- Затаскиваем патч-серии (MR) в ветку `landau-next`, на основе `v7.0`
- Там же происходит решение всех конфликтов
- Формируются первые общие сборки ядра
-3. **Выпуск RC-версий** (например, `v7.0.l-rc1`) — RC-релизы делаются в ветке `landau-next`
+3. **Выпуск RC-версий** (например, `v7.0.l-rc1`) — RC-релизы делаются в GIT-ветке `landau-next`
4. **Тестирование** — длится до 7 недель (может быть меньше):
- - Выпускаются RC-версии: `rc1`, `rc2`, `rc3` и т.д.
+ - Выпускаются RC-версии: `l-rc1`, `l-rc2`, `l-rc3` и т.д.
5. **Финальный релиз и отвод стабильной ветки**:
- Выпускаем релиз `v7.0.l`
- - Отводим стабильную ветку **`landau-7.0.y`** от финального релиза
+ - Создаём стабильную GIT-ветку **`landau-7.0.y`** на базе последнего релиза
- Вся дальнейшая поддержка этой версии ведётся в `landau-7.0.y`
6. **Завершение цикла `landau-next`**:
- Ветка `landau-next` останавливает свой рост на первом релизе `v7.0.l`
- - Переключается на шаг 1, когда в upstream выходит новый стабильный релиз (например, `v7.1`)
-7. **Интеграция SUBLEVEL из upstream**:
- - Если в upstream меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
+ - Переключается на шаг 1, когда в исходном репозитории Linux выходит новый стабильный релиз (например, `v7.1`)
+7. **Интеграция новых изменений SUBLEVEL из исходной стабильной версии ядра Linux**:
+ - Если в исходном репозитории меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
- Повышаем свою версию: `v7.0.1.l1`
- - То есть повышается версия LANDAU, а SUBLEVEL становится равным upstream SUBLEVEL
+ - То есть повышается версия LANDAU-Linux, а SUBLEVEL получает новое значение согласно интегрированным изменениям
8. **Развитие стабильной версии**:
- - Стабильная версия LANDAU `v7.0` ведётся в ветке `landau-7.0.y`
+ - Стабильная версия LANDAU-Linux `v7.0` ведётся в ветке `landau-7.0.y`
9. **Окончание поддержки релиза**:
- - Поддержка релиза LANDAU-ветки заканчивается, когда версия основного ядра больше не тегируется как stable на kernel.org (например, `7.0` достигла EOL)
+ - Поддержка релиза ветки LANDAU-Linux заканчивается, когда версия основного ядра больше не имеет статус стабильной на kernel.org (например, `7.0` достигла статуса EOL)
10. **LTS-поддержка**:
- Если основное ядро уходит в LTS, LANDAU поддерживает LTS до конца
- - Приносятся только фиксы LANDAU (без новых фич) и новые SUBLEVEL
+ - Приносятся только фиксы LANDAU-Linux (без новых фич) и новые SUBLEVEL
11. **Гарантии поддержки**:
- - LANDAU Owners гарантированно поддерживают **одно последнее LTS ядро**
+ - LANDAU-Linux Owners гарантированно поддерживают **одно последнее LTS ядро**
- Про поддержку более старых LTS ядер думаем при наличии ресурсов
#### 📊 Визуализация цикла
```mermaid
flowchart TD
- A[Выход нового<br>stable релиза upstream<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
+ A[Выход нового<br>стабильного релиза ядра Linux<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
B --> C[Приём MR в landau-next<br>на основе v7.0]
C --> D[Выпуск RC1, RC2, RC3...<br>до 7 недель]
D --> E{Тестирование пройдено?}
E -->|Нет| D
- E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод ветки<br><b>landau-7.0.y</b>]
- F --> G[Ожидание нового<br>stable upstream]
- G --> H[Апстрим выпускает<br>новый SUBLEVEL,<br>например, 7.0.1]
+ E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод GIT-ветки<br><b>landau-7.0.y</b>]
+ F --> G[Ожидание нового<br>стабильного релиза ядра Linux]
+ G --> H[Выходит стабильный релиз<br>с новым SUBLEVEL,<br>например, 7.0.1]
H --> I[Интеграция в landau-7.0.y:<br>v7.0.1.l1]
- I --> J{Апстрим EOL?}
+ I --> J{Исходная версия EOL?}
J -->|Нет| H
- J -->|Да| K[Архивация ветки<br>landau-7.0.y]
+ J -->|Да| K[Архивация GIT-ветки<br>landau-7.0.y]
```
#### 🏷️ Пример полной цепочки тегов
@@ -308,13 +412,13 @@ TODO
---
-## 📚 9. Ссылки и ресурсы
+## 📚 8. Ссылки и ресурсы
| Ресурс | URL |
|--------|-----|
-| 📦 Репозиторий LANDAU | `https://git.rulkc.org/pub/scm/landau` |
-| 🪞 Зеркала апстрима | `https://git.rulkc.org` |
-| 🔗 Апстрим-ядро | `https://kernel.org` |
+| 📦 Репозитории LANDAU | `https://git.rulkc.org/pub/scm/landau` |
+| 🪞 Зеркала репозиториев Linux| `https://git.rulkc.org` |
+| 🔗 Оригинальные репозитории Linux | `https://kernel.org` |
---
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 06/16] content: Move content to subdirectory
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (4 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 05/16] landau-linux: maintenance: major overhaul of the maintenance doc rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 07/16] themes: add landau-hacker theme rockosov
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Upstream hugo can't work with content separated from templates, config
and other stuff. So move all content files to subdirectory.
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
_index.md => content/_index.md | 0
.../index.md => content/landau-linux/_index.md | 0
.../landau-linux/maintenance/_index.md | 0
.../open_mic_27_03_2026/open_mic_27_03_2026.md | 0
rulkc.png => content/rulkc.png | Bin
5 files changed, 0 insertions(+), 0 deletions(-)
rename _index.md => content/_index.md (100%)
rename landau-linux/index.md => content/landau-linux/_index.md (100%)
rename landau-linux/maintenance.md => content/landau-linux/maintenance/_index.md (100%)
rename open_mic_27_03_2026.md => content/open_mic_27_03_2026/open_mic_27_03_2026.md (100%)
rename rulkc.png => content/rulkc.png (100%)
diff --git a/_index.md b/content/_index.md
similarity index 100%
rename from _index.md
rename to content/_index.md
diff --git a/landau-linux/index.md b/content/landau-linux/_index.md
similarity index 100%
rename from landau-linux/index.md
rename to content/landau-linux/_index.md
diff --git a/landau-linux/maintenance.md b/content/landau-linux/maintenance/_index.md
similarity index 100%
rename from landau-linux/maintenance.md
rename to content/landau-linux/maintenance/_index.md
diff --git a/open_mic_27_03_2026.md b/content/open_mic_27_03_2026/open_mic_27_03_2026.md
similarity index 100%
rename from open_mic_27_03_2026.md
rename to content/open_mic_27_03_2026/open_mic_27_03_2026.md
diff --git a/rulkc.png b/content/rulkc.png
similarity index 100%
rename from rulkc.png
rename to content/rulkc.png
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 07/16] themes: add landau-hacker theme
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (5 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 06/16] content: Move content to subdirectory rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 08/16] template: config: Add landau preliminary config rockosov
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
themes/landau-hacker/LICENSE | 674 ++++++++++++++++++
themes/landau-hacker/README.md | 19 +
themes/landau-hacker/archetypes/default.md | 5 +
themes/landau-hacker/archetypes/events.md | 38 +
themes/landau-hacker/archetypes/news.md | 9 +
themes/landau-hacker/layouts/404.html | 39 +
.../_default/_markup/render-codeblock.html | 7 +
.../layouts/_default/baseof.html | 43 ++
.../landau-hacker/layouts/_default/list.html | 14 +
.../layouts/_default/single.html | 3 +
.../layouts/_markup/render-codeblock.html | 7 +
themes/landau-hacker/layouts/index.html | 3 +
.../layouts/partials/head-additions.html | 0
themes/landau-hacker/static/css/hacker.css | 290 ++++++++
themes/landau-hacker/static/favicon.svg | 3 +
themes/landau-hacker/static/images/bkg.png | Bin 0 -> 1218 bytes
themes/landau-hacker/static/images/bullet.png | Bin 0 -> 603 bytes
themes/landau-hacker/static/rulkc.png | Bin 0 -> 8749 bytes
themes/landau-hacker/theme.yaml | 15 +
19 files changed, 1169 insertions(+)
create mode 100644 themes/landau-hacker/LICENSE
create mode 100644 themes/landau-hacker/README.md
create mode 100644 themes/landau-hacker/archetypes/default.md
create mode 100644 themes/landau-hacker/archetypes/events.md
create mode 100644 themes/landau-hacker/archetypes/news.md
create mode 100644 themes/landau-hacker/layouts/404.html
create mode 100644 themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/_default/baseof.html
create mode 100644 themes/landau-hacker/layouts/_default/list.html
create mode 100644 themes/landau-hacker/layouts/_default/single.html
create mode 100644 themes/landau-hacker/layouts/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/index.html
create mode 100644 themes/landau-hacker/layouts/partials/head-additions.html
create mode 100644 themes/landau-hacker/static/css/hacker.css
create mode 100644 themes/landau-hacker/static/favicon.svg
create mode 100644 themes/landau-hacker/static/images/bkg.png
create mode 100644 themes/landau-hacker/static/images/bullet.png
create mode 100644 themes/landau-hacker/static/rulkc.png
create mode 100644 themes/landau-hacker/theme.yaml
diff --git a/themes/landau-hacker/LICENSE b/themes/landau-hacker/LICENSE
new file mode 100644
index 000000000000..f288702d2fa1
--- /dev/null
+++ b/themes/landau-hacker/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/themes/landau-hacker/README.md b/themes/landau-hacker/README.md
new file mode 100644
index 000000000000..05c2ea74845c
--- /dev/null
+++ b/themes/landau-hacker/README.md
@@ -0,0 +1,19 @@
+# landau-hacker – тема для Hugo сайта LANDAU
+
+**landau-hacker** – это адаптация темы [Hacker](https://github.com/pages-themes/hacker) от GitHub Pages под движок [Hugo](https://gohugo.io/). Тема используется на официальном сайте проекта [LANDAU](https://landau.one).
+
+## Особенности
+
+- Минималистичный «технический» дизайн с зелёным акцентом.
+- Тёмный фон, моноширинные шрифты.
+- Адаптивная вёрстка, поддержка относительных ссылок (`relativeURLs`).
+- Встроенные архетипы для **новостей** и **событий**.
+- Страница 404 в стиле темы.
+
+## Установка
+
+### 1. Скопировать тему в проект
+
+```bash
+git clone https://gitflic.ru/project/maquefel/landau-hacker themes/landau-hacker
+```
diff --git a/themes/landau-hacker/archetypes/default.md b/themes/landau-hacker/archetypes/default.md
new file mode 100644
index 000000000000..43dca9a75622
--- /dev/null
+++ b/themes/landau-hacker/archetypes/default.md
@@ -0,0 +1,5 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
diff --git a/themes/landau-hacker/archetypes/events.md b/themes/landau-hacker/archetypes/events.md
new file mode 100644
index 000000000000..381be1ccae03
--- /dev/null
+++ b/themes/landau-hacker/archetypes/events.md
@@ -0,0 +1,38 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+description: ""
+type: events
+draft: true
+---
+
+# 🎙️ {Заголовок события}
+
+## «{Подзаголовок / тема}»
+
+---
+
+📅 **Дата:** {ДД месяц ГГГГ}
+⏰ **Время:** {ЧЧ:ММ}
+📍 **Формат:** Очно / Online (гибрид)
+👥 **Организатор:** [RULKC](https://rulkc.org) (Russian Linux Kernel Community)
+
+---
+
+## 🧭 О встрече
+
+{Краткое описание...}
+
+---
+
+## 📝 Регистрация и контакты
+
+🔗 {ссылка на регистрацию}
+
+---
+
+**Контактное лицо:** RULKC
+📧 [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com)
+💬 [t.me/linux_kernel_O](https://t.me/linux_kernel_O)
+
+[⬅️ Вернуться на главную страницу LANDAU](/)
diff --git a/themes/landau-hacker/archetypes/news.md b/themes/landau-hacker/archetypes/news.md
new file mode 100644
index 000000000000..0683b469e0ca
--- /dev/null
+++ b/themes/landau-hacker/archetypes/news.md
@@ -0,0 +1,9 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+description: ""
+type: news
+draft: true
+---
+
+{Текст новости...}
diff --git a/themes/landau-hacker/layouts/404.html b/themes/landau-hacker/layouts/404.html
new file mode 100644
index 000000000000..e939055ba75c
--- /dev/null
+++ b/themes/landau-hacker/layouts/404.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="{{ site.Language.Lang | default "ru" }}">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>404 — Страница не найдена · {{ site.Title }}</title>
+ <meta name="description" content="Запрошенная страница не существует на сайте LANDAU">
+ <link rel="canonical" href="{{ .Permalink }}">
+ <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}">
+ <link rel="stylesheet" href="{{ "/css/hacker.css" | relURL }}">
+</head>
+<body>
+ <header>
+ <div class="container">
+ <a id="a-title" href="{{ "/" | relURL }}">
+ <h1>{{ site.Title }}</h1>
+ </a>
+ <h2>{{ site.Params.description }}</h2>
+ </div>
+ </header>
+
+ <div class="container">
+ <section id="main_content">
+ <h1>404</h1>
+ <p>Страница не найдена. Возможно, она была перемещена или удалена.</p>
+ <p>Проверьте правильность адреса или вернитесь на <a href="{{ "/" | relURL }}">главную страницу</a>.</p>
+ <hr>
+ <p><small>Если вы уверены, что страница должна существовать, свяжитесь с нами через <a href="https://t.me/linux_kernel_O">Telegram-канал</a>.</small></p>
+ </section>
+ </div>
+
+ <footer>
+ <div class="container">
+ <p class="version">ver.{{ with site.Params.version }}{{ . }}{{ else }}dev{{ end }}</p>
+ </div>
+ </footer>
+</body>
+</html>
diff --git a/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html b/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
new file mode 100644
index 000000000000..e86da3c3f73b
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
@@ -0,0 +1,7 @@
+aaaaaaaaaa{{- warnf "codeblock hook triggered for %s" .Position -}}
+{{- $lang := .Attributes.lang | default "" -}}
+{{- if eq $lang "mermaid" -}}
+ <pre class="mermaid">{{ .Inner | safeHTML }}</pre>
+{{- else -}}
+ <pre><code class="language-{{ $lang }}">{{ .Inner | safeHTML }}</code></pre>
+{{- end -}}
\ No newline at end of file
diff --git a/themes/landau-hacker/layouts/_default/baseof.html b/themes/landau-hacker/layouts/_default/baseof.html
new file mode 100644
index 000000000000..57080b56d4f2
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/baseof.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="{{ site.Language.Lang | default "ru" }}">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} · {{ site.Title }}{{ end }}</title>
+ <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ site.Params.description }}{{ end }}">
+ <link rel="canonical" href="{{ .Permalink }}">
+ <meta property="og:type" content="{{ if .IsHome }}website{{ else }}article{{ end }}">
+ <meta property="og:title" content="{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }}{{ end }}">
+ <meta property="og:url" content="{{ .Permalink }}">
+ <meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{ site.Params.description }}{{ end }}">
+ {{ with .OutputFormats.Get "rss" -}}
+ <link rel="alternate" type="application/rss+xml" href="{{ .RelPermalink }}" title="{{ site.Title }}">
+ {{- end }}
+ <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}">
+ <link rel="stylesheet" href="{{ "/css/hacker.css" | relURL }}">
+ {{- partial "head-additions.html" . -}}
+</head>
+<body>
+ <header>
+ <div class="container">
+ <a id="a-title" href="{{ "/" | relURL }}">
+ <h1>{{ site.Title }}</h1>
+ </a>
+ <h2>{{ site.Params.description }}</h2>
+ </div>
+ </header>
+
+ <div class="container">
+ <section id="main_content">
+ {{ block "main" . }}{{ end }}
+ </section>
+ </div>
+
+ <footer>
+ <div class="container">
+ <p class="version">ver.{{ with site.Params.version }}{{ . }}{{ else }}dev{{ end }}</p>
+ </div>
+ </footer>
+</body>
+</html>
diff --git a/themes/landau-hacker/layouts/_default/list.html b/themes/landau-hacker/layouts/_default/list.html
new file mode 100644
index 000000000000..2111000f61d9
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/list.html
@@ -0,0 +1,14 @@
+{{ define "main" }}
+{{ .Content }}
+
+{{ with .Pages.ByDate.Reverse }}
+<ul>
+ {{ range . }}
+ <li>
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ {{- with .Date }} — <time datetime="{{ .Format "2006-01-02" }}">{{ .Format "2 January 2006" }}</time>{{ end }}
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/_default/single.html b/themes/landau-hacker/layouts/_default/single.html
new file mode 100644
index 000000000000..9983b08160de
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/single.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+{{ .Content }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/_markup/render-codeblock.html b/themes/landau-hacker/layouts/_markup/render-codeblock.html
new file mode 100644
index 000000000000..e86da3c3f73b
--- /dev/null
+++ b/themes/landau-hacker/layouts/_markup/render-codeblock.html
@@ -0,0 +1,7 @@
+aaaaaaaaaa{{- warnf "codeblock hook triggered for %s" .Position -}}
+{{- $lang := .Attributes.lang | default "" -}}
+{{- if eq $lang "mermaid" -}}
+ <pre class="mermaid">{{ .Inner | safeHTML }}</pre>
+{{- else -}}
+ <pre><code class="language-{{ $lang }}">{{ .Inner | safeHTML }}</code></pre>
+{{- end -}}
\ No newline at end of file
diff --git a/themes/landau-hacker/layouts/index.html b/themes/landau-hacker/layouts/index.html
new file mode 100644
index 000000000000..9983b08160de
--- /dev/null
+++ b/themes/landau-hacker/layouts/index.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+{{ .Content }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/partials/head-additions.html b/themes/landau-hacker/layouts/partials/head-additions.html
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/themes/landau-hacker/static/css/hacker.css b/themes/landau-hacker/static/css/hacker.css
new file mode 100644
index 000000000000..736bb29580e0
--- /dev/null
+++ b/themes/landau-hacker/static/css/hacker.css
@@ -0,0 +1,290 @@
+/*
+ * LANDAU site theme.
+ *
+ * Lifted from github.com/pages-themes/hacker
+ * commit e3c8d1ad288894be216002a5bc29fc611aeab9ac (2024-01-16)
+ * licensed CC0-1.0 (per upstream LICENSE file).
+ *
+ * SCSS sources flattened into plain CSS:
+ * _sass/_default_colors.scss (variables inlined)
+ * _sass/jekyll-theme-hacker.scss (main rules)
+ * _sass/rouge-base16-dark.scss (code highlighting; appended at end)
+ *
+ * Background images live alongside under /images/{bkg,bullet}.png
+ * and are referenced via "../images/<file>.png" so this file is portable.
+ *
+ * Update procedure: see CLAUDE.md, "Theme update".
+ */
+
+body {
+ margin: 0;
+ padding: 0;
+ background: #151515 url("../images/bkg.png") 0 0;
+ color: #eaeaea;
+ font-size: 16px;
+ line-height: 1.5;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+}
+
+/* General & 'Reset' Stuff */
+
+.container {
+ width: 90%;
+ max-width: 1000px;
+ margin: 0 auto;
+}
+
+section {
+ display: block;
+ margin: 0 0 20px 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 0 0 20px;
+}
+
+li {
+ line-height: 1.4;
+}
+
+/* Header */
+
+header {
+ background: rgba(0, 0, 0, 0.1);
+ width: 100%;
+ border-bottom: 1px dashed #b5e853;
+ padding: 20px 0;
+ margin: 0 0 40px 0;
+}
+
+header h1 {
+ font-size: 30px;
+ line-height: 1.5;
+ margin: 0 0 0 -40px;
+ font-weight: bold;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ color: #b5e853;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
+ 0 0 5px rgba(181, 232, 83, 0.1),
+ 0 0 10px rgba(181, 232, 83, 0.1);
+ letter-spacing: -1px;
+ -webkit-font-smoothing: antialiased;
+}
+
+ at media (max-width: 1000px) {
+ header h1 {
+ margin-left: 0;
+ }
+}
+
+header h1:before {
+ content: "./ ";
+ font-size: 24px;
+}
+
+header h2 {
+ font-size: 18px;
+ font-weight: 300;
+ color: #666;
+}
+
+#downloads .btn {
+ display: inline-block;
+ text-align: center;
+ margin: 0;
+}
+
+/* Main Content */
+
+#main_content {
+ width: 100%;
+ -webkit-font-smoothing: antialiased;
+}
+
+section img {
+ max-width: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: normal;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ color: #b5e853;
+ letter-spacing: -0.03em;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
+ 0 0 5px rgba(181, 232, 83, 0.1),
+ 0 0 10px rgba(181, 232, 83, 0.1);
+}
+
+#main_content h1 { font-size: 30px; }
+#main_content h2 { font-size: 24px; }
+#main_content h3 { font-size: 18px; }
+#main_content h4 { font-size: 14px; }
+
+#main_content h5 {
+ font-size: 12px;
+ text-transform: uppercase;
+ margin: 0 0 5px 0;
+}
+
+#main_content h6 {
+ font-size: 12px;
+ text-transform: uppercase;
+ color: #999;
+ margin: 0 0 5px 0;
+}
+
+dt {
+ font-style: italic;
+ font-weight: bold;
+}
+
+ul li {
+ list-style-image: url('../images/bullet.png');
+}
+
+blockquote {
+ color: #aaa;
+ padding-left: 10px;
+ border-left: 1px dotted #666;
+}
+
+pre {
+ background: rgba(0, 0, 0, 0.9);
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ padding: 10px;
+ font-size: 16px;
+ color: #b5e853;
+ border-radius: 2px;
+ word-wrap: normal;
+ overflow: auto;
+ overflow-y: hidden;
+}
+
+code.highlighter-rouge {
+ background: rgba(0, 0, 0, 0.9);
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ padding: 0px 3px;
+ margin: 0px -3px;
+ color: #aa759f;
+ border-radius: 2px;
+}
+
+table {
+ width: 100%;
+ margin: 0 0 20px 0;
+}
+
+th {
+ text-align: left;
+ border-bottom: 1px dashed #b5e853;
+ padding: 5px 10px;
+}
+
+td {
+ padding: 5px 10px;
+}
+
+hr {
+ height: 0;
+ border: 0;
+ border-bottom: 1px dashed #b5e853;
+ color: #b5e853;
+}
+
+/* Buttons */
+
+.btn {
+ display: inline-block;
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.3), rgba(35, 35, 35, 0.3) 50%, rgba(10, 10, 10, 0.3) 50%, rgba(0, 0, 0, 0.3));
+ padding: 8px 18px;
+ border-radius: 50px;
+ border: 2px solid rgba(0, 0, 0, 0.7);
+ border-bottom: 2px solid rgba(0, 0, 0, 0.7);
+ border-top: 2px solid rgba(0, 0, 0, 1);
+ color: rgba(255, 255, 255, 0.8);
+ font-family: Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ font-size: 13px;
+ text-decoration: none;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.75);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.btn:hover {
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.6), rgba(35, 35, 35, 0.6) 50%, rgba(10, 10, 10, 0.8) 50%, rgba(0, 0, 0, 0.8));
+}
+
+.btn .icon {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ margin: 1px 8px 0 0;
+ float: left;
+}
+
+/* Links */
+
+a {
+ color: #63c0f5;
+ text-shadow: 0 0 5px rgba(104, 182, 255, 0.5);
+}
+
+/* Clearfix */
+
+.cf:before, .cf:after {
+ content: "";
+ display: table;
+}
+
+.cf:after {
+ clear: both;
+}
+
+.cf {
+ zoom: 1;
+}
+
+#a-title {
+ text-decoration: none;
+}
+
+/* Footer (LANDAU addition; not part of upstream pages-themes/hacker) */
+
+footer {
+ margin: 60px 0 0;
+ border-top: 1px dashed #b5e853;
+ padding: 16px 0 24px;
+ background: rgba(0, 0, 0, 0.1);
+}
+
+footer .version {
+ margin: 0;
+ text-align: center;
+ font-size: 10px;
+ color: #444;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+}
+
+/* Code highlighting (rouge-base16-dark, flattened) */
+
+.highlight { color: #d0d0d0; }
+.highlight table td { padding: 5px; }
+.highlight table pre { margin: 0; }
+.highlight .w { color: #d0d0d0; }
+.highlight .err { color: #151515; background-color: #ac4142; }
+.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs { color: #888; }
+.highlight .cp { color: #f4bf75; }
+.highlight .o, .highlight .ow { color: #f4bf75; }
+.highlight .p, .highlight .pi { color: #d0d0d0; }
+.highlight .gi { color: #90a959; }
+.highlight .gd { color: #ac4142; }
+.highlight .gh { color: #6a9fb5; font-weight: bold; }
+.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv { color: #aa759f; }
+.highlight .kc, .highlight .kt, .highlight .kd { color: #d28445; }
+.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 { color: #90a959; }
+.highlight .sr { color: #75b5aa; }
+.highlight .si, .highlight .se { color: #8f5536; }
+.highlight .nt, .highlight .nn, .highlight .nc, .highlight .no { color: #f4bf75; }
+.highlight .na { color: #6a9fb5; }
+.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx { color: #90a959; }
+.highlight .ss { color: #90a959; }
diff --git a/themes/landau-hacker/static/favicon.svg b/themes/landau-hacker/static/favicon.svg
new file mode 100644
index 000000000000..91a33eef7b27
--- /dev/null
+++ b/themes/landau-hacker/static/favicon.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
+ <text x="50%" y="50%" font-size="56" text-anchor="middle" dominant-baseline="central">⚛️</text>
+</svg>
diff --git a/themes/landau-hacker/static/images/bkg.png b/themes/landau-hacker/static/images/bkg.png
new file mode 100644
index 0000000000000000000000000000000000000000..d10e5caf1adb7466673bc9cef83621fe855caa3f
GIT binary patch
literal 1218
zcmeAS at N?(olHy`uVBq!ia0y~yU=jggMrNQ$#TNBtK#DEEC&X1sN=jN<TJhgIUIqr1
za!(h>kczmscWgJUHsE1R2ws}X9=R$~%X@*3=-vhL at -NfkR)!pBoqVTzzlmJ$gw$h(
za!N&gzAjH}?UE-yuB at ->I#KvPao+dRzrL at oCvVpee)R8SO|Rip8+r3Dza~8XxNqSP
zmGuR0<=?XLN*y=&ko at A*R?n;zmFGjmpL|X=el)GDnT?nCc-hJ9h-*>(U-v7SP21O(
zoNu0S!J*))p{S5clIq(!Rnv%W88O`}e-}D7AF~mxZ<pM6Cil`MzxnU%D at vtJGAgdP
zGBvvE1 at fMbnNsq?Bl1W-kCe%R#FxsACj_I99By9o>fpV+3kwX-$FQx)Y;JvA%`)@d
zWYLYgd8JI0aw{r!Iv89Q>eyImcyRi at 1&bblZJ%(NN9SER*F|RI`9Vy^n|kYj&a|m<
z<qcb&UnO2J|6SDIt00$O30vx5C#=V``Mk at b+qoAOOjKVO{UEfP^J}Beo*03xYk_Kd
zS8VSRdCSXubd61LitBTrLB0E{L%$ouGhS8EyJ6)ZwdXs?3x8twHvY>H+i{|PR}_n7
z-gd`kwp)J%TC%IUg`6V4t}fWH9jMCX-LAENwM{str7XO1;E!GNEuasI-gOzw-pnlj
z>{){B-p0ScV3upi-pM7+*5to^wpdM0Lo6uhXKvGLxTUb-aiDN)U^44#klW=8|4*sV
zntfrzKU=lq{IC4u?*i3*Ut)0K at G9flAeW??UW>QI-$6b&yzF|LRw2jj$QO!RxR2R@
z!p-JEk`UjzM<raFm`!#*;7Hu<*xVKtGV!QV@`uJ#;#ypF at o#ElK?eTJu~*2?=(N*m
zz95#7=dk$h0!QZF`l|i)TVMX-Y`qcH+#5e(^=+V_f3$|oiblPIRr9!9^=n>%QUGt5
zsq{^Wh=(VtSvB4F14E?hZ{X9Y?R-}fa at G1cS_<EQd{(?RZONXWleFXa{d=3gV+$~p
z6ml>4|1{K5DvW*TQF%BQWRm-W8rcnHXW5F_LnOa!0te-Gud{_`k1m{6m9unPa(^B$
zKx8W_XRUv at r+&lLzc+3*l|BZA<&8P3LiGe?mL9UxX48rf2YHj at p3l_yh=pvc)~tHC
z{nO?fprlo3bGdkWi`e7<jurW<Pi@?Ne}QB2JZ<5I_*+a<b+qresfdEKvi1FOoLzS?
zTl2c>f5A45eIR!{NSV4~V*iRMLf15OnS&>IfjrQ$5*USNy<-2E*PZ71vSAxg$R}ir
z*HrJV2QIesUSGbBCF#9c#svfK2|7o#H8-glPWYpw_zvjL75X#RJY~u`5Y-X(HrD(=
zUCM<84_%p-W@|H8MF_Nfy!EQ%2FOzxtQJYFtLIN<Wl3w@=f_nBG=E8fj+N8u$u^sh
zS~AYze*-j2ASC3YSZPVr&u|sdhe_8L0OM%!m(S0uUTbZAwDjNUwXMySTY(yRWS04@
z{qG^R!8u_^+?k`6YvX_k=FRgvrCYbGS{-$&RrPqsYG9l{e(hWT^e4}5w$j521-+O5
aGpK*M_1*RT+dN>Q#Ng at b=d#Wzp$P!*bu5qo
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/static/images/bullet.png b/themes/landau-hacker/static/images/bullet.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f8de1a7e0d469d77b8852396dd10f338ae23f2
GIT binary patch
literal 603
zcmeAS at N?(olHy`uVBq!ia0vp^5<tu)zy>7${dCd>QY`6?zK#qG8~eHcB(ehe3dtTp
zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRn<n8VPq=De4^X_^e
z#a`m+>&pI+kyVsc_(xbi&_G6SPZ!4!i_=@D?9F0w6md%rmzMVCWO3ZMStxs>APeV`
z6HToPk{)y4eARTTV}i&**7yU5F8RqPByJ7f7<BN_8{S9{vwtah#WUv4eLuT8{h3tX
z<H~7M{j`@(37X6IrtD$Lr%%7W{P|aCwbJ_V&o42redq6UWICyG_$t at 2q=LO|&5T=e
zd8VJfEp%ad{)&z+4d<Rmg?8bqH{5J#bt<@-!&Yr;A(vcZ(W3t8|F3w?7U^`O9x2|4
z_0Bt`e%s3Q9+5cw^Up5fUGe|Vv(%ZH{1H8>l(V(z*fP#y%N{ZA*k8}SM*o+)sk0^|
zVWo&jS?rFxude<7%Cf>m>EMbm?l6V<?Z+4Y-_E>rx6ksBe>HsTzdZg`C*I{YbAygX
z`No(wBmKJvw<YfHzmO)pFR=F4ze6Ehr<5mNx07+IG`S?3$6NcWj%l}S&i11mj+KA=
z+wA^w_sw{w^pE at JEMQ2hmbgZgq$HN4S|t~y0x1R~14DCN14CT{(-0#=D+5z2LrZM~
zAj6>3<wPrrhTQy=%(P0}8h%I?SOPV0fNaP~OiImRu(R82THXN^WAJqKb6Mw<&;$T2
C>*sg?
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/static/rulkc.png b/themes/landau-hacker/static/rulkc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ae262dd97b6e6db38463f1433cd8dad6a7d1c32
GIT binary patch
literal 8749
zcmb7q2UJtrwst(A2#OFu5NR3&L7EilRYFIpp%-ZZ>BSH_Sdh?-)KH}<gbvaI1QqEe
zC<0QWLPTmLG$BI%c+P*{yYIZ?9pmjW=GY^9XRkHaEZ_X*+B at F(whkl1MFs!>z^JDS
zHU$7ql>L&^r>IwK-mlb9PqgkDw=@8N`qVQ&ola73#@^M`G}hD9yyPF~2fgd<1^@^l
zBavMO-Rj&uj%H<`42EFlfPUlrs)q^psvtr)V@*X~uHFe;k??r`q_kC at q2?rAw5SD-
zT^<bPf1dU=-=*UdUrN7$1fnE_Um~_XwK5SmRW=t++-w{)Z at hZ0Jjc!TDZONt<9V7|
z=IaP%=j`<C3S8N^a7apR_>Ui990coy<zsFd{nxHBMpsg#=j#x12zNQL{B6~M><od}
zA9*2fo}FP)3$zbDNDdlsy6^rt*&A9QZz!6HvD$RDkTw6p`2|tznJ%$pXCdzwU{ML1
z#9obds(V%~8kGN4=&99PmiNq;OHvrnb<AZD{vPn-JyzahU|*qNmSGLU1qF8FhYSN-
z4=JySz9V0D(sS7i0i6=fN0O&#gYR2(H+QA_w8Q at RQFvdZda?G#{f}2yl2h0f{<t~&
zst2Z%wjVRZbLWR%*4Y8%PnlR}V2E0Y-yn@<i#jD|);65)1(SLvMt>ea7xyY8zF|sb
zVSZ|Uw#$9y=m at a=DsU#)xHg*Vpi|BUI$-LVdK_rB|GGl&uWKDdb?MYEIdM}cH-vhT
z?w;N)ExOe|n3+$|i%EBg0|1u*dSDInkeQA7&^)%?e99K?Mc8BV**`$Mr$K>XG2qJ%
z8d~vi87N0|uB%*v$<&RlEZW!=wC7miVPdZG1CB3EYn(8eobmwv%1?|BUM0maJP-=J
zwtwT^)bf7Zt*HF^%CMS(mCaBUzSIMkujCEC$TeF$8V-X^yv#w-0{|yqIh_Uo9<lr>
zF~)xYehITa;7_?p{R36hg--k_rv(6jUs6Q-r(8-006d^>XHVEjK~(g>itPRzEjiN>
z&1|Oyp1HN^fNu+ZI_?}5ylL=;p!7c;`t{(i8DTwQpM~zCXLP{MKuCeacZf#``Uo_b
z2Hg|3y(rL#%Rxz=75Z#Ea|JYS5OUr!*P5?cM*n0M at i+Ru!kg_mJwpUr6`0*LF}ede
zb=l?)l$Jw&=>M{)UyJ*t-(NZ!zlGuoRN%{_`FycQbN=0oesZNpTZ?@X2+!!xZ({u#
z&W}A!m!ws1ElE*C-y-jAq at EK|`-0&ADqDKw&>6Pjg~uL!uOq2O9<IBI#K8ZjS^s5P
z<`mmE?}|G~gCc(1un#6a-GlC<d2Q`z^tB!9qB9a5V-~dzotJj1Z~+gjL^Byg9I+7x
zH6pbgQZJ9Nkz~P=8GLKNA{NQ7lj3YpY+jDy?2akUe}!fYJ4)eEQe7V_>W--+Rn}lu
z=Q*XJ5lU4*ljRn&mBMzunXR?|92^{M>we65Ch~|nNM^_PH)p!v45ke%&5%f>1z_Uo
z;Up1|&_zRw-#9QxU!5l6=X)0=@`lZBSfpcD;OjRVNg!&(B!eIaHgQe4Ukgo%Q-0HA
z_L9>-qwTOX{}f!tmUApA>^{>J<^6$oI=oobs*dOuiRNUbrp3HE(q<oRxFVeK>j(IO
zeb|+Ka8vZ0(=6P#G9uEz>fmt1af21P;H{U=fHk7;QMu3cBT}Eq;rgd;7p8L*)v_YB
zX|-C24%f8ZT8mGHxb at Zx(iqX~FoKM2;!uI~><bsUUbjB+e at _5)vqf_HSn<gXOjTl&
zUzc1}1b&pqQGpQ7A!kW3t+2>--cX7aSJSm1vQhPV#A1B$lmpzoc2PU^+>vS-Iu|$F
zLLA!dleMHcZzzf at Y_>FNb{SQ4C!F^p6dil(rk at qZpZGJ`{+4j%BEIxG8fFtwz at BO?
z*So4&d}|?Ns`HqYM(C`DQt))fvLu_d?SLUo5$%#{Hm?|HB<vM;$T<HCneFS`ldq<f
z+Io#4;knZ`P;Q13zfC1TOmR<;zK1MYQ5y`^F+V6T8nWt&I<iy=-}`9+&N$&s|My`2
zcZ|50w45FTnr!jIJLJmwEwEYe(rS#A=%f}X<XEH8wxB_rY~w+aEOli_?!EvFY;95n
zlwQR?a__7B{RgP=vnT!pp}zr9jN%syqorhYfdt3_oDt4hR{XsVEshW>^ngaYWvdGn
zjlo!vpU-N(Qxen(wS0U!Id%yCCwl!W&3<Y4%b2SPwr@;^_l$C7H;&2~>@oKgY6O^`
zpjThs9sjB|(RO^emMYsQZg`dLZQc!OmkUo`(0obNT0$y|JJ+I`oJzSupf(oGmoxNt
zz13OOt~b8m)RQ^&TW1xR{bAE;Qlh;v)8IDb?nE%i65n8<)zHyqc*GLZk*fsv#g~)B
z?J?#)v&}xI`D35I`Yl#kT0T2Y)7gCiA~hne&4Wvgc-voDTFTtFnPYJf262G~iPDYk
zoO&Nl;e?AWhsF2%KQ8Lw$~mUrX3=~!^M%Cok4D9O$@G`WmGzm4h#+sY_ at Vcg#6(zu
zoISc<r!<*V%#RM13%kx+ at TT@DZB4Lyh$<^59vbmZFaS}e_$fGX;pixtOO6+(%ieN)
zMDFTz?ny}FN6&dc;ZmmMjK4JsHG+?>8qxUCONfZrhEH0%N7~`1TCRztk!w14cFGl1
zu;Fd;gz9N4M*qcRxl!w8Z|iRXptk3pj<X*Mnw<!Eg{tu!;@$>E^&W5hh{|W|Nu2b1
z=Fgw4WlCJ7rpaYl4y*Gqf_oM_hoFWx8YQDw(=UE|O~<#+zU#j(p~JH`O3+M^7j8fz
z%<$^mDVjgHey?c{*ktVkWejFQn7!t>_MEU`6Pp3&jc9l~1M__660%m^GCJMtW6Nw2
zH78kJ9p=|g1(%Bo&%Mc?Y4&i{L=rrba}9In4I=uCh}?Lp&YT)W3#wE^%hqwc9Q9rV
z9kE5z)v~n7Q$(P-sv@{?&TqPiEwwLIugp}Xd(biT8II27_NszBCgV`;A^z)jdc?u~
z?UK4core_X=Plg-2~Ca92qwwvgKzq^sV;vU#aGyMktYtDyIkDI0?0KV5D_&GPgZyW
z at A8;9y+GU(n(*;}2I5rqhf~q4v>KGJ>n^#Y at 1OULeQ0+gOoZnxy{UZc$YN3O^rPj~
z1vTQ0J*%7a0;AyQGH1)!4E%0t<nj*Lf%NjQS#3LGBT>BV^LR&%rYCXJ-lT}_%6{#6
z<Ou<8{or}nRK8Vzq$tsYpGk at Typ2PrSY5TqAmxI^rq%V-&Zc|*2j~8YYpB}?7|7?`
z${Lk?0TZdNBCfee-b(1-5(_<BNj>n9`|}x21P$hF#MuPT5+AN3A@=dH at CGF~qRDqs
zdf8$U<Kkz_ZsDspO*)>q`e<R#SGZc$srNz8dcY$V=9MJYS*F=`|I;+ at 0A7<-)Av>@
zUYzsR<>EUERnO975+|C}(N#1D{(OhW^Vt+s$=XIZu6?I_#ADrOD9rmG9B__p+qx{F
ze6SgD4Jv4VL6}OZNHy>mlTwty&-vYhG^|_-E+=SWzbL$O{w at ECai)T>*vB{Y-F!FR
zNjec!9-q|NyI3&C9Hu>P6DOT;GHP-KVKp&!q=4SNQ%Z$EX6`GXxJSHWHUopCl=sp<
z3B9M;;{qQ8w1PlA%ztsWzn2q!UwXgS53;v|+ at qhI7Qr`|*Uoj6PPDukWV*-_0s97j
z`htz5c&_yx<&?nyrj7*Jw`)|et`6 at WtPR;*yd@&*&BJW58M=^@>x;R24|}Lar7mvn
zg^|H=b);Z|n<G{#>W&{&`m_LBCvbn*kr#5j at Q9UYS^wIJKyDt$yXn|>F7D&2a?*!|
zNWN2g^o;q{wk=p&d;3T$tApNTE=xiqr9F6KhOg<Td0>}Rnu&gE1l_;!v;ShP&uUr)
zxQooaF^CQp3oJaXz-E_^P`x%AMdoeZ?+;3Q!LfZ|KAhMYr*iyb at eFC=xIiU*hW+q@
zxAo_aJwo8djNK5E=_tq7Z%s}FNdqdQX!%$|FTh5PWPGCXNAcD$aBOy-IeyP<0#p96
z&jXK*)bX8pxzeAhY!qAroAD;URcM}8ywl+K_GsJDEme&1KZHigq4Ysz`FhPhr- at -$
zgmR;IxK(IqIQ?PXd<RZ4A3m(nxLHW)$&ba*V_pWELT6N+xdvwBTr8IxncC%MDxqOU
z(&xINz)&PlgUp|7?`z%n!Ot$k at 1~2=qy-BL{C#$T2kYI%;Wm-k2|rW?%sM^ZMsB;G
z-<Friz7E1C{&@X;g{U%;r0w$Qw^czwK!z{vhTviQnDlcgVcTub>AH at Bj0{_d)Jg}N
zjfR_BJyT=CtwAF6gTA2jMIS6FkA-2PxH45u(XBp})RFzU4J*f>KK}VXOu$xkR8Qim
zcU|owwI#V4H^(ARG0@?JPXHKB{hpWnD&~JL=zk08|7P$16&?RZC1RW{dzk?OzAJT2
z&hOLitLLLS1T{1BP>l`~b#Sm77 at Umn|0KXlF8}}u64uwsIjRXA2N(yied0tg@|RQD
z&i->pq;9{pepB2a&Rz`K_c*h1G)=>R7y8V&&Rj4-PwCVjyV**GiTx{&OfO4vUM=PT
zr^BI7jK at xig(5W6>;J(IF~zUv;eZ$qh^9oms3qss=Y?@uN)T$-^z3scUvz1CO+pP@
zQu^hLZO}D4^VyyNDs&oO{|8I_)n^6ipS%f)<_BfT1jz-XrpHdz^mzb7WptXxN4#$p
z^lhsG6_knxy`XzIg_#graG19FK_}{{=JeOeTJX{;;#whU`tGf<RDIxGJ`)1Fba>tU
zp%5Fe_EIRsPCDFNU5L;_rzxkCnX7#H2pSh1?>NgV%~f%AUaQnkI<+ at N+oQxsY_g<-
zezMFxB}%kbiz_Zsmxv(MXh{vVv%i{S0j}_ac=!j~W!^}gyZZpP0lvqqf1n(#B-HQ`
z+4;V?PqddFKuX2^|F)63q<=N4Y>b;&5neB?rFvzFZgZGdiXtv|+EkWKs$%sLu<epg
zlQ^gtNZ9tO&x=<;-(y3{ZFgYk2;cfnNr$(3$U01nZG&MEZ_AC?Gq#XEXVE!2LQTq*
zBkNPQ{QU<Y1T)!_4e}OX-$dm_$)SnfS}$Nk+ik>c$;PSej?_7R&=lA_w5wG%Ut0I=
z@#VlmzL!gmIaPA&27s6c at w$%zf3Ia!KWF*_l8fxX%}eFuP2fowJOwsCdhb$tL*>P=
zx^hMav8il+P#XX2X>ZnXTCsfeC_7RT2<b&xPi0<bhwgO+nJXl7Y6`h6e?vJRTD at JL
zk$9N3boi!C4kZW}1IPLN?>T?9v+6us- at UgkJVWD_LOJz-C{)R)l6S(>@kaI_uM~t~
zsu0Bx9Mx~k{;aHffgOn~B6!Zb`Ma5)(P7r_|4KEZC~oMZ6Z?UiqtLAlFUgkYxzi$N
zAwVf%R-{#kkb;fwJmI%lp85StJp{ZkWU}mfaJaW{-3z=_f*`4Y0#!BVzpNwY9N)dy
zf#4E^@OPjF7xZ7Q8`~(ZdrB(FzMRW at T^#7+(PpC$-V}M-bo6R?Gzt9-Jp^{W1I}<C
zS?4ee|4>)M9%LYJXmDKMd_hA9l_yfnq5Wu-RVrlQmNyh2bS~ogzqj&#g26M7?|Cc$
zwnlUjK2_9GMaNu~NldQdO8OHHsO<GH-&GDYMxc1`wzN_b5}es~L$Gfy%mmW+)uY5q
zI4Kr=tPMV<-e!?js at 79%{P}}l3kJCtm+v?9OpB=fp*7q1W+RU+xKw2OL};B_-`q8U
zjle3etIsu$wov~avj4WX5`+1|{wb3H1EMaN)SzbsbhwOiri&4z^9q at lK_oLsrwVQj
zV+JlR82JGP_ula5beDY{w&V)!5|3$XlAj7T!igo9lOCW(lC5xM=o~NK{Bhb@*Iz+(
z3B(lCD%@jyc;{o5!d~xHH(f$3 at WwIn)=#+7ZigKVdo13fn;0nS0u#&Jibw2>Y_B>v
zL!*bcrL<o}XWK#zyz1xS2;Dx!H7;uI%m#`sG6D~77g+AwNVn%!FG%5qVTq#2E2^@W
z0qN&d&HmSpk+Dq3?FxVIr?rLo^xImjyNhYu1SKvf&cYk7!`3|?$xb44CFee)*7gp?
z6q?uEpHgghw7?dLx?}{YI=L=M!c#Ji%QHO9XBu6!oH+PnERfoABuDKC9JZ%3q~xH^
zdlOYJWUfUn^ho&+7?RGa>!B6*EQ^D6-d_G`#@X=$VQS;{8&3bLI%riM at D^16N;zqH
zW$_W<yIg9 at ndW|cM9tV6Z^C6%%!YZ-FmdY*e(GsE+&`7e4A7_hO-cFy*@_-;oEUR#
z;550qDw_T}(OsHZC`6MTk1Xj0mNgId at aSiBAI6u6pxVm0+7l%K46MHyiW(R(#S;-Y
z;k(`iw6AY`4!A1}MDb4djtPjAt$y_Sm{dMnk!_LC4?9b19P(i}$q4{pd#k{&`PW|6
zU;9=6RPp|)Wad~kMixFLlH)2?zk9o(G1%hbFZs?FUV%Z9qXBv6)2<pFmm8D6g)YRp
zxw&Qh`dP|byFrv6jR{dcUN%MT#Dl*ShbXI7*0}X7P1^dYTtOM8D1Q%UrX?%m!Yd?a
z3Z&cyg{0Sz2Q9tcUFORc!lR8(!(No4U!bO|ywx<A-zK^NM%LraufeP@@0&o}Pigo&
zbP6IC?YyBzS%Z%XsgLVHWxWQ|h50=*Z{;iQUXacugf3(|JK|iW6s`ponodx>tC}BP
z()}>!4%vN|8FhVExwa5BqJM>Dd8r((9ag|7_<%tu{T!mlxeuXB9Oi>WzTH29VTt?V
z4<xz2VK&9e6g9qV{onz;uRY0a{Jhk(B2KHcWjVCb;7+?rZoSb_xXVig*y;x?mRKv@
z*zUF22o265lGj+`--f=w8CuX{3J&XA-0ET$+qImW<H=SIC6Pq^d~mEthuE<$JG&`+
z%hj~f4^xsz-8oTEHDs4*D<r~)-lwH$<zZPZIvLjSjUYc-<Gr{Px*(RaSmirF_kqSG
z1$0i}SsQA47rolMxV4g`{cu6pkOiri1iqaQ20PbVxj!yOXb$X0noNjLwRf2w1TWc4
z!HA<jW<!9X%0nl<Mc}rN+1_i9V8&H&xlhVA*Fb^#y at i6Y_HPWXu&|D-H|IpdxtCiL
z5)!mHm3HRQVUO1^4<qn}BA^$%LS_>KR4qMOdF at 6a6T?i^@b;Qn at gaFbX5>oES^|*_
zkMD<Z_TXA;!mYLE7eEb@!{U3&e$f8CqX1>z=qpELGN|DdY`zd$LC!&V2ixzzKQ&q*
zqUB1RgD$au2eFl1j6QGuRVNy^tvc#K1OhqNF`MyNq69N?m at 71D6SL_jJ=0+bDdbcN
zUXRIgj0){QxJIQY&cfy;tq-^A(8pJXrb90iThus^c&PAU^BRWALCJ97fmWDZpJK}R
z!tinSab&`B=y}e?>)H?|JLjX$HO!RzdKa<1COjfpbsdOoUBgi13 at DR{{WLXew{KI9
zlMwgd_WSqn`&o(olAPqvkgbrP$D%&#?8sow-O+(ydZIcXWLE)*ymWd&pCU%U_*QAp
z!-v;hsHV2e40d2gdQQP`5<SM(25jG`;I>EBX(2~WBYZ%G@%^J*sZ|GRCM`~{qE|if
z`(0a?yU-ZUjg5qlmx&Ayo<%lOqqtQNscQ#W6o@;-QeL7}^R1_bZ9)s+erCyqXz at X-
zy~QT^@5&`;#}5~l;SI_5JPVzM<`d^pK0mN{B^6cNWA1OBVy7QaT%bB-<cm$dO!6sd
z3 at AQ10hah^^w!g;71hylN#6NLJjH%w&oSzNpk#id+ytIUBpZ>jc##r5qsmp1_tAG{
zq8 at G=YZ-HYM+vyX+rW2xg{oFs&3-mID#IkW0F at v13EmfAiY2P~Us^KX{gQ;?ioi!-
zE7 at 3~UfKwCpq#oFX&kmNZ|zdJu^hUvVZE0Xtv}VK+7|_ThKt`R^fjbx at P$O1s}s|I
zWswH+I(kdIxC=2%^|p6z7_WI>_Ov_I_7$Q^gFetn0T*kUk at W{uoKZDswJ%5GThj!2
zQz=H;;kNwes^%e0Ql)$b!=kf$-zw04uGmCUB*g;K`K+Q@@2k5m6`?Gl!2u~*J8Vb-
zb<9-GNUR-r)B9C?&(I2v9d`@Q$bsk=f^6J{`eACwQ8bp at qCo33pV<%oNYt$$d%0Oz
zJ5Jiy%@?D^IgkY at iyfH<p%p|j#S_Zk_!4gqws7C;-tK5LhuMg-=jNFZ=|H5wemk_q
z#KFms2u^pXL~PRh&r7Fgo=10 at g9Z7l<na5HYoK;&&N8mx?SXAV_VAa8dx?FEQ)SD`
zjL_h_%DfaO%%(rEO at ck~#?sdmixq_<JXP`WVOBOECz25I-8-y(*K7hGcO&f1kupw6
z6S4^1<Cub}ovy$dL(&SC^FN0!RB{F_o&~nugvcRu^{{51d&W|YYEwU%Cx;#G+3(8$
z53V!O&Bepyud7bIf_qcrod63NSltPexb|Fc3A0&&%HrZ0y6;}{K1+m(ESgg=Iz&JD
zq%!x=_^f|uvSdzXHR)r$OLX9Sy{nNzLRS*)rc~^~sy at Aus~7S6(WU6<Go=+~FZLi4
zM#JlNQ!s-)RNc)VhAXq6z%oPxZg`XpC at dj?zYOwP?KE|Bv%HcvP>&_@?I*8gq--}*
zF=<NbTtv$)l$6^eA~_Wr+P51QqP%(Id;TY*k at a3tEgJ9=&mIM;#EBUW$aA3LMvy)H
zPRi=k0k%tY2%qZt#n*^&rBBk^Bs~F2F&u!+!$;PQpnK_y at -BlzL-1QUGIwuj&g9A5
zeec;9z>er&&!HBhygc12$D5{BT3S8f)2lhw)*xgn_Qd at i7wNV9Y9HYA>m4uEdMob?
zH1;Z}kv0D9uGw=#1 at Yp;tCwf}F^lrGa!xH-k9QU~sp#NdnfdYcbU<c&zde>nv84{A
zdip^kc&VnLp~1)?wDZiDO(ooRK|3MS_MDMmTID_w--VW(F{B%j`+=oAK;`EMaMuo*
z?z=-Rh+JofhdGdHk6v~@ny;BOU12RZcagO*G1;;Rvt2)rEFZ#1U~1OlIukwL1cbbS
z&C{KE#^>?J`Sa(u-){%CqhM at EBm1chv(;J5olR^mb;%c}U_6i`6p<`3Ny_iPG3`s(
zi=;48)v0phVvWT6HNeHN#MImSp%>co5kzv=a5Llh?AL4f{T|r-WX+l)bT1OWFM!mI
zXhGtuTO=E)l`-194_mvVOl&!M{qY1f<v31`F>NUm8=SM at 1<Uq%1#mi!{wV)Xz(nuu
z#x$8v&o3_s-*`ezFK+kp<xnpbT)R|>#{(4Oma?CAFFvetm9}ClDIUFW8T3#EH;W>O
zZS`p|n<w<Qtze=h8-1uD{-jJP4(ip_Y`*(^r%@CYiItg$YO$uSF?sFqkBj2A9r~9^
z_EYw2<YQWhN}INtV#R7#LjTK)_hqJs4-x(NUi@~48<uEv`oX7g>dD`}<sEM at jC)yF
z+LoF<V^lXOG0iEwKzHfl8I<{lysl}vVi7+(=w(0CN-JF}<vU}(TO9$vLs}Z(JHV>F
z9v-ckW`fL1fD(rW2iaW<)+<-vO&?aF4P5F!l0l>r!3*tc!&OF5HS^u2ojFWNMQT8`
zP1B)2<@kuz9QI&2RN8z3?0O$H!bm at MH)YXVt}z$9q$eCOa&UV^1ZbV-M$_R6^{ZU%
zA6}NRo67fvK1cIQM+LuNGECHR-M){Z;zKCJ-mYZxej!|nk{dt`VGxxKj95$s<f%}L
z2IRRP?&o7FX?ujI8t^s)V>5iW#efH*E>{oiJm=~&obnM7V=?s(S3nz at y)LC_UY4zy
zWKhGEE8k?@XCJTZPMbE0b}m$VCT(Tz<ljvk5Bj1$t7#7N8`*-}!!hV!*~YMW*C$aw
z at 6@9=YXT~ks;xx#I?yRHjkh^xzpL@|O+WFObFTj=It9azdO(v=6MOTM7SwfZjJ8{e
zHfw^}Uzk=z-sr7Sv{j=bV<a_r4M4Y3CKGib{P}i<9LRGw$d?=`O#Le;O8f$BUafo;
z{Uma&mQ#*f>^82E#v;f1tJ}|AkSVHwqjK0=t5<pY3MafWXWExK$3b at d8iq+RrLjyq
z+O}-UEh>zn`2BDK)Btkjp31iVmj9GMAdue&d4+$tun at 65;#is$>4A~xwx7zU?r1hV
zAsja%)?xN7OEh|5u-H(y6d>l!C-Sj4WOtmxjiSC?ig});dxhGa&jsYgYcNNMj`&v~
zsc+A at e^Ao8!LC|ggED^Y*9=skbC2VyEMK<5mZb#%>P7w+{`mXbR7(xw6YA#yjK97G
f`0Lg94h3+k$F_;1I5wDi1E8mM8(eeq&V&C4EVA$x
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/theme.yaml b/themes/landau-hacker/theme.yaml
new file mode 100644
index 000000000000..008f010b397e
--- /dev/null
+++ b/themes/landau-hacker/theme.yaml
@@ -0,0 +1,15 @@
+name: "LANDAU Hacker"
+license: "CC0-1.0"
+licenselink: "https://gitflic.ru/project/maquefel/landau-hacker/LICENSE"
+description: "Порт темы Hacker от GitHub Pages с доработками для LANDAU"
+homepage: "https://landau.one"
+tags: ["blog", "dark", "minimal", "technical"]
+features: ["blog", "news", "events"]
+min_version: "0.112.0"
+
+author:
+ name: "RULKC"
+
+original:
+ name: "pages-themes/hacker"
+ repo: "https://github.com/pages-themes/hacker"
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 08/16] template: config: Add landau preliminary config
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (6 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 07/16] themes: add landau-hacker theme rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 09/16] template: config: fix LANDAU acronym expansion and update URLs rockosov
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
Currently make simple:
- no tags or categories
- disable footer copyright
- just a few section: mainpage, about and subscribe
- landau-hacker theme (embedded)
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
hugo.yaml | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 hugo.yaml
diff --git a/hugo.yaml b/hugo.yaml
new file mode 100644
index 000000000000..c150d109e3f4
--- /dev/null
+++ b/hugo.yaml
@@ -0,0 +1,41 @@
+baseurl: "/"
+languageCode: "ru"
+title: "LANDAU Kernel"
+theme: "landau-hacker"
+googleAnalytics: ""
+disqusShortname: ""
+ignoreFiles: ["\\.Rmd$", "\\.Rmarkdown$", "_cache$", "\\.knit\\.md$", "\\.utf8\\.md$"]
+footnotereturnlinkcontents: "↩"
+disableKinds : ["taxonomy", "term"]
+relativeURLs: true
+canonifyURLs: false
+
+permalinks:
+ note: "/note/:year/:month/:day/:slug/"
+ post: "/post/:year/:month/:day/:slug/"
+
+menu:
+ main:
+ - name: Home
+ url: ""
+ weight: 1
+ - name: About
+ url: "index.html"
+ weight: 2
+ - name: Subscribe
+ url: "index.xml"
+
+params:
+ mainSections:
+ - git
+ - doc
+ description: "Linux kernel Advanced for Next-gen Devices & Architectures"
+ # PaperMod doesn't like this
+ # footer: "© [Landau Unlimited](https://blog.landau.org/) 2026 -- {Year}"
+
+markup:
+ highlight:
+ codeFences: false
+ goldmark:
+ renderer:
+ unsafe: true
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 09/16] template: config: fix LANDAU acronym expansion and update URLs
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (7 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 08/16] template: config: Add landau preliminary config rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 10/16] content: convert links to canonical rockosov
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Expand LANDAU acronym to "Linux And Neo-Depositorium Associated Unity"
in site title and description. Also update the footer URL from
blog.landau.org to blog.landau.one to reflect the current project
domain.
Fixes: 94635cd93fb5 ("template: config: Add landau preliminary config")
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
hugo.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hugo.yaml b/hugo.yaml
index c150d109e3f4..407bf689e096 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -1,6 +1,6 @@
baseurl: "/"
languageCode: "ru"
-title: "LANDAU Kernel"
+title: "LANDAU"
theme: "landau-hacker"
googleAnalytics: ""
disqusShortname: ""
@@ -29,9 +29,9 @@ params:
mainSections:
- git
- doc
- description: "Linux kernel Advanced for Next-gen Devices & Architectures"
+ description: "Linux And Neo-Depositorium Associated Unity"
# PaperMod doesn't like this
- # footer: "© [Landau Unlimited](https://blog.landau.org/) 2026 -- {Year}"
+ # footer: "© [Landau Unlimited](https://blog.landau.one/) 2026 -- {Year}"
markup:
highlight:
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 10/16] content: convert links to canonical
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (8 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 09/16] template: config: fix LANDAU acronym expansion and update URLs rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 11/16] content/landau_linux_maintenance: Fix front matter rockosov
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Convert links to canonical as per vanilla hugo.
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
content/_index.md | 2 +-
content/landau-linux/_index.md | 4 ++--
content/landau-linux/maintenance/_index.md | 2 +-
content/open_mic_27_03_2026/open_mic_27_03_2026.md | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/content/_index.md b/content/_index.md
index 5d9702870a5e..5f6905b58abd 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -32,7 +32,7 @@ LANDAU охватывает широкий спектр open-source проект
### 🎙️ Список событий
-* **[Открытый микрофон #001: «Форк ядра. Инженеры для инженеров, или при чем тут LANDAU»](./open_mic_27_03_2026.md)**
+* **[Открытый микрофон #001: «Форк ядра. Инженеры для инженеров, или при чем тут LANDAU»](./open_mic_27_03_2026/)**
* **📅 Дата:** 27 марта 2026 года
* **⏰ Время:** 20:00
* **📍 Формат:** Очно / Online
diff --git a/content/landau-linux/_index.md b/content/landau-linux/_index.md
index 2891de83267a..52de43daff33 100644
--- a/content/landau-linux/_index.md
+++ b/content/landau-linux/_index.md
@@ -19,9 +19,9 @@
| Документ | Описание |
|----------|----------|
-| 📋 **[LANDAU Linux Maintenance](./maintenance.md)** | Официальный процесс maintenance LANDAU Linux |
+| 📋 **[LANDAU Linux Maintenance](./maintenance/)** | Официальный процесс maintenance LANDAU Linux |
---
-[⬅️ Вернуться на главную LANDAU](../index.md)
+[⬅️ Вернуться на главную LANDAU](../)
diff --git a/content/landau-linux/maintenance/_index.md b/content/landau-linux/maintenance/_index.md
index 2b5a000d3f7c..d2498b94d1f2 100644
--- a/content/landau-linux/maintenance/_index.md
+++ b/content/landau-linux/maintenance/_index.md
@@ -426,4 +426,4 @@ TODO
> ✍️ **Поддерживается**: LANDAU Maintainers
> 📅 **Последнее обновление**: 2026
-[⬅️ Вернуться на страницу LANDAU Linux](./index.md)
+[⬅️ Вернуться на страницу LANDAU Linux](../../)
diff --git a/content/open_mic_27_03_2026/open_mic_27_03_2026.md b/content/open_mic_27_03_2026/open_mic_27_03_2026.md
index 74cd4d7fd7ef..de9783556d37 100644
--- a/content/open_mic_27_03_2026/open_mic_27_03_2026.md
+++ b/content/open_mic_27_03_2026/open_mic_27_03_2026.md
@@ -83,4 +83,4 @@
📧 [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com)
💬 [t.me/linux_kernel_O](https://t.me/linux_kernel_O)
-[⬅️ Вернуться на главную страницу LANDAU](./index.md)
+[⬅️ Вернуться на главную страницу LANDAU](../)
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 11/16] content/landau_linux_maintenance: Fix front matter
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (9 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 10/16] content: convert links to canonical rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 12/16] mermaid: Add mermaid workaround rockosov
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
- add opening meta delimeter as required
- s/published/draft/ as `published` is an alias to `publishDate` and
requires correct date and not boolean type
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
content/landau-linux/maintenance/_index.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/content/landau-linux/maintenance/_index.md b/content/landau-linux/maintenance/_index.md
index d2498b94d1f2..bec6c0ba081f 100644
--- a/content/landau-linux/maintenance/_index.md
+++ b/content/landau-linux/maintenance/_index.md
@@ -1,6 +1,7 @@
+---
title: "📋 Манифест сопровождения ядра LANDAU-Linux"
description: "Описание процесса разработки ядра LANDAU-Linux — ветки, релизы, версионирование и сопровождение"
-published: true
+draft: false
---
# 📋 Манифест процесса сопровождения ядра LANDAU-Linux
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 12/16] mermaid: Add mermaid workaround
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (10 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 11/16] content/landau_linux_maintenance: Fix front matter rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 13/16] misc: add .gitignore rockosov
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
For upstream hugo the only possiblity for mermaid rendering is using
external js script.
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
layouts/partials/head-additions.html | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 layouts/partials/head-additions.html
diff --git a/layouts/partials/head-additions.html b/layouts/partials/head-additions.html
new file mode 100644
index 000000000000..0aa1935d77c3
--- /dev/null
+++ b/layouts/partials/head-additions.html
@@ -0,0 +1,26 @@
+<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
+<script>
+ document.addEventListener('DOMContentLoaded', function() {
+ // Look for mermaid code blocks
+ const mermaidBlocks = document.querySelectorAll('pre code.language-mermaid');
+ if (mermaidBlocks.length > 0) {
+ mermaid.initialize({
+ startOnLoad: false,
+ theme: 'default',
+ flowchart: {
+ useMaxWidth: true
+ }
+ });
+
+ mermaidBlocks.forEach((block, index) => {
+ const graphDefinition = block.textContent;
+ const div = document.createElement('div');
+ div.className = 'mermaid';
+ div.innerHTML = graphDefinition;
+ block.parentNode.parentNode.replaceChild(div, block.parentNode);
+ });
+
+ mermaid.init();
+ }
+ });
+</script>
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 13/16] misc: add .gitignore
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (11 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 12/16] mermaid: Add mermaid workaround rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 14/16] config: update LANDAU acronym and branding rockosov
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
From: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..e7e300291a29
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.hugo_build.lock
+public
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 14/16] config: update LANDAU acronym and branding
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (12 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 13/16] misc: add .gitignore rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 15/16] landau-linux: finalize documentation after review call rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 16/16] treewide: update rulkc official mailing address rockosov
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
LANDAU officially stands for "Linux And Neo-Depositorium Associated
Unity". Update the site title and description in both README.md and
_config.yml to reflect the correct acronym and remove outdated "Kernel"
references.
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
README.md | 4 ++--
_config.yml | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 5d94cfe75be4..c456535c8ed2 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-# ⚛️ LANDAU Kernel
+# ⚛️ LANDAU
-**⚡ Linux kernel Advanced for Next-gen Devices & Architectures ⚡**
+**⚡ **Linux And Neo-Depositorium Associated Unity** ⚡**
diff --git a/_config.yml b/_config.yml
index 00aced3b9dcd..08f844fe97ab 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,3 +1,3 @@
-title: LANDAU Kernel
-description: Linux kernel Advanced for Next-gen Devices & Architectures
+title: LANDAU
+description: Linux And Neo-Depositorium Associated Unity
theme: jekyll-theme-hacker
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 15/16] landau-linux: finalize documentation after review call
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (13 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 14/16] config: update LANDAU acronym and branding rockosov
@ 2026-07-17 17:17 ` rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 16/16] treewide: update rulkc official mailing address rockosov
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
- Apply branding unification: replace "LANDAU-Linux" with "LANDAU Linux"
across all content for consistency
- Improve glossary: add definitions for V, P, S, E, MR, RMW, Bundle, EOL
- Enhance branch lifecycle diagram: increase readability with Mermaid
theme and improved layout
- Refactor release process diagram: split into two horizontal blocks for
better visualization
- Add maintainer repositories and 2MR description: include gitGraph
diagram for the double-merge workflow
- Fix formatting: line wrapping, table alignment, and consistent code
block styling
- Rename open_mic_27_03_2026.md to _index.md for Hugo compatibility
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
content/landau-linux/_index.md | 2 +-
content/landau-linux/maintenance/_index.md | 299 +++++++++++-------
.../{open_mic_27_03_2026.md => _index.md} | 0
3 files changed, 181 insertions(+), 120 deletions(-)
rename content/open_mic_27_03_2026/{open_mic_27_03_2026.md => _index.md} (100%)
diff --git a/content/landau-linux/_index.md b/content/landau-linux/_index.md
index 52de43daff33..f178d89cd9ed 100644
--- a/content/landau-linux/_index.md
+++ b/content/landau-linux/_index.md
@@ -4,7 +4,7 @@
## 🎯 О проекте
-Мы видим LANDAU Linux как **upstream-first форк**, улучшающий mainline/stable ветки*:
+Мы видим LANDAU Linux как **upstream-first форк**, улучшающий mainline/stable ветки:
* 🔄 **Регулярное обновление:** Следование за актуальными версиями mainline/stable (раз в 1–2 месяца).
* 📦 **Приём патчей:** Включение полезных наработок, которые по разным причинам не попали в upstream (драйверы, архитектурные доработки).
diff --git a/content/landau-linux/maintenance/_index.md b/content/landau-linux/maintenance/_index.md
index bec6c0ba081f..f0aca915abc5 100644
--- a/content/landau-linux/maintenance/_index.md
+++ b/content/landau-linux/maintenance/_index.md
@@ -1,13 +1,14 @@
---
-title: "📋 Манифест сопровождения ядра LANDAU-Linux"
-description: "Описание процесса разработки ядра LANDAU-Linux — ветки, релизы, версионирование и сопровождение"
+title: "📋 Манифест сопровождения ядра LANDAU Linux"
+description: "Описание процесса разработки ядра LANDAU Linux — ветки, релизы, версионирование и сопровождение"
draft: false
---
-# 📋 Манифест процесса сопровождения ядра LANDAU-Linux
+# 📋 Манифест процесса сопровождения ядра LANDAU Linux
-> **LANDAU-Linux** — форк <u>ядра Linux</u> с собственной схемой версионирования и предсказуемым циклом релизов.
-> Этот документ описывает формальный процесс сопровождения (maintenance) проекта.
+> **LANDAU Linux** — форк <u>ядра Linux</u> с собственной схемой
+> версионирования и предсказуемым циклом релизов. Этот документ описывает
+> формальный процесс сопровождения (maintenance) проекта.
---
@@ -15,30 +16,26 @@ draft: false
### 🎯 Цель
-Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-Linux-релизов с отслеживанием оригинального репозитория ядра Linux.
+Обеспечить стабильный, предсказуемый и документированный процесс выпуска
+LANDAU Linux-релизов с отслеживанием оригинального репозитория ядра Linux.
-### Глоссарий
-V - VERSION - major версия ядра Linux
-P - PATCHLEVEL - middle версия ядра Linux
-S - SUBLEVEL - minor версия ядра Linux
-E - EXTRAVERSION - поле в версии ядра Linux, в которое встраивается версия ядра LANDAU-Linux (ядром Linux обычно используется для -rc релизов (testing фазы))
-MR - Merge Request - запрос на слияние одной GIT-ветки с другой. Обычно оформляется в виде ссылки на GIT-репозиторий и ветку авторизованного ментейнера (верифицированного источника) в сопровождение с формальным описанием содержимого. Информация из последнего может быть использована для формирования текста merge-коммита в GIT.
-RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU переносят подопечный им набор изменений на новую базовую версию ядра.
-Bundle - в общем случае это полный набор изменений репозитория LANDAU-Linux, который отличает его от оригинального репозитория ядра Linux (фактически это набор патч-серий). Есть общий LANDAU-Linux Bundle, а есть Bundle-ы мейнтейнеров в их форках.
-EOL - End-of-Life - завершение этапа поддержки выпущенной версии продукта (релиза).
+## 📖 Глоссарий
-### 📁 Структура GIT-репозитория форка
-
-| Сущность | Назначение |
-|----------|-------------|
-| `landau-next` | GIT-ветка для следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | GIT-ветка релиза LANDAU-Linux на базе ядра Linux с версией V.P |
-
-> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится (_force-push_) на новый релиз ядра Linux.
+| Термин | Полное название | Описание |
+|--------|-----------------|----------|
+| **V** | VERSION | Major версия ядра Linux. Определяет основной номер версии (например, `6` в `6.12.7`). |
+| **P** | PATCHLEVEL | Middle версия ядра Linux. Определяет минорный номер версии (например, `12` в `6.12.7`). |
+| **S** | SUBLEVEL | Minor версия ядра Linux. Определяет номер стабильного обновления (например, `7` в `6.12.7`). |
+| **E** | EXTRAVERSION | Поле в версии ядра Linux, в которое встраивается версия ядра LANDAU Linux. Ядром Linux обычно используется для `-rc` релизов. |
+| **MR** | Merge Request | Запрос на слияние одной Git-ветки с другой. Оформляется в виде ссылки на Git-репозиторий и ветку авторизованного мейнтейнера с формальным описанием. |
+| **RMW** | Rebase & Merge Window | Временной отрезок (2 недели), в рамках которого мейнтейнеры LANDAU переносят свои изменения на новую базовую версию ядра. |
+| **Bundle** | — | Полный набор изменений репозитория LANDAU Linux, отличающий его от оригинального ядра Linux. Есть общий Bundle и Bundle-ы мейнтейнеров. |
+| **EOL** | End-of-Life | Завершение этапа поддержки выпущенной версии продукта. Ветка больше не получает обновлений и архивируется. |
### 🪞 Зеркала оригинальных репозиториев Linux
-На сервере `https://git.rulkc.org` поддерживаются постоянно обновляемые зеркала:
+На сервере **[git.rulkc.org](https://git.rulkc.org)** поддерживаются постоянно
+обновляемые зеркала:
- 🔷 `torvalds/linux` — основная ветка ядра Linux
- 🔷 `stable/linux` — стабильные релизы ядра Linux
@@ -48,7 +45,7 @@ EOL - End-of-Life - завершение этапа поддержки выпу
## 🏷️ 2. Схема версионирования
-### 📐 Формат версии LANDAU-Linux
+### 📐 Формат версии LANDAU Linux
```
VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
@@ -59,8 +56,8 @@ VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
| `VERSION` | `7` | Мажорная версия ядра |
| `PATCHLEVEL` | `0` | Минорная версия ядра |
| `SUBLEVEL` | `12` | Номер стабильного обновления ядра |
-| `l-rcX` | `l-rc1`, `l-rc2` | Сборочный номер отладочного релиза LANDAU-Linux |
-| `lXYZ` | `l0`, `l1` | Сборочный номер стабильного релиза LANDAU-Linux |
+| `l-rcX` | `l-rc1`, `l-rc2` | Сборочный номер отладочного релиза LANDAU Linux |
+| `lXYZ` | `l`, `l1` | Сборочный номер стабильного релиза LANDAU Linux |
### 🏷️ Git-теги
@@ -72,7 +69,7 @@ v7.0.l-rcX
v7.0.lXYZ
```
-Пример: `v7.0.l-rc1`, `v7.0.l0`, `v7.0.l5`
+Пример: `v7.0.l-rc1`, `v7.0.l`, `v7.0.l5`
---
@@ -82,27 +79,69 @@ v7.0.lXYZ
| Ветка | Назначение |
|-------|-------------|
-| `landau-next` | GIT-ветка следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | Текущая GIT-ветка для релиза LANDAU-Linux на базе <u>стабильного</u> ядра Linux с версией V.P |
+| `landau-next` | GIT-ветка следующего релиза LANDAU Linux, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | Текущая GIT-ветка для релиза LANDAU Linux на базе <u>стабильного</u> ядра Linux с версией V.P |
+
+> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней
+> разрешаются конфликты и собираются все MR вместе для создания ветки
+> `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится
+> (_force-push_) на новый релиз ядра Linux.
### ⏳ Жизненный цикл GIT-веток
```mermaid
-flowchart LR
- subgraph one["Релиз LANDAU-Linux"]
- E[<b>landau-V.P.y→<br>landau-next</b>]-->F
- F[Поддержка<br><b>landau-V.P.y</b>]-->G{Статус <b>linux-V.P.y<b><br><b>EOL</b>?}
- G-->|Нет|F
- G-->|Да|H([Архивация<br><b>landau-V.P.y</b>])
- end
+%%{init: {
+ 'theme': 'base',
+ 'themeVariables': {
+ 'background': '#002b36',
+ 'primaryColor': '#073642',
+ 'primaryTextColor': '#839496',
+ 'primaryBorderColor': '#586e75',
+ 'lineColor': '#b58900',
+ 'secondaryColor': '#002b36',
+ 'tertiaryColor': '#073642',
+ 'edgeLabelBackground': '#002b36',
+ 'nodeBorder': '#586e75',
+ 'nodeTextColor': '#93a1a1',
+ 'clusterBkg': '#002b36',
+ 'clusterBorder': '#586e75',
+ 'fontSize': '24px',
+ 'fontFamily': 'monospace'
+ },
+ 'flowchart': {
+ 'nodeSpacing': 80,
+ 'rankSpacing': 80,
+ 'curve': 'basis',
+ 'padding': 20
+ }
+}}%%
+flowchart TB
subgraph two["Подготовка релиза (этап RC)"]
- A([<b>landau-next→<br>linux-V.P.y</b>])-->B
- B[Стабилизация<br><b>landau-next</b>]-->C{Код <b>landau-next</b><br>стабилен?}
- C-->|Нет|B
- C-->|Да|D(P = P + 1</b>)
- C-->|Да|E
- D-.->|Ожидание<br>релиза P|A
+ direction LR
+ A["<b>landau-next</b> → <b>linux-V.P.y</b>"]
+ B["Стабилизация <b>landau-next</b>"]
+ C{"Код <b>landau-next</b> стабилен?"}
+ D["P = P + 1"]
+ A --> B
+ B --> C
+ C -->|Нет| B
+ C -->|Да| D
+ D -.->|Ожидание релиза P| A
+ end
+
+ subgraph one["Релиз LANDAU Linux"]
+ direction LR
+ E["<b>landau-V.P.y</b> → <b>landau-next</b>"]
+ F["Поддержка <b>landau-V.P.y</b>"]
+ G{"Статус <b>linux-V.P.y</b> <b>EOL</b>?"}
+ H["Архивация <b>landau-V.P.y</b>"]
+ E --> F
+ F --> G
+ G -->|Нет| F
+ G -->|Да| H
end
+
+ C -->|"<b>landau-next</b> стабилен"| one
```
| Стадия | Действие |
@@ -113,7 +152,8 @@ flowchart LR
| 🔧 Поддержка | Сбор исправлений ошибок в GIT-ветке `landau-V.P.y` |
| 🐢 Окончание поддержки | Исходная версия достигает EOL |
-> В базовом представлении _поддержка_ подразумевает периодическую синхронизацию `landau-V.P.y` с исходной GIT-веткой `linux-V.P.y`.
+> В базовом представлении _поддержка_ подразумевает периодическую синхронизацию
+> `landau-V.P.y` с исходной GIT-веткой `linux-V.P.y`.
---
@@ -130,57 +170,89 @@ flowchart LR
| RC-тестирование | 7-8 недель | Тестирование кандидатов на релиз |
| Финальный релиз | — | Публикация стабильного ядра |
-> ℹ️ **Важно**: Поскольку релизы LANDAU-Linux базируются на стабильных релизах ядра Linux, то текущий цикл разработки всегда отстаёт от последней версии ядра Linux на **1 PATCHLEVEL**.
+> ℹ️ **Важно**: Поскольку релизы LANDAU Linux базируются на стабильных релизах
+> ядра Linux, то текущий цикл разработки всегда отстаёт от последней версии
+> ядра Linux на **1 PATCHLEVEL**.
---
-## 🔄 5. Процесс выпуска LANDAU-Linux
+## 🔄 5. Процесс выпуска LANDAU Linux
### 📊 Полный цикл релиза
```mermaid
+%%{init: {
+ 'theme': 'base',
+ 'themeVariables': {
+ 'background': '#002b36',
+ 'primaryColor': '#073642',
+ 'primaryTextColor': '#839496',
+ 'primaryBorderColor': '#586e75',
+ 'lineColor': '#b58900',
+ 'secondaryColor': '#002b36',
+ 'tertiaryColor': '#073642',
+ 'edgeLabelBackground': '#002b36',
+ 'nodeBorder': '#586e75',
+ 'nodeTextColor': '#93a1a1',
+ 'fontSize': '20px',
+ 'fontFamily': 'monospace'
+ },
+ 'flowchart': {
+ 'nodeSpacing': 30,
+ 'rankSpacing': 30,
+ 'curve': 'basis',
+ 'padding': 10
+ }
+}}%%
flowchart TD
- A["📦 Выход нового релиза ядра Linux"] --> B
- B(["🔓 1. RMW LANDAU-Linux<br>(~2 недели)"]) --> C
- C["🔧 Перенос и слияние наработок LANDAU-Linux"] --> D
- D(["🔓 2. RC LANDAU-Linux<br>(~1 недели на RCx)"]) --> E
- E["🔧 Исправление ошибок<br>(выпуск RC)"] --> F
- F(["✅ 3. Релиз LANDAU-Linux"]) --> G
- G["🔧 Публикация списка<br>изменений LANDAU-Linux"] --> H
- H(["🔓 4. Поддержка LANDAU-Linux"]) --> I
- I["🔧 Исправление ошибок и<br>синхронизация SUBLEVEL"] --> J
- J(["🐢 5. EOL LANDAU-Linux"])
+ subgraph Block1[" "]
+ direction LR
+ A["📦 Новый релиз ядра Linux"] --> B(["🔓 1. RMW LANDAU Linux<br>(~2 нед.)"])
+ B --> C["🔧 Перенос и слияние наработок LANDAU"]
+ C --> D(["🔓 2. RC LANDAU Linux<br>(~1 нед. на RCx)"])
+ D --> E["🔧 Исправление ошибок<br>(выпуск RC)"]
+ E --> F(["✅ 3. Релиз LANDAU Linux"])
+ end
+
+ subgraph Block2[" "]
+ direction LR
+ G["🔧 Публикация списка<br>изменений LANDAU Linux"] --> H(["🔓 4. Поддержка LANDAU Linux"])
+ H --> I["🔧 Исправление ошибок и<br>синхронизация SUBLEVEL"]
+ I --> J(["🐢 5. EOL LANDAU Linux"])
+ end
+
+ Block1 --> Block2
```
-### 5.1 🆕 Этап RMW LANDAU-Linux
+### 5.1 🆕 Этап RMW LANDAU Linux
| Шаг | Действие |
|-----|----------|
| 1 | Создать GIT-ветку `landau-next` от первого релиза стабильного ядра Linux |
-| 2 | Объявить сбор изменений LANDAU-Linux от нижестоящих ментейнеров |
-| 3 | Применить изменения LANDAU-Linux в `landau-next` |
+| 2 | Объявить сбор изменений LANDAU Linux от нижестоящих ментейнеров |
+| 3 | Применить изменения LANDAU Linux в `landau-next` |
| 4 | Запросить повторную публикуцию изменений в случае сложных конфликтов |
| 5 | Провести базовое сборочное тестирование результирующей ветки `landau-next` |
-| 6 | Обновить `EXTRAVERSION` на `l-rc1` и создать коммит "LANDAU-Linux V.P.l-rc1" |
+| 6 | Обновить `EXTRAVERSION` на `l-rc1` и создать коммит "LANDAU Linux V.P.l-rc1" |
| 7 | Отметить коммит аннотированным тегом `vV.P.l-rc1` |
-> ℹ️ Переменная `EXTRAVERSION` в стабильных релизах ядра Linux остаётся пустым, потому может быть использована для сохранения версий LANDAU-Linux. При этом оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` в дальнейшем сохраняются для индикации версии исходного ядра Linux.
+> ℹ️ Переменная `EXTRAVERSION` в стабильных релизах ядра Linux остаётся пустым, потому может быть использована для сохранения версий LANDAU Linux. При этом оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` в дальнейшем сохраняются для индикации версии исходного ядра Linux.
| Параметр | Значение |
|----------|----------|
| ⏱️ Длительность | **~2 недели** |
-| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктв |
+| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктов |
| 🏷️ Релизы | `l-rc1` |
| 🔧 Исправления | Незначительные проблемы разрешаются в merge-коммитах. Значительные - через повторный запрос изменения от ментейнера |
-### 5.2 🧪 Этап RC LANDAU-Linux
+### 5.2 🧪 Этап RC LANDAU Linux
| Шаг | Действие |
|-----|----------|
-| 1 | Получить корректирующие изменений LANDAU-Linux от нижестоящих ментейнеров |
-| 2 | Применить корректирующие изменения LANDAU-Linux в `landau-next` |
+| 1 | Получить корректирующие изменений LANDAU Linux от нижестоящих ментейнеров |
+| 2 | Применить корректирующие изменения LANDAU Linux в `landau-next` |
| 3 | Провести базовое сборочное тестирование результирующей ветки `landau-next` |
-| 4 | Cоздать коммит "LANDAU-Linux V.P.l-rcX" для инкрементированной в `EXTRAVERSION` RC-версии |
+| 4 | Cоздать коммит "LANDAU Linux V.P.l-rcX" для инкрементированной в `EXTRAVERSION` RC-версии |
| 5 | Отметить коммит аннотированным тегом `vV.P.l-rcX` |
| 6 | Перейти к 1. в случае выявления ошибок |
@@ -193,14 +265,14 @@ flowchart TD
> ℹ️ Стабилизация GIT-ветки `landau-next` (отсуствие выявленных ошибок в очреденом RC-цикле) символизирует окончание этапа RC и выход на релиз.
-### 5.3 ✅ Релиз LANDAU-Linux
+### 5.3 ✅ Релиз LANDAU Linux
| Шаг | Действие |
|-----|----------|
| 1 | Убедиться в отсуствии существенных проблем на последнем этапе RC |
-| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU-Linux V.P.l" |
+| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU Linux V.P.l" |
| 3 | Отметить коммит аннотированным тегом `vV.P.l` |
-| 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU-Linux |
+| 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU Linux |
| Параметр | Значение |
|----------|----------|
@@ -209,27 +281,27 @@ flowchart TD
| 🏷️ Релизы | `l` |
| 🔧 Исправления | Отсуствуют в рамках последней фазы RC |
-### 5.4 🔄 Поддержка стабильной и LTS-версий LANDAU-Linux
+### 5.4 🔄 Поддержка стабильной и LTS-версий LANDAU Linux
| Шаг | Действие | Пример |
|-----|----------|--------|
| 1 | Определить последний `SUBLEVEL` в исходной GIT-ветки стабильного ядра Linux | `v7.0.1` |
| 2 | Применить изменения из стабильной GIT-ветки ядра Linux в `landau-V.P.y` | `git merge v7.0.1` |
-| 3 | Получить корректирующие изменений LANDAU-Linux от нижестоящих ментейнеров | - |
-| 4 | Применить корректирующие изменения LANDAU-Linux в `landau-V.P.y` при наличии | - |
-| 5 | Инкрементировать `EXTRAVERSION` на единицу и создать коммит "LANDAU-Linux V.P.Y.lX" | `l` → `l1` |
+| 3 | Получить корректирующие изменений LANDAU Linux от нижестоящих ментейнеров | - |
+| 4 | Применить корректирующие изменения LANDAU Linux в `landau-V.P.y` при наличии | - |
+| 5 | Инкрементировать `EXTRAVERSION` на единицу и создать коммит "LANDAU Linux V.P.Y.lX" | `l` → `l1` |
| 6 | Отметить коммит аннотированным тегом `vV.P.Y.lX` | `v7.0.1.l1` |
| Параметр | Значение |
|----------|----------|
| ⏱️ Длительность | До получения статуса EOL исходной версии ядра Linux |
-| 🎯 Фокус | Исправление серьезных ошибок, выявленных в стабильном релизе LANDAU-Linux |
+| 🎯 Фокус | Исправление серьезных ошибок, выявленных в стабильном релизе LANDAU Linux |
| 🏷️ Релизы | `l1`, `l2`, `l2`, ... |
| 🔧 Исправления | Применяются по запросу нижестоящих ментейнеров в рамках корректирующих релизов |
-Мейнтейнеры LANDAU-Linux приняли решение **нативно поддерживать стабильные и LTS-версии** ядра Linux до получения статуса EOL. Однако гарантировано корректирующие изменения LANDAU-Linux портируются в LANDAU-Linux на основе последней LTS-версии ядра Linux. Портирование изменений в более ранние версии возможно при наличии ресурсов.
+Мейнтейнеры LANDAU Linux приняли решение **нативно поддерживать стабильные и LTS-версии** ядра Linux до получения статуса EOL. Однако гарантировано корректирующие изменения LANDAU Linux портируются в LANDAU Linux на основе последней LTS-версии ядра Linux. Портирование изменений в более ранние версии возможно при наличии ресурсов.
-⚠️ Особенности интеграции изменений в стабильную и LTS версии LANDAU-Linux:
+⚠️ Особенности интеграции изменений в стабильную и LTS версии LANDAU Linux:
| ✅ Разрешено | ❌ Запрещено |
|--------------|--------------|
@@ -240,21 +312,21 @@ flowchart TD
> 📌 **Принцип**: Поддерживается тот Changelog, который был на момент отвода LTS основного ядра.
-### 5.5 🔄 Завершение поддержки релиза LANDAU-Linux (EOL)
+### 5.5 🔄 Завершение поддержки релиза LANDAU Linux (EOL)
| Шаг | Действие |
|-----|----------|
| 1 | Получение статуса EOL исходной версии стабильного ядра Linux |
-| 2 | Объявление о завершении поддержки LANDAU-Linux в GIT-ветке `landau-V.P.y` |
+| 2 | Объявление о завершении поддержки LANDAU Linux в GIT-ветке `landau-V.P.y` |
| Параметр | Значение |
|----------|----------|
-| ⏱️ Длительность | Минимум несколько корректирующих релизов стабильной версии LANDAU-Linux до регистрации EOL |
+| ⏱️ Длительность | Минимум несколько корректирующих релизов стабильной версии LANDAU Linux до регистрации EOL |
| 🎯 Фокус | Завершение поддержки релиза |
| 🏷️ Релизы | `lZ` |
| 🔧 Исправления | Не применяются |
-Поддержка **стабильной и LTS версий** LANDAU-Linux завершается либо вместе с получением статуса EOL исходной версии ядра Linux, либо после выпуска релиза LANDAU-Linux, основанного на последней LTS-версии ядра Linux.
+Поддержка **стабильной и LTS версий** LANDAU Linux завершается либо вместе с получением статуса EOL исходной версии ядра Linux, либо после выпуска релиза LANDAU Linux, основанного на последней LTS-версии ядра Linux.
---
@@ -264,20 +336,26 @@ flowchart TD
|---------|------------------|
| 👁️ Мониторинг исходного репозитория | Отслеживание новых релизов и RC-циклов |
| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений ядра |
-| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vX.Y.lZ` |
+| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vV.P.lZ` |
| 🧪 Координация RC | Организация тестирования кандидатов на релиз |
| 🔒 Безопасность | Мониторинг и применение исправлений безопасности |
| 📝 Документирование | Ведение changelog для каждого LANDAU-релиза |
-### Личные репозитории ментейнеров
+### 🏗️ Личные репозитории ментейнеров
+
+В личных репозиториях мейнтейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений.
+
+В целом, способ организации персональных репозиториев мейнтейнеры могут выбирать самостоятельно. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR.
-В личных репозиториях ментейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений. В целом, способ организации персональных репозиториев ментейнеры могут выбирать самостоятельное. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR. Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному ментейнеру, должна сохранять историю предыдущих изменений LANDAU-Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU-Linux. Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала ментейнеры sub-LANDAU-Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW:
+Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному мейнтейнеру, должна сохранять историю предыдущих изменений LANDAU Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU Linux.
+
+Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала мейнтейнеры sub-LANDAU Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW.
```mermaid
---
config:
gitGraph:
- parallelCommits: true
+ parallelCommits: false
mainBranchName: 'linux-V.P.y'
---
gitGraph
@@ -290,7 +368,6 @@ gitGraph
checkout baikal-next
commit
commit
- commit
checkout linux-V.P.y
commit
commit
@@ -304,10 +381,10 @@ gitGraph
checkout landau-next
merge amlogic-next
merge baikal-next
- commit id: "LANDAU-Linux V.P.l-rc1" tag: "vV.P.l-rc1"
+ commit id: "LANDAU Linux V.P.l-rc1" tag: "vV.P.l-rc1"
```
-Таким образом, основная нагрузка по исправлению конфликтов ложится на нижестоящих ментейнеров. Главному ментейнуру остаётся лишь собрать все MR в `linux-next`. Если и в этом случае возникают сложные конфликты, то главный ментейнер вправе попросить выполнить повторный цикл **двойного слияния**, чтобы кросс sub-LANDAU-Linux конфликты были разешены на стороне нижестоящих ментейнеров.
+Таким образом, основная нагрузка по исправлению конфликтов ложится на нижестоящих ментейнеров. Главному ментейнуру остаётся лишь собрать все MR в `linux-next`. Если и в этом случае возникают сложные конфликты, то главный ментейнер вправе попросить выполнить повторный цикл **двойного слияния**, чтобы кросс sub-LANDAU Linux конфликты были разешены на стороне нижестоящих ментейнеров.
К тому же опционально ментейнеры могут выполнять поддержку GIT-веток с патч-сетами для последующей отправки изменений в оригинальный репозиторий ядра Linux. До момента интеграции патч-сеты могут "поглощать" исправления и стилистические изменения в процессе перебазирования на новую версию ядра Linux. Это упрощает сопровождение таких GIT-веток, минимизируя лог изменений, который к тому же является лишним при интеграции в ядро Linux.
@@ -317,7 +394,7 @@ gitGraph
### Исходные данные
-Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит сомволизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`.
+Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит символизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`.
### 📍 Пошаговый пример
@@ -338,7 +415,7 @@ gitGraph
#### 🔄 Детальное описание процесса
1. **Выход нового стабильного релиза ядра Linux** (например, `v7.0` по результатам 7 недель стабилизации)
-2. **Открытие RMW LANDAU-Linux** — берём 2 недели на свой релиз LANDAU-Linux:
+2. **Открытие RMW LANDAU Linux** — берём 2 недели на свой релиз LANDAU Linux:
- Затаскиваем патч-серии (MR) в ветку `landau-next`, на основе `v7.0`
- Там же происходит решение всех конфликтов
- Формируются первые общие сборки ядра
@@ -355,36 +432,18 @@ gitGraph
7. **Интеграция новых изменений SUBLEVEL из исходной стабильной версии ядра Linux**:
- Если в исходном репозитории меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
- Повышаем свою версию: `v7.0.1.l1`
- - То есть повышается версия LANDAU-Linux, а SUBLEVEL получает новое значение согласно интегрированным изменениям
+ - То есть повышается версия LANDAU Linux, а SUBLEVEL получает новое значение согласно интегрированным изменениям
8. **Развитие стабильной версии**:
- - Стабильная версия LANDAU-Linux `v7.0` ведётся в ветке `landau-7.0.y`
+ - Стабильная версия LANDAU Linux `v7.0` ведётся в ветке `landau-7.0.y`
9. **Окончание поддержки релиза**:
- - Поддержка релиза ветки LANDAU-Linux заканчивается, когда версия основного ядра больше не имеет статус стабильной на kernel.org (например, `7.0` достигла статуса EOL)
+ - Поддержка релиза ветки LANDAU Linux заканчивается, когда версия основного ядра больше не имеет статус стабильной на kernel.org (например, `7.0` достигла статуса EOL)
10. **LTS-поддержка**:
- Если основное ядро уходит в LTS, LANDAU поддерживает LTS до конца
- - Приносятся только фиксы LANDAU-Linux (без новых фич) и новые SUBLEVEL
+ - Приносятся только фиксы LANDAU Linux (без новых фич) и новые SUBLEVEL
11. **Гарантии поддержки**:
- - LANDAU-Linux Owners гарантированно поддерживают **одно последнее LTS ядро**
+ - LANDAU Linux Owners гарантированно поддерживают **одно последнее LTS ядро**
- Про поддержку более старых LTS ядер думаем при наличии ресурсов
-#### 📊 Визуализация цикла
-
-```mermaid
-flowchart TD
- A[Выход нового<br>стабильного релиза ядра Linux<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
- B --> C[Приём MR в landau-next<br>на основе v7.0]
- C --> D[Выпуск RC1, RC2, RC3...<br>до 7 недель]
- D --> E{Тестирование пройдено?}
- E -->|Нет| D
- E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод GIT-ветки<br><b>landau-7.0.y</b>]
- F --> G[Ожидание нового<br>стабильного релиза ядра Linux]
- G --> H[Выходит стабильный релиз<br>с новым SUBLEVEL,<br>например, 7.0.1]
- H --> I[Интеграция в landau-7.0.y:<br>v7.0.1.l1]
- I --> J{Исходная версия EOL?}
- J -->|Нет| H
- J -->|Да| K[Архивация GIT-ветки<br>landau-7.0.y]
-```
-
#### 🏷️ Пример полной цепочки тегов
Для ядра `7.0.x` в LANDAU:
@@ -417,14 +476,16 @@ TODO
| Ресурс | URL |
|--------|-----|
-| 📦 Репозитории LANDAU | `https://git.rulkc.org/pub/scm/landau` |
-| 🪞 Зеркала репозиториев Linux| `https://git.rulkc.org` |
-| 🔗 Оригинальные репозитории Linux | `https://kernel.org` |
+| 📦 Репозитории LANDAU Linux | [https://git.rulkc.org/pub/scm/landau](https://git.rulkc.org/pub/scm/landau) |
+| 🪞 Зеркала репозиториев Linux | [https://git.rulkc.org](https://git.rulkc.org) |
+| 🔗 Оригинальные репозитории Linux | [https://kernel.org](https://kernel.org) |
---
-> 📌 **Актуальная версия документа**: 1.0
-> ✍️ **Поддерживается**: LANDAU Maintainers
-> 📅 **Последнее обновление**: 2026
+<div style="display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; margin-top: 2rem; border-top: 1px solid #30363d; font-size: 14px; flex-wrap: wrap; gap: 10px;">
+ <span>📌 <strong>Актуальная версия:</strong> 1.0</span>
+ <span>✍️ <strong>Поддерживается:</strong> LANDAU Maintainers</span>
+ <span>📅 <strong>Обновлено:</strong> 2026-07</span>
+</div>
-[⬅️ Вернуться на страницу LANDAU Linux](../../)
+[⬅️ Вернуться на страницу LANDAU Linux](../)
diff --git a/content/open_mic_27_03_2026/open_mic_27_03_2026.md b/content/open_mic_27_03_2026/_index.md
similarity index 100%
rename from content/open_mic_27_03_2026/open_mic_27_03_2026.md
rename to content/open_mic_27_03_2026/_index.md
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [rulkc] [PATCH v2 16/16] treewide: update rulkc official mailing address
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
` (14 preceding siblings ...)
2026-07-17 17:17 ` [rulkc] [PATCH v2 15/16] landau-linux: finalize documentation after review call rockosov
@ 2026-07-17 17:17 ` rockosov
15 siblings, 0 replies; 17+ messages in thread
From: rockosov @ 2026-07-17 17:17 UTC (permalink / raw)
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
content/_index.md | 4 ++--
content/open_mic_27_03_2026/_index.md | 2 +-
themes/landau-hacker/archetypes/events.md | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/content/_index.md b/content/_index.md
index 5f6905b58abd..48405c158f32 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -53,7 +53,7 @@ LANDAU охватывает широкий спектр open-source проект
| Канал | Ссылка |
|-------|--------|
| 🏠 **Основной сайт** | [rulkc.org](https://rulkc.org) |
-| 📧 **Mail** | [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com) |
+| 📧 **Mail** | [rulkc at rulkc.org](mailto:rulck at ruclk.org) |
| 💬 **Telegram-канал** | [https://t.me/linux_kernel_O](https://t.me/linux_kernel_O) |
| 🐙 **GitHub** | [github.com/rulkc](https://github.com/rulkc) |
| 📧 **Mailing List** | [rulkc at linuxtesting.org](mailto:rulkc at linuxtesting.org) |
@@ -73,7 +73,7 @@ LANDAU развивается под эгидой [**Russian Linux Kernel Commun
| Канал | Ссылка |
|-------|--------|
| 🏠 **Основной сайт** | [rulkc.org](https://rulkc.org) |
-| 📧 **Mail** | [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com) |
+| 📧 **Mail** | [rulkc at rulkc.org](mailto:rulkc at rulkc.org) |
| 💬 **Telegram-канал** | [t.me/linux_kernel_O](https://t.me/linux_kernel_O) |
| 🐙 **GitHub** | [github.com/rulkc](https://github.com/rulkc) |
diff --git a/content/open_mic_27_03_2026/_index.md b/content/open_mic_27_03_2026/_index.md
index de9783556d37..15117d80e28d 100644
--- a/content/open_mic_27_03_2026/_index.md
+++ b/content/open_mic_27_03_2026/_index.md
@@ -80,7 +80,7 @@
---
**Контактное лицо:** RULKC
-📧 [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com)
+📧 [rulkc at rulkc.org](mailto:rulkc at rulkc.org)
💬 [t.me/linux_kernel_O](https://t.me/linux_kernel_O)
[⬅️ Вернуться на главную страницу LANDAU](../)
diff --git a/themes/landau-hacker/archetypes/events.md b/themes/landau-hacker/archetypes/events.md
index 381be1ccae03..667497e51782 100644
--- a/themes/landau-hacker/archetypes/events.md
+++ b/themes/landau-hacker/archetypes/events.md
@@ -32,7 +32,7 @@ draft: true
---
**Контактное лицо:** RULKC
-📧 [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com)
+📧 [rulkc at rulkc.org](mailto:rulkc at rulkc.org)
💬 [t.me/linux_kernel_O](https://t.me/linux_kernel_O)
[⬅️ Вернуться на главную страницу LANDAU](/)
--
2.48.1
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-07-17 17:17 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-17 17:16 [rulkc] [PATCH v2 00/16] Linux and Neo-Depositorium Associated Unity rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 01/16] scripts: Add hunspell checker rockosov
2026-07-17 17:16 ` [rulkc] [PATCH v2 02/16] hugo: renamed index.md to _index.md rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 03/16] Re-design main page from LANDAU Kernel to LANDAU umbrella project rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 04/16] Add LANDAU Linux project overview and maintenance documentation rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 05/16] landau-linux: maintenance: major overhaul of the maintenance doc rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 06/16] content: Move content to subdirectory rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 07/16] themes: add landau-hacker theme rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 08/16] template: config: Add landau preliminary config rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 09/16] template: config: fix LANDAU acronym expansion and update URLs rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 10/16] content: convert links to canonical rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 11/16] content/landau_linux_maintenance: Fix front matter rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 12/16] mermaid: Add mermaid workaround rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 13/16] misc: add .gitignore rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 14/16] config: update LANDAU acronym and branding rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 15/16] landau-linux: finalize documentation after review call rockosov
2026-07-17 17:17 ` [rulkc] [PATCH v2 16/16] treewide: update rulkc official mailing address rockosov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®