https://foro.gambas-es.org/viewtopic.php?f=2&t=107&p=2418#p2418
-----------------------------------
jguardon
Martes, 16 Febrero 2010, 16:13

Re: Crear Un Asistente De Distribución
-----------------------------------
Volviendo al asunto inicial del topic, me gustaría saber cuáles son los motivos que os llevan a pensar que el empaquetador que trae Gambas no es válido. Yo lo uso normalmente y no tengo problemas.

Ahora bien, si lo que se pretende es incluir otros paquetes externos no relacionados con Gambas, creo que Gambas3 ya incluye esa posibilidad -no estoy seguro- podríamos aprovechar el código existente e incluir esa "feature". 

Pienso que sería extremadamente sencillo, al menos en el caso de paquetes deb, ya que sólo habría que insertar en la línea 'Depends', las dependencias apropiadas en el fichero "control" a partir por ejemplo de un textbox y realizar quizás alguna otra comprobación. Para el resto de empaquetado, como RPM, desconozco su arquitectura.

Este es un fichero control de debian:

[cell class=spoiler]
[font=Courier New]
Package: dfhlog
Version: 0.0.39-1
Architecture: all
Maintainer: Jesus Guardon <ea7dfh@ea7dfh.com>
Installed-Size: 792
Depends:  [highlight=#FFFFAA][b]<insertar aquí las dependencias adicionales>[/b][/highlight], gambas2-runtime (>= 1.9.48), gambas2-runtime (<< 2.90), gambas2-gb-qt (>= 1.9.48), gambas2-gb-qt (<< 2.90), gambas2-gb-form (>= 1.90.1), gambas2-gb-form (<< 2.90.0), gambas2-gb-db (>= 1.9.48), gambas2-gb-db (<< 2.90), gambas2-gb-db-form (>= 1.90.1), gambas2-gb-db-form (<< 2.90.0), gambas2-gb-desktop (>= 1.9.48), gambas2-gb-desktop (<< 2.90), gambas2-gb-form-dialog (>= 1.9.48), gambas2-gb-form-dialog (<< 2.90), gambas2-gb-form-mdi (>= 1.9.48), gambas2-gb-form-mdi (<< 2.90), gambas2-gb-net (>= 1.9.48), gambas2-gb-net (<< 2.90), gambas2-gb-net-curl (>= 1.9.48), gambas2-gb-net-curl (<< 2.90), gambas2-gb-pcre (>= 1.9.48), gambas2-gb-pcre (<< 2.90), gambas2-gb-qt-ext (>= 1.9.48), gambas2-gb-qt-ext (<< 2.90), gambas2-gb-settings (>= 1.9.48), gambas2-gb-settings (<< 2.90), gambas2-gb-xml (>= 1.9.48), gambas2-gb-xml (<< 2.90), gambas2-gb-xml-rpc (>= 1.9.48), gambas2-gb-xml-rpc (<< 2.90)
Section: Communications
Priority: optional
Description: Amateur Radio Logging program
 Import/Export ADIF files, cluster connection, Hamlib based CAT control,
 QRZ.com support, XPlanet Maps and Custom GridSquare Maps,
 simple awards support (WAS, DXCC, IOTA, USACA, TPEA).
 Current available languages:
 English, Spanish, Galego, Portugues
 This program is written in Gambas[/font]
[/cell]

Hay que tener en cuenta que la línea 'Depends:' es una sóla línea y sólo hay un "\n" de nueva línea al final de la última dependencia. He resaltado el lugar donde se deberían añadir las dependencias que necesitemos. (Recomiendo la lectura de [url=http://www.xinug.org/drupal/files/charlas/intro-paqueteria-debian.pdf]este documento).

En cuanto a la forma en que se resuelven las dependencias específicas de Gambas es cierto que se hace en base a lo que haya en los repositorios y aquí viene el verdadero problema. Si estamos desarrollando con con Gambas 2.19, lo más probable es que un usuario en Debian Stable tenga la 2.7 y nuestro programa posiblemente no funcionará o lo hará mal. Lo digo por propia experiencia.

Así que mientras no haya uniformidad entre las distribuciones y sus repositorios, veo muy complicada esta tarea, salvo que distribuyamos las librerías de Gambas ya compiladas, como hago yo desde la 2.18. En ese caso el fichero control que me he creado es este:

[cell class=spoiler]
[font=Courier New]Package: dfhlog
Version: 0.0.39-1
Architecture: all
Installed-Size: 736
Depends: [highlight=#FFFFAA][b]<insertar aquí las dependencias adicionales>[/b][/highlight], kdelibs4c2a (>= 4:3.5.10), libffi5 (>= 3.0.4), xdg-utils, libcurl3 (>= 7.16.2-1), libpcre3 (>= 7.4), libsqlite3-0 (>= 3.4.2-2), libxml2 (>= 2.6), portmap (>= 6.0-4), libhamlib-utils (>=1.2.8), xplanet, xplanet-images, libnotify-bin, beep
Section: Communications
Maintainer: Jesus Guardon <ea7dfh@ea7dfh.com>
Homepage: code.google.com/p/dfhlog 
Priority: extra
Description: Amateur Radio Logging program
 Import/Export ADIF files, cluster connection, Hamlib based CAT control,
 QRZ.com support, XPlanet Maps and Custom GridSquare Maps,
 simple awards support (WAS, DXCC, IOTA, USACA, TPEA).
 Current available languages:
 English, Spanish, Galego, Portugues
 This program is written in Gambas[/font][/cell]

En mi caso basta con proveer kdelibs4c2a (>= 4:3.5.10), libffi5 (>= 3.0.4), xdg-utils, libcurl3 (>= 7.16.2-1), libpcre3 (>= 7.4), libsqlite3-0 (>= 3.4.2-2), libxml2 (>= 2.6) para que el intérprete y los componentes que usa mi proyecto funcionen, pero quizás habría que añadir otras en determinados casos.

El comando shell ldd <lib> puede ayudar, pero resulta difícil si no imposible determinar el nombre exacto del paquete al que hace referencia cada librería para poder incluirlo en nuestra lista de dependencias. Por ejemplo, esta es la salida de ldd para gb.so:

[code linenumbers=false]
jesus@jesus:/usr/dfhlog/gambas2/lib/gambas2$ ldd gb.so
	linux-gate.so.1 =>  (0xb76ed000)
	libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb76a1000)
	libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb769d000)
	libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7683000)
	libffi.so.5 => /usr/lib/libffi.so.5 (0xb767b000)
	libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7536000)
	/lib/ld-linux.so.2 (0xb76ee000)
[/code]

Resumiendo, no es tarea fácil realizar según qué, el primer acercamiento es el más sencillo pero tiene el problema de versiones antiguas de Gambas en los repos, lo segundo es difícil pero no imposible. Yo estaría dispuesto a colaborar en caso de que haya un planteamiento inicial coherente y realista.

Saludos

P.D.[color=#bf0000] He movido el hilo completo al foro "Instalación" porque estaba en "Off-topic" y no se puede considerar como tal.[/color]


