суббота, 20 апреля 2019 г.

Linux compile cargo project with old OpenSSL and patch AES-NI

Нужно скомпилировать cargo проект в котором используется старая версия OpenSSL.
Что было обычно достаточно, до этого обновления.
apt install openssl pkg-config rustc cargo clang libudev-dev libusb-1.0-0-dev
Но после обновления появилась ошибка компиляции
error: failed to run custom build command for openssl v0.9.24
Читаем описание cargo package где рекомендуют версию openssl-1.1.0f
Из портов предыдущих версий ОС уже не ставится, пишет 404.
Компилим вручную
curl -O https://www.openssl.org/source/openssl-1.1.0f.
tar.gz tar xf openssl-1.1.0f.tar.gz
./config
make
make install
Проверяем openssl version
cargo build --release
Компилим проект. После нужно пропатчить
Нахожу в папке /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-crypto-0.2.36/src
файл aesni_helpers.c и меняю команды по инструкции. После перекомпилирую.
Когда закончил, обязательно деинсталлирую старый OpenSSL
make uninstall
В папке, в которой инсталлировал OpenSSL. И возвращаю родной пакет
apt install openssl

Комментариев нет:

Отправить комментарий