chore: удалить временный fix29.txt из репозитория
This commit is contained in:
@@ -1,109 +0,0 @@
|
||||
Изучил архив. Мой вывод: старый `Amnezia limits (old bash)/` можно убирать из проекта, но вместе с ним нужно зачистить документацию и закрыть один процессный пробел: rollback больше не должен ссылаться на `amnezia-tc.service`.
|
||||
|
||||
По текущему дереву Rust-код уже не зависит от старой bash-папки. `traffic_core` сам делает discovery контейнера/interface/peers, строит egress + IFB ingress `tc` topology, проверяет drift, восстанавливает state, ведёт status. Отдельно есть nftables host firewall, anti-torrent guard, swap reconciler и reboot scheduler. Старая папка сейчас является только историческим reference.
|
||||
|
||||
Главные места, которые конфликтуют с твоей новой моделью:
|
||||
|
||||
`tools/build.sh` сейчас принимает `debian|ubuntu`. Это надо заменить на строгий `Debian 13 amd64`. Иначе у тебя документация будет говорить “только Debian 13”, а build-helper фактически разрешит Ubuntu.
|
||||
|
||||
`tools/README.md` пишет “Debian/Ubuntu с apt”. Нужно заменить на “Debian 13 amd64”.
|
||||
|
||||
Корневой `README.md` содержит `Amnezia limits (old bash)` в дереве репозитория и отдельный абзац про historical reference. Это надо удалить. Там же строка про upstream Amnezia с Debian 12/13 и Ubuntu 22.04/24.04 лучше убрать полностью или переписать так, чтобы было ясно: AWG2 Harness поддерживает только Debian 13 amd64, независимо от того, что поддерживает Amnezia upstream.
|
||||
|
||||
`docs/OLD_BASH_BEHAVIOR.md` и `docs/MIGRATION.md` логично удалить. Сейчас они попадут в `.deb`, потому что `tools/build.sh` пакует все `docs/*.md`.
|
||||
|
||||
`docs/README.md` надо очистить от ссылок на `OLD_BASH_BEHAVIOR.md` и `MIGRATION.md`.
|
||||
|
||||
`docs/ACCEPTANCE_CHECKLIST.md` содержит rollback через старые bash-файлы и `amnezia-tc.service` / `amnezia-tc-watcher.service`. Это больше нельзя оставлять. Нужен Rust-native rollback: остановить сервисы, отключить host firewall / anti-torrent, удалить AWG2-owned `tc` topology и при необходимости удалить пакет.
|
||||
|
||||
В `docs/IMPLEMENTATION_SPEC.md`, `docs/CONFIGURATION.md`, `docs/ANTI_TORRENT.md` нужно не удалять смысл, а переименовать происхождение. Например “bash parity” заменить на “class-id stability contract”. Лексикографическую сортировку peer IP я бы оставил: код уже сортирует IP как строки, и это полезно как стабильный ABI для class id. Просто больше не надо объяснять это через старый bash.
|
||||
|
||||
Минимальный список удаления:
|
||||
|
||||
```text
|
||||
Amnezia limits (old bash)/
|
||||
docs/OLD_BASH_BEHAVIOR.md
|
||||
docs/MIGRATION.md
|
||||
```
|
||||
|
||||
Что я бы добавил до удаления старого rollback:
|
||||
|
||||
```text
|
||||
awg2-harness cleanup-limits
|
||||
```
|
||||
|
||||
или хотя бы документированную процедуру:
|
||||
|
||||
```bash
|
||||
systemctl disable --now awg2-harness.service
|
||||
systemctl disable --now awg2-reboot-scheduler.service
|
||||
|
||||
C="$(docker ps --format '{{.Names}}' | grep -E '^(amnezia-awg2|amnezia-awg)$' | head -n1)"
|
||||
PID="$(docker inspect -f '{{.State.Pid}}' "$C")"
|
||||
|
||||
nsenter -t "$PID" -n -- tc qdisc del dev awg0 root 2>/dev/null || true
|
||||
nsenter -t "$PID" -n -- tc qdisc del dev awg0 ingress 2>/dev/null || true
|
||||
nsenter -t "$PID" -n -- ip link del ifb0 2>/dev/null || true
|
||||
```
|
||||
|
||||
Для Debian 13-only модели я бы сделал три уровня защиты.
|
||||
|
||||
Первый — `tools/build.sh`: запретить всё кроме Debian 13 amd64.
|
||||
|
||||
```bash
|
||||
ensure_supported_host() {
|
||||
if [[ ! -f /etc/os-release ]]; then
|
||||
echo "Unsupported OS: missing /etc/os-release. Only Debian 13 amd64 is supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
source /etc/os-release
|
||||
|
||||
if [[ "${ID:-}" != "debian" || "${VERSION_ID:-}" != "13" ]]; then
|
||||
echo "Unsupported OS: ${PRETTY_NAME:-unknown}. Only Debian 13 amd64 is supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local arch
|
||||
arch="$(dpkg --print-architecture 2>/dev/null || uname -m)"
|
||||
if [[ "$arch" != "amd64" && "$arch" != "x86_64" ]]; then
|
||||
echo "Unsupported arch: $arch. Only amd64 is supported."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
Второй — `.deb preinst`, чтобы пакет не ставился на Ubuntu/Debian 12/Debian 14 случайно.
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ ! -r /etc/os-release ]; then
|
||||
echo "awg2-harness supports only Debian 13 amd64" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. /etc/os-release
|
||||
|
||||
if [ "${ID:-}" != "debian" ] || [ "${VERSION_ID:-}" != "13" ]; then
|
||||
echo "awg2-harness supports only Debian 13 amd64; got ${PRETTY_NAME:-unknown}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if command -v dpkg >/dev/null 2>&1; then
|
||||
arch="$(dpkg --print-architecture)"
|
||||
if [ "$arch" != "amd64" ]; then
|
||||
echo "awg2-harness supports only amd64; got $arch" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
```
|
||||
|
||||
Третий — `validate-runtime` в Rust: проверять `/etc/os-release` и arch, чтобы ручной запуск бинаря вне `.deb` тоже явно падал.
|
||||
|
||||
Ещё один важный несостык: документация использует версию `0.1.6`, а `traffic_core/Cargo.toml` сейчас `0.1.4`. Если релиз реально `0.1.6`, лучше поднять crate version, а не жить на постоянном `--version` override.
|
||||
Версия реально 0.1.6
|
||||
Reference in New Issue
Block a user