Eu preciso gerar os binários libssl*
e para uso em um sistema diferente. libcrypto*
Eu escrevi um script 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 consigo as duas bibliotecas. Infelizmente, eles são chamados 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 saber exatamente o que foi produzido? Devo confiar nisso?
Caso seja importante: Meu sistema é "Linux 4.4.0-116-generic #140-Ubuntu SMP Mon x86_64 GNU/Linux".
Sim, 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 ocorre 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, pois os usuários dessas bibliotecas podem usar essas versões de forma intercambiável.
A versão das bibliotecas é definida aqui na árvore de origem. Há um comentário logo acima dessa definição que explica um pouco mais.
Espero que isso responda à sua pergunta.