github sleep3r/mtproto.zig v0.23.1

latest releases: v1.13.0, v1.12.0, v1.11.0...
3 months ago
🇷🇺 Что нового (RU)

Что решает этот релиз

v0.23.1 - небольшой patch-релиз для one-liner bootstrap install.

После включения обязательной проверки release assets через minisign безопасный bootstrap-путь стал зависеть от наличия minisign на целевой машине. На обычной установленной системе это часто уже есть или легко ставится позже через mtbuddy, но на свежей minimized Ubuntu 24.04 пакет отсутствует по умолчанию.

В результате команда:

curl -fsSL https://raw.githubusercontent.com/sleep3r/mtproto.zig/main/deploy/bootstrap.sh | sudo bash

могла скачать release metadata, найти v0.23.0, скачать mtbuddy, checksum и signature, а потом остановиться до проверки подписи:

minisign is required for signature verification (use --insecure or MTPROTO_INSECURE=1 to bypass)

Это было неправильное поведение для fresh-host сценария: bootstrap сам должен подготовить минимальную зависимость для безопасной проверки, а не подталкивать оператора к --insecure.

[!IMPORTANT]
Security model не ослаблен. По умолчанию checksum по-прежнему проверяется через minisign-подписанный .sha256, а unsigned mode всё ещё требует явного --insecure или MTPROTO_INSECURE=1.

[!NOTE]
Обновление полезно прежде всего для новых установок через one-liner. Уже установленные хосты, где mtbuddy install / mtbuddy update работают, не требуют изменений конфига.

Что изменено

Bootstrap сам ставит minisign (#253)

  • deploy/bootstrap.sh теперь в secure mode проверяет наличие minisign до скачивания/проверки артефактов.
  • Если minisign отсутствует, bootstrap пытается установить его через доступный package manager:
    • apt-get для Ubuntu/Debian;
    • dnf;
    • yum;
    • apk;
    • pacman.
  • Для Ubuntu/Debian используется apt-get install -y --no-install-recommends minisign, чтобы не подтягивать лишний мусор на minimized образах.
  • После установки bootstrap повторно проверяет, что minisign действительно появился в PATH.
  • Старый hard-fail оставлен только для систем без поддерживаемого package manager или когда установка пакета реально не удалась.

--insecure остался явным обходом

  • --insecure и MTPROTO_INSECURE=1 не изменились.
  • В insecure mode bootstrap не устанавливает minisign и пропускает signature verification, как и раньше.
  • Secure mode остаётся поведением по умолчанию.

Проверено

  • bash -n deploy/bootstrap.sh
  • git diff --check

🇬🇧 Release notes (EN)

What this release addresses

v0.23.1 is a small patch release for the one-liner bootstrap installer.

After signed release verification became mandatory by default, the safe bootstrap path depended on minisign already being available on the target machine. On a normal long-lived host that is often already true, or mtbuddy can install it later. On a fresh minimized Ubuntu 24.04 image, however, minisign is not installed by default.

As a result, this command:

curl -fsSL https://raw.githubusercontent.com/sleep3r/mtproto.zig/main/deploy/bootstrap.sh | sudo bash

could fetch release metadata, resolve v0.23.0, download mtbuddy, checksum, and signature files, then stop before signature verification with:

minisign is required for signature verification (use --insecure or MTPROTO_INSECURE=1 to bypass)

That was the wrong behavior for a fresh-host bootstrap flow: the script should install the minimal verification dependency itself instead of nudging operators toward --insecure.

[!IMPORTANT]
The security model is not weakened. By default, the checksum is still verified through a minisign-signed .sha256 file, and unsigned mode still requires explicit --insecure or MTPROTO_INSECURE=1.

[!NOTE]
This release mainly matters for new one-liner installs. Already installed hosts where mtbuddy install / mtbuddy update work do not need config changes.

What changed

Bootstrap installs minisign when needed (#253)

  • deploy/bootstrap.sh now checks for minisign in secure mode before artifact verification.
  • If minisign is missing, bootstrap tries to install it through the available package manager:
    • apt-get for Ubuntu/Debian;
    • dnf;
    • yum;
    • apk;
    • pacman.
  • Ubuntu/Debian uses apt-get install -y --no-install-recommends minisign to keep minimized images lean.
  • After installation, bootstrap verifies that minisign is actually available in PATH.
  • The hard failure remains only for systems without a supported package manager or where package installation really failed.

--insecure remains an explicit bypass

  • --insecure and MTPROTO_INSECURE=1 behavior is unchanged.
  • In insecure mode, bootstrap does not install minisign and skips signature verification as before.
  • Secure mode remains the default.

Verified

  • bash -n deploy/bootstrap.sh
  • git diff --check

Changelog

Don't miss a new mtproto.zig release

NewReleases is sending notifications on new releases.