¿Cómo cargar un paquete con dependencias a mi PPA?

13

Hice un paquete para mi PPA y lo cargué. Se construyó sin ningún problema.

Luego hice otro paquete que dependía del primero y lo subí. Falló porque no pudo encontrar los archivos en el primer paquete. Esto me lleva a creer que el primer paquete ni siquiera estaba instalado.

¿Cómo puedo asegurarme de que el primer paquete esté instalado antes de intentar compilar el segundo paquete?

El archivo de control para el primer paquete (libjsoncpp):

Fuente: jsoncpp
Prioridad: extra
Mantenedor: Nathan Osman 
Build-Depends: debhelper (> = 7)
Versión estándar: 3.8.3
Sección: libs
Página de inicio: http://jsoncpp.sf.net

Paquete: jsoncpp-dev
Sección: libdevel
Arquitectura: cualquiera
Depende: libjsoncpp (= $ {binary: Version})
Descripción: biblioteca de análisis JSON para C ++
 jsoncpp es una biblioteca de C ++ que hace que sea fácil
 leer / escribir datos JSON.
 .
 Este paquete contiene las herramientas de desarrollo necesarias.
 para crear aplicaciones que usan jsoncpp.

Paquete: libjsoncpp
Sección: libs
Arquitectura: cualquiera
Depende: $ {shlibs: Depende}, $ {misc: Depende}
Descripción: biblioteca de análisis JSON para C ++
 jsoncpp es una biblioteca de C ++ que hace que sea fácil
 leer / escribir datos JSON.

El archivo de control para el segundo (libsopp):

Fuente: sopp
Prioridad: extra
Mantenedor: Nathan Osman 
Build-Depends: debhelper (> = 7)
Versión estándar: 3.8.3
Sección: libs
Página de inicio: http://stackoverflow.quickmediasolutions.com

Paquete: sopp-dev
Sección: libdevel
Arquitectura: cualquiera
Depende: libsopp (= $ {binary: Version}), jsoncpp-dev
Descripción: una biblioteca C ++ para interactuar con sitios StackExchange.
 so ++ es una biblioteca de C ++ que envuelve la funcionalidad de StackOverflow
 API Proporciona acceso a todos los sitios de StackExchange.
 .
 Este paquete contiene los archivos de desarrollo necesarios para escribir software
 que usa so ++.

Paquete: libsopp
Sección: libs
Arquitectura: cualquiera
Depende: $ {shlibs: Depends}, $ {misc: Depends}, libjsoncpp
Descripción: una biblioteca C ++ para interactuar con sitios StackExchange.
 so ++ es una biblioteca de C ++ que envuelve la funcionalidad de StackOverflow
 API Proporciona acceso a todos los sitios de StackExchange.
Nathan Osman
fuente
¿Ambos paquetes están en el mismo PPA?
Jeremy Kerr
@ Jeremy: Sí, lo son.
Nathan Osman el
¿El segundo paquete necesita el primer paquete para construir? (es decir, el paquete a * -dev de una biblioteca que usa)
txwikinger
@txwikinger: Sí, lo hace. ¿Necesitas ver los archivos de control?
Nathan Osman el
@txwikinger: Nvm. Los agregué.
Nathan Osman el

Respuestas:

10

Su segundo paquete (sopp) necesita especificar que necesita el primero para compilar ; la dependencia que haya especificado (con Depends:) solo se encargará de la instalación.

Para agregar una dependencia de compilación, agregue esto a la Source:sección superior ( ) de su archivo de control:

Build-Depends: jsoncpp-dev

Entonces debería poder soltar jsoncpp de la Dependslínea, ya que la shlibs:Dependsmacro debería funcionar por sí misma.

Jeremy Kerr
fuente