Confuso por openssl make

1

Eu preciso gerar os binários libssl* e libcrypto* para usar em um sistema diferente. Eu escrevi um roteiro trivial fazendo isso

#!/bin/bash

set -evx

OPENSSL_VERSION="1.0.2l"
TARGET=openssl-linux64

/bin/rm -fr $TARGET
curl -O -L http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION $TARGET
cd $TARGET
./Configure linux-x86_64 -shared
make

Tudo parece funcionar, no final eu recebo as duas bibliotecas. Infelizmente, eles são chamados de libssl.so.1.0.0 e libcrypto.so.1.0.0 . Estou bastante confuso ...

É apenas um versionamento caótico ou o que está acontecendo?

Como posso descobrir o que exatamente foi produzido? Devo confiar nisto?

Caso seja importante: Meu sistema é "Linux 4.4.0-116-genérico # 140-Ubuntu SMP Mon x86_64 GNU / Linux".

    
por maaartinus 04.04.2018 / 09:54

1 resposta

2

Sim, isso está correto, as bibliotecas terão a versão 1.0.0 mesmo que o pacote de software tenha a versão 1.0.2l. Isso porque todas as versões 1.0.x do software implementam a mesma API (mesmas funções com as mesmas assinaturas / protótipos de função), portanto, as bibliotecas devem ter a mesma versão, já que os usuários dessas bibliotecas podem usar essas versões de forma intercambiável.

A versão das bibliotecas é definida aqui na árvore de fontes. Há um comentário logo acima dessa definição que explica um pouco mais.

Espero que responda à sua pergunta.

    
por 04.04.2018 / 10:19