Kylix 2 OE, Debian y componentes open source


Kylix es el entorno de desarrollo de Borland(1) (o Inprise) para Linux.
Es un producto comercial aunque hay una versión Open Edition gratuita (sólo binarios)
que puede usarse para desarrollar proyectos GPL. La principal desventaja de esta versión es
que se echan en falta algunos componentes esenciales para el desarrollo de aplicaciones
comunes, acceso a base de datos, servicios Internet, etc.
En este artículo se prentende dar a conocer esta herramienta,
explicar como contrarestar sus limitaciones iniciales y sacarle el máximo partido.

Instalación Kylix 2 Open Edition

Para empezar debemos registrarnos en Borland(2) para
decargar la versión Open Edition y contestar un pequeño cuestionario de cortesía.
Posteriormente recibiremos un e-mail de Borland con los datos para activar la
Open Edition. El fichero de instalación que son unos 30 Mbytes aproximadamente.

La instalación es bastante sencilla, y no tiene mayores complicaciones en una Debian.
Sólo he podido testearlo con la Debian sid, pero no he tenido ningún problema, aunque
teóricamente no está en la lista oficial de distribuciones soportadas (que incluye Red Hat,
SUSE y Mandrake). Para instalar
basta ejecutar el setup contenido en el fichero kylix2_open.tar.gz que
nos hemos descargado. Al ejecutar por primera vez Kylix 2 nos pedirá los datos de registro que
Borland nos envió por e-mail, y registrará la aplicación por Internet, aunque creo que se puede
retrasar el paso de registro y empezar a usar Kylix inmediatamente, aunque no lo he probado.
La instalación se puede realizar como usuario normal sin permisos de root, en este caso
Kylix se instala en el directorio home del usuario. También existe la posibilidad de instalar Kylix
como root en un lugar accesible por todos los usuarios.

Una vez instalado, podemos ejecutar Kylix 2 directamente desde el menú principal
del KDE. Ante nuestros ojos aparece el IDE con el editor de formularios, el Object Inspector,
la paleta de componentes, etc. Todo es bastante parecido por no decir igual que
un Delphi para Windows. Después de la euforia inicial, nos damos cuenta que la Open Edition nos
proporciona una paleta de componentes bastante light ya que sólo tiene las
páginas Standard, Additional, Common Control y Dialogs.

Aunque ya se pueden hacer aplicaciones con esto, echamos en falta
algunos componentes esenciales para desarrollar aplicaciones, como son el acceso a base de datos
y servicios Internet. Kylix 2 en versión Profesional (249 $) y Enterprise (1999 $) dispone de
componentes de base de datos y muchos otros más, además de mejoras en el IDE.

Instalar FreeCLX

Las FreeCLX(3) son una implementación open source de la libreria CLX de Borland.
CLX es la nueva librería de componentes cross-platform de Borland incorporada en Delphi 6 y Kylix.
La librería usada anteriormente era la VCL, pero estaba más ligada a Windows.
El problema es que en la versión Open Edition sólo viene una versión reducida de la CLX, por lo
que deberemos usar FreeCLX para disponer de algunas características adicionales.

Para instalar las FreeCLX deberemos descargar la última versión del servidor CVS en
Sourceforge(4). Son unos 11 Megas de código fuente.
Para bajar la última versión del servidor CVS usaremos los siguientes comandos (pulsar ENTER cuando pida la password).

cvs -d:pserver:[email protected]:/cvsroot/freeclx login
cvs -z3 -d:pserver:[email protected]:/cvsroot/freeclx co freeclx

