mirror of
https://github.com/by-sonic/tglock.git
synced 2026-07-31 07:45:13 +03:00
2d2a9e9302
Мой предыдущий фикс (mainBinaryName в #31) фиксом не был. Он изменил только имя выходного файла: бандлер по-прежнему брал headless CLI и просто переименовывал его в tglock. Проверено по содержимому опубликованных артефактов, а не по имени: версия файл в MacOS/ размер признаки CLI признаки GUI beta.1 tglock 17.8 МБ нет ipc.localhost, wry×3206 beta.2 tglock-cli 4.3 МБ tglock-cli×6 нет beta.3 tglock 4.3 МБ tglock-cli×6 нет То есть beta.3 тоже не запускается, и моя же проверка CFBundleExecutable это пропустила, потому что сверяла имя. Настоящая причина найдена воспроизведением локально. Ломается только при явном --target: без него бандлер выбирает GUI, с ним — CLI. Локальная сборка, на которой я объявил фикс подтверждённым, шла без --target, а обе сборки в CI — с ним. Обобщение было неправомерным. Исправление убирает саму возможность выбора: CLI спрятан за фичей cli, которой нет в default. При сборке приложения второго бинаря просто не существует. Проверено против воспроизведённой поломки: до : tglock.exe 1.7 МБ, признаки CLI, GUI нет после: tglock.exe 9.0 МБ, признаки GUI, CLI нет, tglock-cli.exe не собран Проверки переписаны на содержимое: - release.yml распаковывает .app и .deb и ищет ipc.localhost (есть только в GUI) и allow-direct (есть только в CLI). Поймала бы и beta.2, и beta.3; - новая задача CI bundle собирает бандл с явным --target aarch64-apple-darwin и проверяет его так же. Ловит до публикации, а не после; - заодно исправлен шаблон grep для .deb: dpkg-deb -c выводит путь без ./, из-за чего проверка ложно падала на исправной сборке. Команда сборки CLI теперь требует --features cli; обновлены README, ci.yml и release.yml.
65 lines
1.7 KiB
TOML
65 lines
1.7 KiB
TOML
[package]
|
|
name = "tglock"
|
|
version = "2.0.0-beta.4"
|
|
edition = "2021"
|
|
rust-version = "1.88"
|
|
description = "Telegram unblock via local WebSocket tunnel"
|
|
license = "MIT"
|
|
autobins = false
|
|
|
|
[features]
|
|
default = ["gui"]
|
|
# The desktop GUI. Turning it off drops Tauri, the system WebView and the
|
|
# frontend bundle from the build, which is what makes headless servers and
|
|
# machines without a GPU or monitor able to build and run TGLock at all.
|
|
gui = ["dep:tauri", "dep:tauri-build", "dep:open"]
|
|
# The headless binary. Deliberately NOT in `default`.
|
|
#
|
|
# When both binaries exist in one build, the Tauri bundler picks the wrong one
|
|
# as the application: `tauri build --target <triple>` packaged tglock-cli and
|
|
# shipped it as the app in v2.0.0-beta.2 and v2.0.0-beta.3. Keeping the CLI
|
|
# behind its own non-default feature means it simply does not exist during an
|
|
# application build, so there is nothing to pick wrongly.
|
|
cli = ["dep:clap"]
|
|
|
|
[lib]
|
|
name = "tglock"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "tglock"
|
|
path = "src/main.rs"
|
|
required-features = ["gui"]
|
|
|
|
[[bin]]
|
|
name = "tglock-cli"
|
|
path = "src/bin/cli.rs"
|
|
required-features = ["cli"]
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [], optional = true }
|
|
open = { version = "5", optional = true }
|
|
clap = { version = "4", features = ["derive"], optional = true }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = [
|
|
"rt-multi-thread",
|
|
"net",
|
|
"io-util",
|
|
"time",
|
|
"macros",
|
|
"sync",
|
|
"signal",
|
|
] }
|
|
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
|
|
native-tls = "0.2"
|
|
futures-util = "0.3"
|
|
aes = "0.8"
|
|
ctr = "0.9"
|
|
cipher = "0.4"
|
|
sha2 = "0.10"
|
|
rand = "0.8"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [], optional = true }
|