Se a versão da API for 0.4 e for incompatível com outras versões 0.* , você deverá definir o soname como libfoo.so.0.4 . Na verdade, soname pode ser qualquer string, só é necessário encontrar a biblioteca compartilhada adequada em seu sistema ao carregar o executável.
Muitos pacotes (ou distros) seguem um esquema de nomenclatura diferente do seu. Por exemplo, a versão libfoo 0.4.2 com api 0.4 se tornaria libfoo.so.4.2 com soname libfoo.4 .
E ao fazer mudanças substanciais na interface, exigindo não apenas a recompilação e a correção menor aqui e ali, mas muito código reescrito no código usando a biblioteca - aumente a versão principal "principal" renomeando a biblioteca.
Em seguida, libfoo.4.2 se transforma em libfoo-1.so.0.1 ao aplicar a versão de 0.4.2 a 1.0.1 .
Esse esquema facilita a instalação de várias versões de sua biblioteca, caso algum software antigo ainda não tenha sido reescrito para uma API totalmente nova.