Делаю websocket клиент с библиотекой ws-rs. При попытке компиляции (cargo build) сообщается, о невозможности компиляции openssl:
Compiling openssl v0.9.24
error: failed to run custom build command for `openssl v0.9.24`
process didn't exit successfully: `/home/qwe8013/VSCodeProjects/DumpBinance/target/release/build/openssl-700208eb71c8ae94/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'Unable to detect OpenSSL version', /home/qwe8013/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14
note: Run with `RUST_BACKTRACE=1` for a backtrace.
The terminal process terminated with exit code: 101
Содержимое раздела dependencies Cargo.toml следующее:
[dependencies]
clap = "*"
bincode = "*"
serde = "*"
serde_derive = "*"
[dependencies.ws]
version = "*"
features = ["ssl"]
Как возможно решить проблему?
Я не сталкивался с ws-rs, но судя по карго файлу, библиотека имеет старую версию openssl.
Проблема решаема в новой версии openssl. Автор слегка не коммитит в библиотеку и видимо забросил свой профиль.
Мб следует найти форк или схожую библиотеку (в экстримальном случае собрать вручную с этим ПР’ом).
Может оно системную openssl библитотеку ждет, которой у тебя не поставлено?
В большинстве дистров она есть + он же пакеты устанавливает, а карго завязан на openssl. Если бы openssl
не было в системе, карго не скачивал бы зависимости.
Тут дело скорее в том, что в дистрибутиве @qwe8013 версия библиотеки более свежая, чем openssl v0.9.24
.
Давнгрейдить openssl
дурная затея, а вот обновить зависимость в ws-rs
идея хорошая 
Ну, в убунте, например, по-умолчанию есть просто libssl
пакет с самой библиотекой, нужной для работы уже готовых приложений, но для разработки libssl-dev
пакет надо ставить отдельно.
1 лайк
Скачал проект ws-rs с гитхаба, поставил там версию openssl 0.10, после чего, при попытке сборки компилятор, что вполне ожидаемо, выдал кучу ошибок в “ws-rs/src/connection.rs”, так что придётся, видимо, юзать другую либу.
Так а системный libssl-dev (или какой там в твоей системе аналог) поставлен? Просто сишный проект с openssl получается собрать?
UPD: Еще у rust-openssl есть https://github.com/sfackler/rust-openssl#vendored - что бы он использовал не системную библиотеку, а свою собрал.
UPD2: А может про версии была и правильная мысль: https://github.com/sfackler/rust-openssl/issues/987
Просто сишный проект с openssl получается собрать?
Да
ОС - Arch linux
Как я и сказал, заюзаю другую либу.