В текущем Slackware есть две библиотеки openssl:
$openssl version
OpenSSL 1.1.1d 10 Sep 2019
$openssl-1.0 version
OpenSSL 1.0.2t 10 Sep 2019
$ls /usr/lib64/openssl-1.0
engines
include -> /usr/include/openssl-1.0/openssl/
libcrypto.so -> libcrypto.so.1.0.0
libcrypto.so.1 -> libcrypto.so.1.0.0
libcrypto.so.1.0.0 -> ../../../lib64/libcrypto.so.1.0.0
libssl.so -> libssl.so.1.0.0
libssl.so.1 -> libssl.so.1.0.0
libssl.so.1.0.0 -> ../../../lib64/libssl.so.1.0.0
$ls -all /usr/lib64/libssl.so
/usr/lib64/libssl.so -> libssl.so.1.1
Заголовки
/usr/include/openssl-1.0/openssl/
/usr/include/openssl/
Когда я пытаюсь собрать opendkim.SlackBuild без изменений:
checking for library containing ERR_peek_error... none required
checking for library containing SSL_library_init... no
configure: error: Cannot build shared opendkim
against static openssl libraries.
Configure with --disable-shared
to get this working or obtain a
shared libssl library for
opendkim to use.
Я обнаружил, что OpenSSL 1.1.1d не имеет SSL_library_init, поэтому slackbuild пытается построить против OpenSSL 1.1.1d.
strings /usr/lib64/libssl.so | grep SSL_library_init
strings /usr/lib64/openssl-1.0/libssl.so | grep SSL_library_init
SSL_library_init
Итак, теперь я знаю, что мне нужно создать opendkim против OpenSSL 1.0.2t, потому что OpenSSL 1.1.1d не будет работать, поэтому я немного изменил opendkim.SlackBuild, чтобы указать на openssl-1.0.
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--enable-static=no \
--with-openssl=/usr/lib$LIBDIRSUFFIX/openssl-1.0 \
--with-libcurl \
--build=$ARCH-slackware-linux \
$MYSQL \
$UNBOUND
Только добавлено --with-openssl=/usr/lib$LIBDIRSUFFIX/openssl-1.0
и сборки opendkim, но когда я устанавливаю opendkim и проверяю его версию:
$opendkim -V
opendkim: OpenDKIM Filter v2.10.3
Compiled with OpenSSL 1.1.1d 10 Sep 2019
SMFI_VERSION 0x1000001
libmilter version 1.0.1
Supported signing algorithms:
rsa-sha1
Supported canonicalization algorithms:
relaxed
simple
libopendkim 2.10.3:
Это показывает, что он был скомпилирован с OpenSSL 1.1.1d, а не с OpenSSL 1.0.2t, мне было бы все равно, но сейчас у меня есть только rsa-sha1, и мне нужен rsa-sha256.
Обнаружено, что срок службы OpenSSL 1.0.2 истекает 31 декабря 2019 г., поэтому как скомпилировать opendkim против OpenSSL 1.1.1d?
я нашел патчи для opendkim 2.10.3 для поддержки OpenSSL 1.1.1, но не для Slackware.
РЕДАКТИРОВАТЬ: я взял пакет из Интернета opendkim-2.10.3-x86_64-4_slonly.txz и теперь:
$opendkim -V
opendkim: OpenDKIM Filter v2.10.
Compiled with OpenSSL 1.0.2t 10 Sep 2019
SMFI_VERSION 0x1000001
libmilter version 1.0.1
Supported signing algorithms:
rsa-sha1
rsa-sha256
Supported canonicalization algorithms:
relaxed
simple
libopendkim 2.10.3:
Но все же хочу знать, можно ли скомпилировать opendkim с openssl 1.1.1 на Slackware.