Scroll to navigation

DH_MAKESHLIBS(1) Debhelper DH_MAKESHLIBS(1)

NOME

dh_makeshlibs - cria automaticamente o ficheiro shlibs e chama dpkg-gensymbols

RESUMO

dh_makeshlibs [opções do debhelper] [-mmajor] [-V[dependências]] [-n] [-Xitem] [-- parâmetros]

DESCRIÇÃO

dh_makeshlibs é um programa debhelper que sonda automaticamente por bibliotecas partilhadas, e gera um ficheiro shlibs para as bibliotecas que encontra.

Também assegura que o ldconfig é invocado durante a instalação e remoção quando encontra bibliotecas partilhadas. Desde o debhelper 9.20151004, isto é feito via um trigger do dpkg. Nas versões mais antigas do debhelper, dh_makeshlibs seria geralmente um script de mantenedor para este objectivo.

Since debhelper 12.3, dh_makeshlibs will by default add an additional udeb line for udebs in the shlibs file, when the udeb has the same name as the deb followed by a "-udeb" suffix (e.g. if the deb is called "libfoo1", then debhelper will auto-detect the udeb if it is named "libfoo1-udeb"). Please use the --add-udeb and --no-add-udeb options below when this auto-detection is insufficient.

If you previously used --add-udeb and is considering to migrate to using the auto-detection new auto-detection feature in 12.3, then please remember to test that the resulting DEBIAN/shlibs files are as expected. There are some known corner cases, where the auto-detection is insufficient. These include when the udeb contains library files from multiple regular deb packages or when the packages do not follow the expected naming convention.

FICHEIROS

Instala este ficheiro, se presente, no pacote como DEBIAN/shlibs. Se omitido, o debhelper irá gerar um ficheiro shlibs automaticamente se detectar quaisquer bibliotecas.

Note que em níveis de compatibilidade 9 e anteriores, este ficheiro era instalado pelo dh_installdeb(1) em vez do dh_makeshlibs.

Estes ficheiros de símbolos, se presentes, são passados para dpkg-gensymbols(1) para serem processados e instalados. Use os nomes específicos de arch se precisar de disponibilizar ficheiros de símbolos diferentes para diferentes arquitecturas.

OPÇÕES

Em vez de tentar adivinhar o maior número da biblioteca com o objdump, usa o maior número especificado após o parâmetro -m. Isto é muito menos útil do que costumava ser, de volta aos maus velhos tempos quando este programa olhava para os nomes de ficheiro das bibliotecas em vez de usar o objdump.
Se um ficheiro shlibs for gerado por este programa, esta opção controla que versão será usada na relação de dependência.

Em compatibilidade 12 e posterior, dh_makeshlibs usa por predefinição -VUpstream-Version. Em compatibilidade 11 e anterior o comportamento predefinido é como -VNone..

A ferramenta dh_makeshlibs pode gerar dependências em três variantes:

A dependência será "packagename (>= packageversion)". Note que Upstream-Version é sensível a maiúsculas/minúsculas e tem de ser escrito exactamente como mostrado aqui.

Esta é uma definição conservativa que assegura sempre que as dependências de bibliotecas partilhadas dos pacotes mais antigos são pelo menos tão justas o quanto precisam de ser (a menos que a biblioteca seja inclinada a alterar a ABI sem actualizar o número de versão do autor).

O reverso da medalha é que os pacotes podem acabar com dependências muito apertadas em alguns casos (note que um ficheiro symbols pode mitigar esta situação). Isto é geralmente uma inconveniência menor temporária e normalmente muito melhor que a falha causada ao esquecer de inserir a informação de dependência.

Este formato explícito foi adicionado no debhelper/11.3. Nas versões anteriores, era usado em vez disto um -V sem nenhuma informação de dependência (e esse formato ainda funciona).

A dependência será "packagename". Note que None é sensível a maiúsculas/minúsculas e tem de ser escrito exactamente como mostrado aqui.

Este formato é na generalidade não seguro sendo a única excepção se o autor original não estender a ABI de maneira nenhuma. No entanto, a maioria dos autores originais melhoram as suas interfaces com o passar do tempo e é recomendado que os pacotes usem -VUpstream-Version (ou um dos outros formatos de -Vdependencies).

Alternativamente, isto pode ser suficiente se (e apenas se) o pacote usar versão por símbolo (veja dpkg-gensymbols(1)) e não compilar nenhum pacote udeb. Note que symbols não são suportados para pacotes udeb, os quais apenas se apoiam em shlibs para manuseamento das dependências.

Neste caso, o valor passado a -V irá ser usado como uma relação de dependência. O package-relation deve geralmente ser do formato "algum-nome-pacote (>= alguma-versão-pacote)". Lembre-se de incluir o nome do pacote.

Note que o debhelper irá usar o calor como está sem verificações de sanidade ou modificação. Em casos raros e especiais, isto é preciso para gerar uma dependência num pacote diferente daquele que contém a biblioteca.

Quando escolher um valor para esta opção, por favor lembre-se que se o pacote fornecer um ficheiro symbols, então esse é geralmente preferido sobre o ficheiro shlibs para pacotes .deb regulares. Veja dpkg-shlibdeps(1) para mais informação sobre este tópico.

Não adiciona o trigger "ldconfig" mesmo que parece que o pacote possa precisar dele. A opção é chamada --no-scripts por razões históricas pois o dh_makeshlibs previamente gerava scripts do mantenedor que chamavam ldconfig.
Exclui ficheiros que contenham item em qualquer ponto do seu nome de ficheiro ou directório de serem tratados como bibliotecas partilhadas.
Cria uma linha adicionar para udebs no ficheiro shlibs e usa udeb como o nome do pacote para o udebs depender dele em vez do pacote da biblioteca normal.

This is option is only useful for special cases such as when debhelper cannot auto-detect package name of the udeb package, when the udeb will contain libraries from multiple deb packages, or when the udeb contains libraries not present in the deb package.

Do not add any udeb lines to the shlibs file. This can be used to disable the default auto-detection of udebs.
Passa params para dpkg-gensymbols(1).

EXEMPLOS

Assumindo que este é um pacote chamado libfoobar1, gera um ficheiro shlibs que se parece com algo como isto:
libfoobar 1 libfoobar1
Assumindo que a versão actual do pacote é 1.1-3, gera um ficheiro shlibs que se parece com algo como isto:
libfoobar 1 libfoobar1 (>= 1.1)
Gera um ficheiro shlibs que se parece com isto:
libfoobar 1 libfoobar1 (>= 1.0)

VEJA TAMBÉM

debhelper(7)

Este programa é parte do debhelper.

AUTOR

Joey Hess <joeyh@debian.org>

TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro a_monteiro@gmx.com ou Equipa Debian de Tradução Portuguesa traduz@debianpt.org.

2019-09-14 12.6