No description
  • Shell 74.2%
  • Python 25.8%
Find a file
AlexRus1234 d75162396c vector-loc: результаты прогона и клиентской проверки; Qkk-предупреждение сверено с эталоном
- сборка на раннере 57m43s, весь прогон 59 мин, пакет 0.59.0-1 в индексе;
- бинарник 161 216 672 байт против 122 971 760 у эталона 0.57.0 (+31 %):
  цена thin LTO + codegen-units=16, разделить с разницей версий нечем;
- состав сошёлся с эталоном по членам (31/31), отличия — только -loc;
- клиентская проверка: негативные контроли подписи и конфликта, установка из
  живого репо, хуки sysusers/tmpfiles, реальный systemd (enable/active/restart),
  backup -> .pacsave;
- packaging-notes: tmpfiles.d, меняющий владельца каталога, даёт в pacman -Qkk
  UID/GID mismatch — так же у эталона, сверять с ним до вывода «дефект».
2026-10-15 16:35:29 +03:00
.forgejo/workflows vector-loc: пайплайн, раскладка и юниты по пакету Arch vector, доки; memory-safe сборка и обход 429 прокси Норы 2026-10-15 15:22:52 +03:00
ci vector-loc: пайплайн, раскладка и юниты по пакету Arch vector, доки; memory-safe сборка и обход 429 прокси Норы 2026-10-15 15:22:52 +03:00
docs vector-loc: результаты прогона и клиентской проверки; Qkk-предупреждение сверено с эталоном 2026-10-15 16:35:29 +03:00

Документация по сборке pacman-пакетов (pacman-pkg-build)

Репозиторий собирает pacman-пакеты из зазеркаленных исходников и публикует их в личный pacman-репозиторий Хражевника (pacman-alexrus1234): артефакт — .pkg.tar.zst вместе с индексом репо. В соседних репозиториях артефакты другие: bin-build кладёт статические бинарники в generic-реестр Forgejo, container-build — OCI-образы в Nora.

Принцип репозитория: один пайплайн — один артефакт. Каждый пакет собирается своим workflow со своим тегом зеркала и своим pkgrel.

Как запускать

Запуски — только вручную (workflow_dispatch) из UI Forgejo, по пушу ничего не стартует. Пакеты связаны зависимостями, поэтому порядок важен:

raft-loc  →  cowsql-loc  →  lxc-loc  →  incus-loc (+ incus-tools-loc)

Список пайплайнов, их артефакты и входы (target_tag, pkgrel, force_build) — pipelines.md; общая схема всех workflow (контейнер сборки, приёмка, публикация) — pipelines-common.md.

Настройка инфраструктуры (разово, до первого запуска)

  1. Личный репо в Хражевнике — админка http://172.20.6.9:10003/ui: name pacman-alexrus1234, ecosystem pacman. Запомнить id репо.
  2. Scoped-токен repo:<id>:write.
  3. Секреты репозитория Forgejo Build/pacman-pkg-build (Settings → Actions → Secrets): KHRZ_REPO_ID — id репо, KHRZ_TOKEN — токен.

Подробности (админка, POST /api/v1/users/{id}/api-tokens) — setup-infra.md.

Настройка машины-клиента (Arch)

Ключ репозитория (подпись индекса), разово:

sudo curl -fsSL https://khrazhevnik.panelka.yadr01.internal/repo/pacman-alexrus1234/key.asc -o /tmp/khrazhevnik.asc
sudo pacman-key --add /tmp/khrazhevnik.asc
sudo pacman-key --lsign-key "$(gpg --show-keys --with-colons /tmp/khrazhevnik.asc | awk -F: '/^fpr:/{print $10; exit}')"

Вписать в /etc/pacman.conf:

[pacman-alexrus1234]
SigLevel = Optional DatabaseRequired
Server = https://khrazhevnik.panelka.yadr01.internal/repo/pacman-alexrus1234

Установка и первый запуск (пример — incus):

sudo pacman -S incus-loc incus-tools-loc            # зависимости -loc тянет pacman
sudo systemctl enable --now incus-loc.socket incus-user-loc.socket
sudo usermod -aG incus-loc-admin "$USER"            # доступ к сокету демона
incus-loc admin init                                # первичная настройка

Правила установки (только из репо, без --force, один пакет на upstream-имя) и обоснование SigLevel = Optional DatabaseRequired — install.md; что вписывать и включать для конкретного пакета — install-<пакет>.md (для incus — install-incus-loc.md). Имена команд, юнитов и путей — по naming.md.

Документация

  • pipelines.md — каталог пайплайнов: таблица, порядок запуска, как добавить новый пакет;
  • pipelines-common.md — общая схема всех workflow этого репозитория;
  • naming.md — соглашение об именах -loc;
  • packaging-notes.md — грабли упаковки и правила приёмки;
  • setup-infra.md — разовая настройка репо, токена, секретов;
  • install.md — установка из репо: правила, обоснование SigLevel, чеклист для install-<пакет>.md;
  • install-incus-loc.md — установка и первый запуск incus-loc;
  • build-<пакет>.md — по одному документу на пайплайн: шаги, входы, проверки, расхождения с официальным пакетом.