Como fazer upload de pacotes com dependências para o meu PPA?

13

Fiz um pacote para o meu PPA e o enviei. É construído sem problemas.

Então eu fiz outro pacote que dependia do primeiro e o carreguei. Falhou porque não conseguiu encontrar os arquivos no primeiro pacote. Isso me leva a acreditar que o primeiro pacote nem foi instalado.

Como posso garantir que o primeiro pacote esteja instalado antes de tentar compilar o segundo pacote?

O arquivo de controle para o primeiro pacote (libjsoncpp):

Fonte: jsoncpp
Prioridade: extra
Mantenedor: Nathan Osman 
Depende da compilação: debhelper (> = 7)
Versão-padrões: 3.8.3
Seção: libs
Página inicial: http://jsoncpp.sf.net

Pacote: jsoncpp-dev
Seção: libdevel
Arquitetura: qualquer
Depende: libjsoncpp (= $ {binário: Versão})
Descrição: biblioteca de análise JSON para C ++
 jsoncpp é uma biblioteca C ++ que facilita o
 ler / gravar dados JSON.
 .
 Este pacote contém as ferramentas de desenvolvimento necessárias
 para criar aplicativos que usam jsoncpp.

Pacote: libjsoncpp
Seção: libs
Arquitetura: qualquer
Depende: $ {shlibs: Depends}, $ {misc: Depends}
Descrição: biblioteca de análise JSON para C ++
 jsoncpp é uma biblioteca C ++ que facilita o
 ler / gravar dados JSON.

O arquivo de controle para o segundo (libsopp):

Fonte: sopp
Prioridade: extra
Mantenedor: Nathan Osman 
Depende da compilação: debhelper (> = 7)
Versão-padrões: 3.8.3
Seção: libs
Página inicial: http://stackoverflow.quickmediasolutions.com

Pacote: sopp-dev
Seção: libdevel
Arquitetura: qualquer
Depende: libsopp (= $ {binário: Versão}), jsoncpp-dev
Descrição: uma biblioteca C ++ para interface com sites StackExchange.
 so ++ é uma biblioteca C ++ que agrupa a funcionalidade do StackOverflow
 API. Ele fornece acesso a todos os sites StackExchange.
 .
 Este pacote contém os arquivos de desenvolvimento necessários para escrever o software
 que usa so ++.

Pacote: libsopp
Seção: libs
Arquitetura: qualquer
Depende: $ {shlibs: Depends}, $ {misc: Depends}, libjsoncpp
Descrição: uma biblioteca C ++ para interface com sites StackExchange.
 so ++ é uma biblioteca C ++ que agrupa a funcionalidade do StackOverflow
 API. Ele fornece acesso a todos os sites StackExchange.
Nathan Osman
fonte
Os dois pacotes estão no mesmo PPA?
Jeremy Kerr
@ Jeremy: Sim, eles são.
Nathan Osman
O segundo pacote precisa do primeiro pacote para compilar? (ou seja, a um pacote -dev * de uma biblioteca que utiliza)
txwikinger
@txwikinger: Sim, ele faz. Você precisa ver os arquivos de controle?
Nathan Osman
@txwikinger: Nvm. Eu os adicionei.
Nathan Osman

Respostas:

10

Seu segundo pacote (sopp) precisa especificar que precisa do primeiro a ser construído ; a dependência que você especificou (com Depends:) tratará apenas da instalação.

Para adicionar uma dependência de construção, adicione-a à Source:seção top ( ) do seu arquivo de controle:

Depende da compilação: jsoncpp-dev

Você deve poder soltar o jsoncpp da Dependslinha, pois a shlibs:Dependsmacro deve resolver isso sozinha.

Jeremy Kerr
fonte