Creando tu propio Gentoo Overlay en GitHub

Aunque actualmente Gentoo disponibiliza overlays en Git para sus usuarios, nunca esta de más entender la estructura básica de un overlay y configurarla por nosotros mismos, por ejemplo en GitHub.

¿Que es un overlay?
Un overlay es un origen extra de ebuilds que no son parte del arbol de portage principal . Generalmente se utilizan para disponibilizar paquetes de Software para Gentoo con fines diversos, incluyendo experimentación, paquetes bleeding edge, separación de proyectos, pruebas de paquetes. Todo esto aprovechando las ventajas de portage y aprovechar paquetes ya existentes como dependencias.

¿Existen otras alternativas?
Una alternativa muy común es el uso de overlays locales, sin embargo son innumerables las ventajas que provee un administrador de versiones y si se tiene más de un equipo con Gentoo los ebuilds del overlay se pueden distribuir de una manera más fácil utlizando layman.

Creando la estructura de nuestro overlay
Para fines prácticos el overlay se llamara tuxtor y estará ubicado en un folder denominado tuxtor.

Como primer paso debemos crear la estructura del overlay para luego enviar los archivos a nuestro repositorio. Por definición los overlays conservan la misma estructura del arbol de portage donde se tienen como directorios de primer nivel las categorías de los paquetes y dentro de cada categoría un folder que corresponde a un paquete, uno o mas ebuilds que corresponden a distintas versiones del paquete y el archivo Manifest para la ejecución de verificaciones con checksum md5.

Por ejemplo para mi versión de mendeleydesktop 1.6, la estructura seria completa seria

tuxtor
--sci-misc
----mendeleydesktop
------mendeleydesktop-1.6.ebuild
------Manifest

Luego de tener listos nuestros ebuilds necesitamos añadir un directorio denominado profiles que en el arbol principal portage se utiliza para almacenar un set de configuraciones que dependerán del perfil de sistema operativo con el cual se haya instalado Gentoo. Aunque se pueden agregar varias configuraciones dentro del folder profiles, el requisito mínimo es crear el directorio con un archivo de texto simple denominado repo_name el cual debe contener el nombre que deseamos para nuestro overlay:

tuxtor
--profiles
----repo_name

Integración con Layman

También necesitamos preparar nuestro overlay de tal forma de que layman pueda saber de su existencia y le haga el amor, para esto necesitamos crear un archivo .xml con la estructura descrita en la documentación de layman. Aunque este archivo puede estar en cualquier otra parte y describir no solo uno sino varios repositorios con varios orígenes (ssh,git,svn,mercurial,http,https), GitHub ofrece acceso plano via http al archivo y este puede ser aprovechado.

Por ejemplo mi XML tiene la siguiente estructura:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE repositories SYSTEM "/dtd/repositories.dtd">
<repositories xmlns="" version="1.0">
  <repo quality="experimental" status="unofficial">
    <name>tuxtor</name>
    <description>Tuxtor Personal Overlay</description>
    <homepage>https://github.com/tuxtor/tuxtor-gentoo-overlay</homepage>
    <owner>
      <email>tuxtor@shekalug.org</email>
      <name>Víctor Orozco</name>
    </owner>
    <source type="git">git://github.com/tuxtor/tuxtor-gentoo-overlay.git</source>
    <feed></feed>
  </repo>
</repositories>

La parte mas importante del archivo es el tag source type, en el caso de git, este debe apuntar a la URL read only del respositorio git. Convenientemente lo ubico dentro del folder tuxtor

tuxtor
--overlay.xml

Una vez hecho esto procedemos a hacer push de los archivos que estan dentro del folder tuxtor y nuestro overlay pasa a su nueva morada en GitHub.

Para integrarlo a layman en nuestro sistema Gentoo solo necesitamos obtener la URL de acceso plano al archivo overlay.xml y editar la variable overlays en el archivo /etc/layman/layman.cfg y agregar la URL antes obtenida. Por ejemplo mi archivo contiene la siguiente estructura:

overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml
https://raw.github.com/tuxtor/tuxtor-gentoo-overlay/master/overlay.xml

Por ultimo basta con hacer un layman -L para actualizar el listado de overlays disponibles y agregar el overlay con un layman -a <repo_name> donde repo_name corresponde al nombre que definimos en el archivo XML. Este nombre no tiene que ser necesariamente el definido en el archivo repo_name dentro de profiles, pero es más consistente con otras herramientas como eix y te evita dolores de cabeza.

Y listos, a emerger!

2 respuestas a “Creando tu propio Gentoo Overlay en GitHub”

  1. Google Chrome 34.0.1847.132 Google Chrome 34.0.1847.132 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.132 Safari/537.36

    como lo hago en sabayon? no veo esas carpetas de las que hablas.

  2. Firefox 29.0 Firefox 29.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0

    Hola Frank este tutorial corresponde a la creacón de un Overlay que posteriormente sera subido a GitHub.

    Efectivamente las carpetas no existen y realmente se pueden crear en cualquier lugar para posteriormete subirlas a internet y agregarlas al sistema via layman.

    Si lo que quieres es simplemente crear un overlay local la wiki de gentoo incluye una sección detallada de este tema:

    https://wiki.gentoo.org/wiki/Overlay#Local_overlay

    Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *