Назад | Перейти на главную страницу

Проблема со сборкой opendkim из slackbuilds.org в текущей версии Slackware

В текущем 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.