¿Cómo copio un paquete de Debian a mi PPA?

10

Me gustaría agregar el último paquete gourmet de Debian sid al PPA de nuestro equipo para que los usuarios de Ubuntu que deseen ejecutar una versión actualizada de Gourmet puedan agregar ese PPA a sus fuentes de software. (En cuanto a la dependencia, eso no debería ser un gran problema ya que casi todas nuestras dependencias actuales ya están disponibles en todas las versiones de Ubuntu actualmente compatibles).

Descargué el *.dscarchivo y los tarballs debian y orig, e incluso descubrí que podía usar esto para el source.changesarchivo del paquete . También descargué la clave pública del mantenedor de Debian para dputpoder validar el paquete. Luego intenté subir el paquete a nuestro PPA usando dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(también probé sin tilda). Esto pareció tener éxito, pero no recibí un correo electrónico de confirmación, y ahora no se muestran paquetes en nuestro PPA , lo que me hace creer que el paquete fue rechazado porque la clave del mantenedor de Debian obviamente no se encuentra entre las claves de los miembros de nuestro equipo.

Entonces, ¿cuál es la forma más fácil de "copiar" un paquete de Debian (sid) a un PPA de Launchpad? ¿Realmente necesito reconstruir todo el paquete localmente antes de poder cargarlo?

Bernhard Reiter
fuente
Por cierto, como la versión de desarrollo de Ubuntu sincroniza automáticamente sus paquetes de Debian (antes de DebianImportFreeze, es decir), con mucho gusto aceptaré una respuesta que me diga cómo copiar un paquete de Utopic.
Bernhard Reiter

Respuestas:

12

Es necesario reconstruir el paquete fuente localmente antes de cargarlo para ajustar el registro de cambios y volver a generar el archivo de cambios. Aunque desde el backport de un paquete es una tarea bastante común, esto ha sido programado. Echa un vistazo al paquete de backportpackage Icono de la página de manualcomandos ubuntu-dev-toolsInstalar ubuntu-dev-tools .

Para realizar un backport de un paquete de Debian, simplemente proporcione la serie de distribución de destino, PPA y el archivo dsc para el paquete:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

Es aún más simple hacer un backport de un paquete de una versión de Ubuntu a otra, ya que no necesita encontrar el archivo dsc. Digamos que queremos retroceder de utópico a confiable:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet
andrewsomething
fuente
¡Increíble! Lo único que me parece un error es que el paquete terminó en mi PPA personal (~ ockham-razor / ppa) a pesar de que pasé ~gourmet/ppacomo argumento al -uparámetro. (Pero afortunadamente pude copiarlo de mi PPA al equipo Gourmet a través de Launchpad.)
Bernhard Reiter
1

Hay algunas formas de hacer esto.

Cuando hice esto para Rhythmbox seguí la siguiente receta:

a. Tome el archivo fuente y los archivos debian

ingrese la descripción de la imagen aquí

si. Descomprima la fuente (.orig.tar.xz)

C. cambiar el nombre de la carpeta de origen algo así comorhythmbox-3.0.3

C. descomprima el archivo debian (.debian.tar.xz)

re. mover la carpeta debian debajo del directorio fuente

mi. dch -ipara cambiar el archivo de registro de cambios

F. cambie el nombre del paquete "inestable" por el nombre del objetivo de ubuntu, aquí he usado el preciso para 12.04. Cambie la versión según corresponda para su aplicación. Aquí rhythmbox era 3.0.3, así que acabo de agregar-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <[email protected]>  Thur, 07 Jun 2012 13:19:18 +0100

sol. crear un nuevo paquete fuente:dh_build --createorig

h. Cree solo la fuente con su clave: ¿ debuild -S -k0xABCDEFGdónde ABCDEFGestá su clave?

yo. sube tu paquete para construir:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    
fossfreedom
fuente
Bueno, eso es básicamente reconstruir el paquete. Oh bien. Esperaba una forma más fácil, pero supongo que no hay ninguna.
Bernhard Reiter
Echa un vistazo al dgetcomando del devscriptspaquete. Simplificará esto bastante.
andrewsomething 01 de
@andrewsomething - convierta eso en una respuesta con un ejemplo :) - Me interesaría ver si eso también puede simplificar mi empaque.
fossfreedom
Bueno, tengo una respuesta completamente diferente, pero aún debería aprender sobre dget=) El archivo dsc contiene toda la información sobre las otras partes del paquete fuente. Entonces dgettomará todo y lo extraerá correctamente si le da un enlace al archivo dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrewsomething 01 de
respuesta ordenada - bien hecho +1
fossfreedom