Empaqueta software para openSUSE. Cualquiera puede hacerlo!!

 

Este artículo es una traducción que he hecho de un artículo escrito en inglés. Puedes ver el original en este enlace: kdeatopensuse.wordpress.com escrito por rabauke. A él los créditos del original, y gracias por permitirme la traducción. Empezamos…

Si crees que no puedes que no puedes ayudar a empaquetar software, tal vez deberías reconsiderarlo, desde que existe openbuildservice ya puedes ayudar a los empaquetadores de software con unos pocos clicks de ratón en tu navegador, y sin el riesgo de “romper” nada de tu sistema operativo, y no sólo disponible para openSUSE, si no también disponible por ejemplo para Fedora y otras distros.

Si bien la creación de un nuevo paquete podría estar fuera de alcance para los usuarios de la mayoría de distros, la actualización de un paquete a menudo es muy fácil. Todo lo que necesitas es un navegador.

Para empezar esta pequeña serie de tutoriales (N.T: en el blog oficial escrito por rabauke) de cómo funciona la interfaz gráfica de la web de buildservice, vamos a echar un vistazo de cómo se actualiza un paquete ya existente a una nueva versión. A menudo el proceso de actualización de un paquete se compone de sólo tres pasos que pueden realizarse cómodamente desde el propio navegador:

  1. Crear una copia del paquete a actualizar.
  2. Subir un nuevo archivo comprimido y cambiar la cadena de versión en el paquete.
  3. Enviar, actualizando los cambios al paquete del repositorio.

Ejemplo: Actualizando un paquete.

Para que sea fácil seguir este tutorial, daré un ejemplo, estructurando el proceso en pequeños pasos:

1.- Copiando/ramificando el paquete:

  1. Regístrate en la página de open buildservice (te puedes registrar, si no lo estas, de manera gratuita)
  2. Haz click sobre All Projects 
  3. Haz click sobre el repo en el que se encuentra el paquete que quieres actualizar. Por ejemplo en KDE:Extra.
  4. Haz click sobre Packages.
  5. Haz click sobre el paquete que seas actualizar, por ejemplo luckybackup.
  6. Debajo del resumen del paquete haz click sobre Branch package (sólo disponible si estas registrado y te has logueado correctamente) y da OK cuando te pregunte la confirmación de si estas de acuerdo de hacer una ramificación del paquete (you really want to branch the package?)

Una vez realizado lo anterior, ahora te redirige al paquete del que se ha hecho una nueva ramificación dentro de la página principal de tu proyecto. En la cabecera de la página puedes ver la ruta del paquete, en este ejemplo:

openSUSE Build Service > Projects > home:nombre_de_usuario:branches:KDE:Extra > Packages > luckybackup

Esto indica que el servicio de creación de paquetes ha creado una ramificación del proyecto original KDE:Extra dentro de la carpeta principal de proyectos de tu usuario. Si quieres navegar dentro de esta manualmente puedes hacer click en Home Project en la esquina superior izquierda de la página, dentro de Subprojects y finalmente en Branches:KDE:Extra.

Debajo de la ruta, tienes una barra con enlaces, que se usarán en este mismo ejemplo, por ejemplo: Overview, Sources, etc…

Dentro de la carpeta principal de tu proyecto, puedes modificar el paquete sin miedo de “romper” nada o dañar el repositorio original. Si te confundes, o te lías, basta con borrar el paquete del sub-proyecto y volver a empezar de nuevo desde cero, volviendo a copiar el repositorio oficial en nuestra carpeta personal.

2.- Actualizando el paquete de software.

Los paquetes están construidos desde archivos comprimidos (tarball), por ejemplo archivos del código fuente de aplicaciones. Para actualizar un paquete debes reemplazar el tarball existente y modificar la cadena de la versión del paquete.

  1. Haz click sobre el paquete dentro de la carpeta principal (home) de tu proyecto.
  2. Haz click en Sources (fuentes)

Se mostrará la lista de archivos que contiene el paquete.

  • luckybackup.spec: El archivo “spec” que contiene información de cómo está construido el paquete. Excepto para modificar la cadena que contiene la versión, en la mayoría de los casos no deberás preocuparte de este archivo.
  • luckybackup.changes: Este es un archivo que guarda un registro (log) de los cambios aplicado al paquete. En este archivo deberías añadir algo así como: “- paquete actualizado a la versión x.y.z”. En la mayoría de casos el inglés es el lenguaje utilizado por defecto, así que deberías utilizar este lenguaje y añadir algo así como: “- updated package to version x.y.z”.
  • luckybackup-0.4.6.tar.gz: Este es el archivo comprimido (tarball) del código fuente de la aplicación en sí. Lo puedes conseguir desde la página oficial de la aplicación o crear una tu mismo en el caso de que estes haciendo una captura en git.
  • xyz.patch: Los parches que se han aplicado al código fuente antes de hacerlo. A menudo, no te tendrás que preocupar de esto. Algunos consejos sobre el manejo de los parches – en caso de ser necesario – serán parte de uno de los próximos artículos.

Muchos archivos están representados como enlaces. Si haces click sobre ellos los puedes editar directamente con tu navegador.

