Перейти к содержимому

Выпуски

Текущий выпуск ретранслятора — 1.1.0. Примечания к выпуску — в выпуске на GitHub, а на странице загрузок перечислены все файлы с размером и контрольной суммой.

  • Версии имеют вид MAJOR.MINOR.PATCH. Версия совпадает с указанной в Cargo.toml ретранслятора.
  • Каждый выпуск помечается тегом vX.Y.Z в rchat-core и сопровождается выпуском на GitHub со всеми исполняемыми файлами, их файлами .sha256 и SHA256SUMS.txt.
  • Выпуск 1.1.0 поддерживает только протокол версии 2. Следующий выпуск, 2.0.0, поддерживает только протокол версии 3 (постквантовое шифрование, слепое сопряжение, равномерный трафик, приглашения на ретранслятор, возобновление TLS, собственный сайт-приманка для каждого ретранслятора). Ретранслятор и приложение должны использовать одну версию протокола: старые приложения получают отказ «client too old; update rChat». Обновляйте их вместе.
URLСодержимое
https://assets.r-chat.net/VERSIONНомер текущей версии. install.sh читает его, если не указан --version. Он меняется, только когда загружены все файлы выпуска.
https://assets.r-chat.net/install.shУстановщик.
https://assets.r-chat.net/<версия>/<файл>Исполняемые файлы, по одному <файл>.sha256 на каждый и SHA256SUMS.txt.
https://assets.r-chat.net/<версия>/rchat-server.serviceЮнит systemd, который install.sh устанавливает в Linux.
https://assets.r-chat.net/<версия>/rchat.rcrc-скрипт, который install.sh устанавливает во FreeBSD.

Файлы называются rchat-server-<arch>-<os>, с суффиксом -gnu или -static для двух сборок Linux:

ФайлПлатформа
rchat-server-x86_64-linux-staticLinux x86_64, статическая компоновка (musl). Работает в любом дистрибутиве.
rchat-server-aarch64-linux-staticLinux ARM64, статическая компоновка (musl).
rchat-server-x86_64-linux-gnuLinux x86_64, нужна glibc.
rchat-server-aarch64-linux-gnuLinux ARM64, нужна glibc.
rchat-server-armv7-linuxLinux ARMv7 (hard float), нужна glibc.
rchat-server-riscv64gc-linux-gnuLinux RISC-V 64, нужна glibc.
rchat-server-x86_64-freebsdFreeBSD x86_64.
rchat-server-macos-arm64macOS, Apple silicon.
rchat-server-macos-x86_64macOS, Intel.
rchat-server-macos-universalmacOS, обе архитектуры (этот файл использует install.sh).

Выпуск может не включать цель, которая не собралась; страница загрузок показывает ровно то, что опубликовано.

  • <файл>.sha256 содержит только хеш SHA-256 файла <файл>: 64 шестнадцатеричных символа, без имени файла.
  • SHA256SUMS.txt перечисляет хеш и имя каждого исполняемого файла выпуска, по одному в строке, в формате, который читает sha256sum -c.

В Linux, на примере файла rchat-server-x86_64-linux-static (подставьте имя скачанного файла):

Окно терминала
curl -LO https://assets.r-chat.net/1.1.0/rchat-server-x86_64-linux-static
curl -LO https://assets.r-chat.net/1.1.0/rchat-server-x86_64-linux-static.sha256
echo "$(cat rchat-server-x86_64-linux-static.sha256) rchat-server-x86_64-linux-static" | sha256sum -c

На macOS используйте shasum -a 256 rchat-server-macos-universal; во FreeBSD — sha256 -q rchat-server-x86_64-freebsd и сравните результат с файлом контрольной суммы на глаз.

install.sh выполняет ту же проверку сам и ничего не устанавливает, если хеш не совпадает (код выхода 3).

Файлы для macOS подписаны сертификатом Developer ID, с hardened runtime и защищённой меткой времени, и нотариально заверены Apple. К отдельному исполняемому файлу нельзя прикрепить (staple) билет нотариального заверения, поэтому билет хранится у Apple, а не внутри файла.

Страница загрузок генерируется из манифеста выпуска, который пишет сборка выпуска. Для каждого выпуска он содержит:

ПолеЗначение
versionВерсия выпуска, например 1.1.0.
dateДата выпуска.
notes_urlПримечания к выпуску на GitHub.
base_urlhttps://assets.r-chat.net/<версия>/.
artifactsПо одной записи на исполняемый файл: file, os, arch, variant (gnu, static или нет), size в байтах и sha256.

Сборка сайта завершается ошибкой, если версия в манифесте отличается от версии в Cargo.toml ретранслятора или у какого-либо файла нет sha256. Скрипт загрузки отказывается работать, если манифест не совпадает с файлами в dist/: версия, набор файлов и каждый sha256 должны совпадать с настоящим хешем файла.

Ретранслятор и общая клиентская библиотека открыты под лицензией AGPL-3.0-or-later в rchat-core:

Окно терминала
git clone https://github.com/PDG-Global/rchat-core.git
cd rchat-core/rchat
cargo build --release --locked --bin rchat-server

Чтобы собрать помеченный выпуск, сначала переключитесь на его тег (git checkout v1.1.0). Нужны набор инструментов Rust, компилятор C и CMake; см. Установка.