A continuación debemos compilar FreeCLX. Para ello podemos seguir los siguientes pasos:

  • Debemos definir la variable de entorno FREECLX al directorio donde hemos descargado.
    En mi caso he hecho un export FREECLX=~/src/kylix/freeclx.
  • Cambiamos el directorio actual a $FREECLX/qt.
  • Debemos hacer un enlace simbólico en el directorio $FREECLX/qt/lib a nuestra libreria
    libqt.so.2.2.4. Como mi sistema tenía una versión posterior, en concreto la versión 2.3.1, lo probé
    con esta y parece que compila bien. El nombre del fichero que espera encontrar el makefile es
    libqt.so.2.2.4, por lo que o cambiamos el makefile o le damos un nombre simbólico falseado.
  • Ejecutamos make en el shell, que genererá la libreria libqtinf.so.2.2.4.3. En realidad
    se debería llamar libqtinf.so.2.3.1 en mi sistema, pero es culpa del makefile.
  • Copiamos la libreria generada al directorio de kylix ~/kylix2/bin y actualizamos el
    enlace simbólico libqtinf-6.5-qt2.3.so para que apunte a esta nueva libreria.
  • Ejecutamos Kylix. Vamos al menú Tools | Environment Options | Library y añadimos
    al principio de la lista de paths a librerias los siguientes directorios:

    • ~/src/kylix/freeclx/rtl/sys
    • ~/src/kylix/freeclx/rtl/linux
    • ~/src/kylix/freeclx/qt
    • ~/src/kylix/freeclx/clx
  • A continuación cerramos todos los proyectos abiertos en el IDE y vamos a Project
    | Options | Packages y nos aseguramos que la opción “Build with runtime packages” esté
    desactivada.
  • Instalando ZeosDB

    ZeosDB(5) es una libreria open source para acceso a bases de datos desde Kylix.
    Permite acceso a diferentes sistemas de bases de datos, entre ellos Interbase, PostgreSQL,
    MySQL, Oracle, Microsoft SQL Server y IBM DB2.
    Para instalarlo es necesario instalar antes las FreeCLX (o la versión Profesional o
    Enterprise de Kylix). La instalación es bastante sencilla.

  • Vamos a www.zeoslib.org y descargamos la ultima versión de ZeosDBO (zeosdbo-5.3.0-beta5.zip
    en el momento de escribir el artículo). Se descomprime y desde Kylix se abre el
    fichero ZCommonK.dpk. Se borra el requerimiento dbdesign.dcp, compilamos e instalamos.
  • Otra posibilidad es coger el código directamente de CVS.

    cvs -d :pserver:[email protected]:/cvsroot/zeoslib login
    cvs -z3 -d :pserver:[email protected]:/cvsroot/zeoslib checkout .

  • Ahora abrimos desde Kylix el fichero ZDBwareK.dpk, borramos los requerimientos dbdesign
    y dataclx, compilamos e instalamos. Esto nos dará como resultado una nueva página con 3
    nuevos componentes: ZBatchSQL, ZMonitor y ZUpdateSQL.
  • Seguimos un proceso similar con ZMySQLK.dpk. Borramos dataclx de los requerimientos.
    Compilamos e instalamos. Obtenemos otros 4 componentes nuevos: ZMySQLDatabase, ZMySQLTransact,
    ZMySLTable y ZMySQLQuery. En la linea 29 de ZLibMySql.pas se define DEFAULT_DLL_LOCATION que
    es el path a libmysqlclient.so, debemos modificarlo si no es el correcto.
  • Repetimos el proceso con las demás bases de datos que nos interesen.
    Para Interbase instalamos el paquete ZIbSQLK.dpk (da un error Invalid field registration) a no
    ser que comenteis la linea que contiene “RegisterFields([TZBCDField]);” en ZIbSQlReg.pas, por
    lo que seguramente no podremos usar campos BCD. Si todo va bien tendremos 6 componentes
    nuevos: ZIbSqlDatabase, ZIbSqlTransact, ZIbSqlTable, ZIbSqlQuery, ZIbSqlStoredProc y
    ZIbSqlNotify.
  • De forma parecida instalamos el soporte para PostgreSQL, con el paquete ZPgSQLK.dpk.
  • Como último paso, hay que añadir los directorios zeosdb/, zeosdb/common y zeosdb/dbase.
    en el path de librerias de Kylix.
  • Controles db-aware

    Con lo que tenemos ahora se pueden acceder fácilmente a las bases de datos
    existentes. Pero dónde están los controles típicos db-aware: DBEdit, DBText,
    DBComboBox, … ? Estan implementados en las FreeCLX, pero no han sido
    registrados en la paleta de componentes. Para ello podemos usar el paquete
    dbControls(6).

    Abrimos el paquete Kylix dbControls.dpk, compilamos e instalamos como
    hemos hecho anteriormente sin ningún problema. Como resultado obtenemos
    3 páginas más de componentes:

    • Data Access: DataSource, ClientDataSet y DataSetProvider.
    • dbExpress: SQLConnection, SQLDataSet, SQLQuery, SQLTable, SQLMonitor y SQLClientDataSet.
    • Data Controls: DBGrid, DBNavigator, DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox,
      DBCheckBox, DBRadioGroup, DBLookupListBox y DBLookupComboBox.

    Instalar componentes Internet

    Uno de los paquetes de componentes de servicios Internet más conocido es Indy (Internet Direct o Winshoes)(7)
    de Nevrona(8). Se distribuyen bajo una licencia open source basada
    en BSD License o Mozilla Public License (a elegir). Este paquete de componentes es muy completo ofreciendo
    tanto servidores como clientes de la mayoría de protocolos Internet conocidos, incluso creo que se incluye
    en las versiones de pago de Kylix. Los protocolos soportados son: TCP, UDP, daytime, DNS, echo, finger, FTP,
    gopher, HTTP, ICMP, ident, IMAP4, IP Multicast, IRC, LPR, NNTP, POP3, QOTD, rexec, rsh, SMTP, SNMP, SNPP,
    SNPT, syslog, telnet, time, TFTP, whois, chargen, dict, discard, etc. Además hay componentes adicionales
    para SSL, cookies y codificadores / descodificadores entre otros.

    Aunque anuncian que sus componentes son directamente instalables en Kylix, la verdad es que he
    tenido algunos pequeños problemas pero han sido fáciles de solucionar. La que he intentado instalar
    es la Indy 9 que aún está en versión beta (9.0.2). También he echado un poco de documentación
    sobre su instalación en Kylix, pero no he encontrado ninguna referencia.

    Para instalar Indy v9.0.2(9) nos bajamos
    la última versión, y a continuación deberemos compilar (no instalar) el indy.dpk. Es posible
    que tengamos algunos problemas con los nombres de las unidades (mayúsculas / minúsculas), las
    unidades referenciadas siempre deben tener el mismo case que los ficheros correspondientes.
    He tenido que cambiar algunas referencias a mano para que compilase correctamente. Es posible
    que exista alguna opción de configuración para evitar este problema, pero no la he encontrado.
    Adicionalmente he encontrado un problema en el código en el fichero IdTunnelSlave.pas, Id := Thread.Handle,
    resulta que Handle no existe en TThread. Yo lo cambié por ThreadId sólo para que compilará
    y proseguir con la instalación, aunque seguramente no sea lo correcto. A continuación sólo
    resta compilar e instalar el paquete dclindy.dpk.

    Una vez instalado nos apareceran 3 nuevas páginas: Indy Clients, Indy Servers y Indy Misc.
    Realmente me pierdo con la cantidad de componentes añadidos, afortunadamente existe documentación
    en HTML.

    Enlaces relacionados con Kylix

    Aquí cito algunos enlaces de repositorios de componentes y información sobre Kylix (y Delphi).

    Concluyendo, Kylix 2 Open Edition y los componentes que lo complementan
    constituyen una alternativa a tener en cuenta en el desarrollo de aplicaciones GPL. Ahora a picar código 😉

    –MateuLista de enlaces de este artículo:

  • http://www.borland.com/
  • http://www.borland.com/kylix
  • http://sourceforge.net/projects/freeclx/
  • http://www.sourceforge.net/
  • http://www.zeoslib.org/
  • http://www.ubicum.it/aposoft/download/dbcontrols.tgz
  • http://www.nevrona.com/indy
  • http://www.nevrona.com/
  • http://www.nevrona.com/Indy/download90.html
  • http://www.torry.net/
  • http://www.vclcrawler.com/
  • http://www.clubdelphi.com/
  • http://sourceforge.net/projects/nexusproject/
  • http://sourceforge.net/projects/open-dbexpress/
  • http://www.nevrona.com/Indy
  • http://www.cetus-links.org/oo_delphi.html
  • http://delphi.about.com/cs/kylix/index.htm?terms=kylix
  • http://www.ararat.cz/synapse/
  • http://chemware.hypermart.net
  • http://delphi.icm.edu.pl/
  • http://www.delphisource.com/
  • http://www.delphipages.com/
  • http://www.millennium-group.ru/index/lang/eng/parent_id/30/level/1
  • http://www.hadp.org/kylix.htm
  • http://delphree.clexpert.com/pages/default.htm
  • http://www.undu.com
  • http://www.freepascal.org/
  • http://lazarus.freepascal.org/
  • http://www.fast-report.com
  • http://www.delphi3000.com/
  • http://www.delphiseek.com/
  • http://www.delphicity.net/
  • http://www.swissdelphicenter.ch
  • http://www.delphiforum.com/
  • http://www.delphispirit.com
  • http://www.kylixnet.de/eng/index.shtml
  • http://www.ibphoenix.com
  • http://www.morphtek.com
  • http://www.drbob42.com/kylix/
  • http://www.kylix.sk/
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1024 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

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

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.