CONSEJO: Si tienes problemas con el editor del navegador, por ejemplos por que los números de línea no se acomodan con el texto o no se muestran las guiones bajos, trata de remediarlo cambiando la fuente utilizada a por ejemplo Droid Sans y aumentando el tamaño.

Quizás quieras echar un vistazo a los detalles del archivo spec, pero los más normal y lo que necesita en simplemente encontrar esta línea:
Version: 0.4.6
y cambiarla por esta otra (en nuestro ejemplo)
Version: 0.4.7

Para guardar los cambios haz click en el icono de guardar (save) en la parte superior del editor.
Si has echado un vistazo al archivo spec, verás que será probable, que use esa cadena o nombre para designar el nombre del archivo comprimido (tarball) para usarlo a la hora de construir el paquete, por ejemplo:

Source0: %{name}-%{version}.tar.gz

Esto significa que el tarball con la nueva versión tiene que llamarse luckybackup-0.4.7.tar.gz. Hay muchas maneras de añadir un nuevo archivo comprimido (tarball) a los paquetes de software, la manera más sencilla es descargar el tarball en tu ordenador y después subirlos al paquete en la página de buildservice:

  1. Ve a la lista de fuentes y borra el archivo tarball antiguo pinchando sobre el icono de remove.
  2. Haz click sobre el icono añadir fichero, de la lista que sale, selecciona el archivo de tu ordenador.
  3. Sólo en el caso de que no tenga el nombre mencionado anteriormente deberás meterlo correctamente en el campo del nombre.
  4. Guardar los cambios.

Ahora haz click en el archivo luckybackup.changes para documentar los cambios que has hecho al paquete. Para insertar un nuevo campo, simplemente haz click en Insert changes en la parte superior del editor.

3º.- Re-enviando el paquete.

Si haces click sobre Overview o Monitor podrás ver el estado de construcción en el que se encuentra el paquete. Haciendo click sobre el estado abrirá el fichero log. Puedes seguir el proceso de construcción y comprobar si existen errores. En el caso de que se complete con éxito el proceso podrás reenviar el paquete que has actualizado. ¡Aunque reenvíes el paquete, esto todavía no puede causar daños en el repositorio original! Sólo cuando la petición de envío es aceptada por el mantenedor del repositorio, los cambios serán relevantes en el repositorio.

Para reenviar el paquete que has hecho simplemente haz click en Sources dentro del paquete. Encontrarás un enlace Show the diff and submit these changes back (mostrar las diferencias y enviar estos cambios) Pincha sobre este enlace y añade un comentario a la petición de envío (lo mejor es escribir el comentario en inglés, es el lenguaje por defecto que se usa para comunicarse entre todos los usuarios) por ejemplo diciendo que es lo que has hecho (actualizar, corregir un error, traducir,….) y envía la diferencia.

¡Eso es todo! El servicio de buildservice automáticamente mandará un correo a los mantenedores del repositorio, y serán ellos los que se encarguen de gestionar la petición que has enviado.

4º.- Fallo al construir el paquete (Build failing).

Por supuesto que el proceso de hacer una actualización de un paquete puede fallar. El error más trivial que puede surgir, por ejemplo pede ser:
error: File /usr/src/packages/SOURCES/luckybackup-0.4.75.tar.gz: No such file or directory

Que te avisa de que el buildservice no puede encontrar el paquete que le indicaste, por ejemplo porque el nombre del archivo no es correcto o te equivocaste a la hora de poner el nombre en el archivo spec.”

Desde la página oficial del blog de este post darán más pistas en próximos artículos de cómo resolver los problemas que se puedan dar. Con la herramienta openbuild service (OBS) se ha hecho fácil la tarea de empaquetar nuevo software para tu distribución favorita. Y así puedes ayudar a Geeko a hacerse más grande!!

Esto es una traducción, consulta la página original si en algún caso te surge alguna duda. Y por supuesto comenta aquí alguna sugerencia o si crees que habría que cambiar algo para una mejor comprensión del texto. Todas las sugerencias son bienvenidas!

Un vídeo para aclarar algo más la manera en la que podemos utilizar esta herramienta para crear un nuevo paquete, y ver cómo manejar el front-end de la aplicación.

  ———————————————————————————————-

About these ads

2 pensamientos en “Empaqueta software para openSUSE. Cualquiera puede hacerlo!!

  1. Puede hacerlo cualquiera… que sepa programar no? porque para aplicar algún cambio a un paquete tienes que modificar su código, no? es que si no, no tendría sentido re-subir un paquete no? Aunque… ¿es igual de fácil que para cualquier paquete que no esté en los repositorios de OpenSUSE, descargado desde otra fuente?, es decir ¿se puede subir el tarball de un paquete cualquiera y automáticamente el OpenBuild Service genera el RPM, o cómo?

    • Hola!
      Creo que para subir un nuevo paquete el proceso es distinto, y no sé si más complicado o no.
      A ver si en próximos artículos del blog de donde traduje este nos aclara, o alguien que haya empaquetado nos puede decir más.
      En principio actualizar un paquete no parece difícil, parece que obs ha venido a solucionar problemas, y simplificar tareas. No lo he probado, está en mi lista de pendientes.

      Saludos.

Me gustaría saber tu opinión. Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s