7a4e9764b1
- Полностью переписан swap-модуль в режиме exclusive ownership\n- Добавлены verify/checks, статус фактического swap-state и drift\n- Интегрирован ensure-swap в daemon и systemd ExecStartPre\n- Усилен lock API (таймауты) и применение в traffic/firewall/swap\n- Усилен parser firewall (JSON-first + устойчивый text fallback)\n- Обновлены config validation, runtime tools и default priority\n- Синхронизированы docs и build/package hygiene\n- Удалены member Cargo.lock в пользу корневого lockfile
AWG2 Harness builder
Основной скрипт: build.sh.
Целевой crate: traffic_core.
Unit: awg2-harness.service.
Пример конфига: config.example.toml.
Supported host
- Debian/Ubuntu (apt-based)
- amd64/x86_64
Purpose
Скрипт используется на build-machine для проверки, сборки и упаковки AWG2 Harness.
Default mode
./tools/build.sh
Дефолтный запуск не изменяет систему. Он:
- проверяет prereqs;
- запускает
fmt/clippy/test/buildв locked-режиме; - печатает
file,ldd,sha256для собранного бинаря.
Flags
--prepare-build-env— установить недостающие build-пакеты;--prepare-runtime-env— установить недостающие runtime-пакеты;--bootstrap-rust— установить rustup и pinned toolchain;--build— запустить build gate явно;--package— собрать Debian-пакет вdist/;--dist-dir <path>— директория для release artifacts;--version <version>— переопределить версию пакета;--install— установить бинарь + systemd unit (без enable/start);--enable—systemctl enable --now awg2-harness.service;--yes— подтверждение системных изменений (apt/rustup);--skip-fmt— пропуститьcargo fmt --check;--help— справка.
Build machine flow
./tools/build.sh --prepare-build-env --bootstrap-rust --yes
./tools/build.sh --build
./tools/build.sh --package
Production host flow
В нормальном production deployment не нужно клонировать репозиторий на целевой хост. Ставится сгенерированный пакет:
apt install ./awg2-harness_*_amd64.deb
Manual source-tree install
--install и --enable оставлены для staging/debug из checked-out source tree.
Это не рекомендуемый production path.
What the script intentionally does not do
- не устанавливает Docker автоматически;
- не генерирует production config из example;
- не включает сервис без явного
--enable; - не управляет установкой AmneziaWG.