6.7. Construcción de paquetes

En esta sección revisaremos la conveción para la creación de paquetes de Gekko.

6.7.1. Estructura de un paquete

Todos los paquetes de Gekko son archivos comprimidos .tar.gz y mantienen una estructura simple: son relativos al directorio src, es decir, que todos los paquetes que fabriquemos al extraerse en src deben colocar todos los archivos en su ubicacion exacta, por ejemplo, un listado de un paquete de módulo nos debe dar:
$ tar -tzf gallery-x.y.z.module.tgz
media/
media/icons/
media/icons/default/
...
modules/
modules/gallery/
modules/gallery/main.lib.php
...
modules/gallery/lang/
...
modules/gallery/package.xml
modules/gallery/blocks/
modules/gallery/admin.inc.php
...
templates/
templates/default/
templates/default/gallery/
templates/default/gallery/gallery.form.tpl
...
templates/default/gallery/view_item.tpl
Mientras que un paquete de estilo:
$ tar tzf default-x.y.style.tgz
templates/
templates/default/
templates/default/css/
templates/default/css/default/
templates/default/css/default/logo-top.png
templates/default/css/default/bgtitle.png
templates/default/default.css
Para fabricar los paquetes de forma manual, nos colocaremos en src y le pasaremos a tar la información de los paquetes que deseamos incluir, por ejemplo para un paquete de estilo:
$ pwd
~/public_html/gekko-dev/src
$ tar -cvzf minuevoestilo-1.0.style.tgz templates/default/minuevoestilo.css templates/default/css/minuevoestilo
El nombre del paquete debe ser algo que identifique fácilmente su contenido y debe llevar un guión (-) que separe el nombre de la versión. La extensión de archivo debe ser .tipo_de_paquete.tgz para poder ser instalado desde el panel de administración de Gekko, a continuación una tabla de las extensiones requeridas y su significado:

Tabla 6-3. Extensiones de paquetes

ExtensiónSignificado
.module.tgz Módulos
.style.tgz Hoja de Estilo en Cascada (CSS)
.smileys.tgz Set de Emoticonos
.iconset.tgz Set de Íconos
.lang.tgz Archivos de Idioma
Ejemplos de nombres de paquete válidos:
forums-1.8.module.tgz
descargas-0.2.module.tgz
radio-0.3.2.style.tgz
gnome-1.2.iconset.tgz
Ejemplos de nombres de paquete estúpidos:
Chido.module.tgz
MiModulo-XP.style.tgz
flowerpowericons.zip
Claro que Gekko incluye una forma rápida para hacer de estas tareas monotonas algo de unos segundos. Mira el Sección 6.7.2

6.7.2. Usando mkpackage.pl

Esta útil herramienta simplifica el proceso de empaquetado en Gekko, se encuentra en el directorio utils
$ ./mkpackage.pl
Makes a ready-to-distribute Gekko package
Usage: ./mkpackage.pl [COMMAND] [PACKAGE]

Commands:
        --help (this screen)
        --release [version]
        --module [name]
        --template [name] --pkg-version=[template version]
        --style [name] --pkg-version=[style version] [--use-tpl=[template]]
        --language [name] --pkg-version=[language version]
        --iconset [name] --pkg-version=[iconset version]
		--smileys [name] --pkg-version=[smileys version]
Algunos ejemplos:
(estilo para la plantilla default)
./mkpackage.pl --style evolution --pkg-version=1.0

(estilo exclusivo para la plantilla foobar)
./mkpackage.pl --style evolution --pkg-version=1.0 --use-tpl=foobar

(idioma francés)
./mkpackage.pl --language fr --pkg-version=0.8

(modulo)
./mkpackage.pl --module blog

(distribucion de gekko con modulos de diferentes versiones)
./mkpackage --release 0.5.7 --force
La salida de los paquetes se guarda en el directorio utils/releases