Configure не читает --with-openssl-dir во время статической компиляции Tor

Я пытаюсь скомпилировать статическую версию Tor с помощью MinGW-w64 (MSYS 2). Я скачал исходный код Tor (tor-0.3.1.8) и в соответствии с файлом INSTALL и COMPILE скомпилировал статическую версию OpenSSL (openssl-1.1.0g), zLib (zlib-1.2.11) и Libevent (libevent -2.1.8-стабильный)

Для компиляции OpenSSL я использовал

perl Configure mingw no-shared no-dso --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make depend
make
make install

Компиляция прошла успешно, и я могу найти libssl.a и libcrypto.a в /usr/local/openssl/lib/. Я использовал no-share и no-dso, поскольку файл INSTALL в исходном каталоге tor объявляет.

Для компиляции zLib я использовал

make -fwin32/Makefile.gcc

Для компиляции Libevent я использовал

./configure --prefix=/usr/local/libevent --disable-shared --enable-static --with-pic
make
make install

Компиляция в порядке, и я могу найти все файлы в /usr/local/libevent. Я использовал --disable-shared --enable-static --with-pic, как написано в файле INSTALL внутри исходного кода Tor.

После того, как я запустил скрипт настройки для Tor

 ./configure --enable-static-tor --with-libevent-dir=/usr/local/libevent --with-openssl-dir=/usr/local/openssl --with-zlib-dir=/home/Nicola/tor-mingw/zlib-1.2.11

как написано в файле INSTALL. Сценарий конфигурации завершается с ошибкой после успешной проверки Libevent.

checking for openssl directory... (system)
checking whether we need extra options to link openssl... (none)
configure: error: "You must specify an explicit --with-openssl-dir=x option when using --enable-static-openssl"

Я пробовал добавлять / после каждого каталога, но ничего не меняется. Это ошибка сценария, которую можно решить, установив вручную TOR_OPENSSL_LIBS с помощью ?

TOR_OPENSSL_LIBS="/usr/local/openssl/lib/libssl.a /usr/local/openssl/lib/libcrypto.a"

спасибо за помощь


person maedh    schedule 26.11.2017    source источник


Ответы (1)


Попробуйте добавить --enable-static-openssl в команду настройки Tor, чтобы сообщить ему ссылку на статическую библиотеку OpenSSL. Вам понадобится то же самое для libevent и zlib.

Для справки, вот что я использую для сборки Tor (он не полностью статичен, как вы собираетесь):

./configure --prefix=/opt/tor-$VERSION --sysconfdir=/etc --localstatedir=/var \
--enable-static-openssl --with-openssl-dir=/opt/openssl \
--enable-lzma --enable-zstd \
--with-tor-user=tor --with-tor-group=tor

Кстати, если вы можете собрать OpenSSL с флагом enable-ec_nistp_64_gcc_128, то ECDH будет намного быстрее.

Я использую это для создания статической библиотеки OpenSSL для Tor:

./config no-shared zlib-dynamic \
--prefix=/opt/openssl --openssldir=/opt/openssl \
-fPIC enable-ec_nistp_64_gcc_128

Надеюсь, это поможет.

person drew010    schedule 27.11.2017