Tema de iconos El General empaquetado para openSUSE

El General es un tema de iconos para Plasma 5, que ahora puedes instalar facilmente desde YaST en openSUSE.

el_capitan

Después de unos cuantos días peleándome con Open Build Service, por fin he conseguido empaquetar el tema de iconos creado por Fabián Alexis para que esté disponible en openSUSE y sea sencillo de instalar mediante YaST.

Sigue leyendo «Tema de iconos El General empaquetado para openSUSE»

openSUSE lanza Open Build Service 2.4

Open Build Service el sistema para crear paquetes de software en diversos formatos lanza la versión 2.4 con muchas mejoras de rendimiento y velocidad. Ahora colaborar es más fácil!!

Open Build Service es una forma de lanzar, o actualizar nuevo software a partir de las fuentes y empaquetarlo en formato RPM, DEB, y ahora también PKGBUILD, con lo que podrás distribuir tu software para las distros más populares y más importantes de GNU/Linux que utilizan este empaquetado, que son por ejemplo: openSUSE, Debian, Fedora, Ubuntu, Arch, Red Hat Enterprise Linux y SUSE Linux Enterprise.

Después de todo un año de trabajo duro, esfuerzo, sudor y lágrimas de todos nuestros colaboradores la última versión del lanzamiento del servicio Open Build Service (OBS) está listo para todos.

Esta versión 2.4 añade soporte para otro formato de empaquetado, la firma de arranque seguro y tiendas de aplicaciones AppStream. También ofrece un sistema de restricciónes que se adapta mejor al nuevo hardware e incluye una gran cantidad de mejoras en velocidad.

OBS 2.4 es la última, la mejor y la más estable de los lanzamientos de esta herramienta, y se ha estado probando en un servidor de referencia desde Enero. Recomendamos encarecidamente actualizar a esta versión.

obs

Sobre Open Build Service

Open Build Service (OBS) es un sistema genérico para compilar y distribuir paquetes binarios desde las fuentes de manera automática, consistente y de forma reproducible. Puedes liberar paquetes, así como actualizaciones, complementos, aplicaciones y distribuciones completas para una amplia gama de sistemas operativos y arquitecturas de hardware.

Está desarrollado por un gran equipo de desarrolladores de Software Libre y es usado por muchos proyectos de software libre y código abierto, compañías e investigadores. Incluyendo, pero no limitándose a SUSE, el proveedor original de la distribución Linux para empresas, la plataforma de software Tizen, basado en estándares con el apoyo de los principales operadores móviles y OwnCloud, tu método profesional para compartir y sincronizar tus archivos de manera segura.

Soporte para PKGBUILD, AppStream y SecureBoot

Ahora, con OBS 2.4, es posible crear paquetes en formato PKGBUILD . Este formato se utiliza, por ejemplo, en la popular distribución Arch Linux. Este es el tercer formato de paquetes, después de RPM y DEB, que OBS soporta, y permite crear y distribuir software para todas las principales distribuciones de Linux que usen estos formatos de paquetes binarios.

Otra demanda popular a los servidores de compilación en estos días es el apoyo a la firma de archivos individuales (bootloader, controladores, etc) dentro de los paquetes con una clave criptográfica que soporte los estándares como el arranque seguro UEFI. En la versión 2.4 el demonio de firma OBS se ha extendido para manejar esta característica de seguridad.

Y por último pero no menos importante, y en línea con el aumento de tiendas de aplicaciones (App Stores) como medio para distribuir software a los usuarios finales, esta versión de OBS trae soporte para el estándar de metadatos AppStream entre-distribuciones.

Nuevas restricciones en el Sistema de Compilacion

Estas restricciones se pueden definir para paquetes y proyectos dentro de OBS para sólo compilar en los casos en los que esas restricciones se cumplan. Los tipos de restricciones varian desde por ejemplo restricciones de software como requisitos mínimos o la versión del kernel, o también restricciones hardware como por ejemplo especificar un flag de la CPU o el tamaño del disco o memoria o por ejemplo restricciones propias de OBS por ejemplo del tipo de banco de trabajo (sandbox) que el usuario utiliza para ejecutar la compilación del paquete.

Cada paquete satisfactorio creado en OBS 2.4 ahora produce una estadística en la que se visualiza la cantidad de disco utilizado, espacio, memoria y E/S usadas, lo que puede ser utilizado para ajustar las restricciones.

Mediante este sistema de restricción no sólo es posible adaptar mejor los trabajos de compilacion para crear los entornos sino también puede ser utilizado para ejecutar, por ejemplo, los puntos de referencia del paquete siempre para el mismo usuario de Build o distinguir entre entornos de compilacion seguro e inseguro. La documentación sobre esto se puede encontrar en la Guía de referencia de Open Build Service.

Mejoras masivas en cuanto a velocidad

El tiempo del empaquetador de software y del desarrollador es un muy valioso, así que estamos constantemente trabajando en mejorar la velocidad de OBS. En este lanzamiento hemos añadido soporte para imágenes preinstaladas, para aumentar la velocidad de ensamblado de las distintas pruebas del trabajador que lo realice. Estas imágenes incluyen todos los ficheros de un paquete individual que es necesario para compilar, así que descomprimirlos es significativamente más rápido que instalar los paquetes de manera individual.

También hemos añadido mejoras en el cacheo que los metadatos del paquete, agrupando los repositorios donde escribe los metadatos y una unificación más eficiente del organizador de metadatos. Y hemos hecho la interconexión de diferentes instancias de OBS de manera asíncrona. Esto impedirá que el organizador se cuelgue con conexiones lentas o desconexiones temporales a una instancia remota.

Más información

Si quieres consultar de manera más detallada todos los cambios que trae esta actualización echa un vistazo a las notas detalladas del lanzamiento 2.4: https://github.com/openSUSE/open-build-service/blob/2.4/ReleaseNotes-2.4 . También es recomendable leerse esto antes de actualizar tu instancia.

Prueba OBS 2.4

El servidor de referencia http://build.opensuse.org está disponible a todos los desarrolladores de código abierto para compilar paquetes para las más importantes distribuciones, incluyendo openSUSE, Debian, Fedora, Ubuntu, Arch, Red Hat Enterprise Linux y SUSE Linux Enterprise. También es utilizado para compilar, lanzar y mantener la distribución openSUSE.

Puedes descargar todos los componentes de OBS (Clientes, API, Servidor, operador (Worker)) desde nuestra página de descarga y establecer tu propia instancia de Open Build Service.

Si eres desarrollador de software y quieres empaquetar ese software para las principales distros de GNU/Linux, o si quieres mantener un paquete de tu distribución favorita, puedes contribuir mediante esta excelente herramienta que facilita el trabajo. Infórmate y lee al respecto!!

Gracias a Ricardo Chung (amon0thoth1) embajador de openSUSE en Panamá por la ayuda y soporte en la traducción y redacción!! 😉

Enlaces de interés

Unos cuantos vídeos

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

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.

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