Difference between revisions of "Indy with Lazarus/es"

From Lazarus wiki
Jump to navigationJump to search
(New page: {{Indy with Lazarus}} == Indy for Lazarus == A new attempt at converting Indy is being undertaken by the Indy core team. FPC developer Marco van de Voort is working with Indy core to get...)
 
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Indy with Lazarus}}
+
{{Indy with Lazarus}}[[category:Castellano]][[category:Español]]
  
 
== Indy for Lazarus ==
 
== Indy for Lazarus ==
  
A new attempt at converting Indy is being undertaken by the Indy core team. FPC developer Marco van de Voort is working with Indy core to get Indy fully working with FPC/Lazarus. Specially Indy's JP Mugaas did a lot of good work in getting Indy10 to work with FPC. The native unixrtl backend is mostly his work too.
+
El equipo del núcleo de Indy está realizando un nuevo intento de conversión para su funcionamiento con FPC/Lazarus. El desarrollador de FPC Marco van de Voort está trabajando con el núcleo de Indy para que funcione completamente  con FPC/Lazarus. Indy's JP Mugaas realizó un gran trabajo para tener Indy10 trabajando con FPC. También el backend nativo unixrtl backend es en su mayor parte trabajo suyo.
  
Currently Indy10 is nearly fully working, and end-user usability has been improved a lot. Only special topics like OpenSSL and compression might need additional knowledge. 64-bit support hasn't entirely been validated either.
+
Actualmente Indy10 está casi trabajando con funcionalidad completa, y la funcionalidad para el usuario final se ha mejorado mucho. Solamente algunos temas como OPENSSL y la compresión necesitan conocimientos adicionales. El soporte para 64 bits tampoco se ha validado completamente todavía.
 
   
 
   
Hint: I'm not very interested in support the Kylix side of Indy. (anything that uses unit libc). I ported it only as step up to native Unix RTL using Indy apps.
+
Sugerencia: No estoy demasiado interesado en el soporte de la versión para Kylix de Indy.. (cualquier cosa que utilice la unit libc). Unicamente la porté como un paso hacia una RTL nativa de Unix utilizando aplicaciones con Indy.
  
=== Requirements ===
+
=== Requerimientos ===
  
Currently, FPC 2.0.4 is very close to being able to use indy in all its facets, except for the server bug on FreeBSD/Mac OS X (which requires 2.1.1)
+
Actualmente, FPC 2.0.4 está muy cerca de ser capaz de utilizar Indy en todas sus facetas, excepto por el error de servidor en  FreeBSD/Mac OS X (el cual requiere 2.1.1)
  
Since Indy10 now works for all major targets, we focus on this version. While conversion to Indy9 might be simpler for people, keep in mind that it only works on win32. (and theoretically could be ported to Linux/x86).
+
Desde Indy10 ahora funciona para la mayor parte de los objetivos, nos centramos en esta versión. While conversion to Indy9 might be simpler for people, ten en cuenta que esto solo funciona en win32. (y teóricamente puede ser portado a Linux/x86).
  
Therefore we recommend people to work with 10 as much as possible.
+
De antemano recomendamos trabajar con la versión 10 tanto como sea posible.
 
   
 
   
 
(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???)  to get telnet components working, but Indy9 hasn't been tested in a while)
 
(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???)  to get telnet components working, but Indy9 hasn't been tested in a while)
Line 33: Line 33:
  
 
'''Indy9''':
 
'''Indy9''':
* Windows should largely work. Lots of demoes ported.
+
* Windows should largely work. Montones de demos portadas.
 
* Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.
 
* Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.
  
 
'''Indy10''': (Indy10ForFPC branch)
 
'''Indy10''': (Indy10ForFPC branch)
* Windows and Unix: clients work and servers should work fine in principle.
+
* Windows y Unix: los clientes funcionan y los servidores deberían también en principio.
 
* The main work for native Unix RTL done. Servers Clients seem to work with FreeBSD and OS X
 
* The main work for native Unix RTL done. Servers Clients seem to work with FreeBSD and OS X
  
Line 49: Line 49:
 
=== Problems ===
 
=== Problems ===
  
* Indy9 and Indy10 are mutually exclusive, which causes problems for deployment, even the default is a problem:
+
* Indy9 e Indy10 son mutuamente exclusivos, lo cual causa problemas de desarrollo, incluso el por defecto es un problema:
** Indy9 is more used and proven in the industry.
+
** Indy9 se utiliza más en la industria y está más testeado.
** Indy10 is more portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
+
** Indy10 es más portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
 
* How to deploy? Parts belong to Lazarus, parts to FPC.
 
* How to deploy? Parts belong to Lazarus, parts to FPC.
 
* Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
 
* Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
* Lazarus problems
+
* Problemas Lazarus
** Transparancy problems of icons
+
** Problemas de transparencia en iconos
** component tabs don't scroll, if you put a lot of components in one tab, they are not selectable. '''workaround implemented''': JP Mugaas separated them into Indy clients A-M and N-Z etc. Also, meanwhile Lazarus changed to two rows of components per tab.
+
** las solapas de componentes no desplazan, si pones un montón de componentes en una solapa, no se pueden seleccionar. '''workaround implemented''': JP Mugaas separated them into Indy clients A-M and N-Z etc. Also, meanwhile Lazarus changed to two rows of components per tab.
* Indy demoes (specially Indy10's) are not very suitable for multiplatform usage. Their setup is awfully windows specific, with spaces in paths, deep nested dirs, and useless baggage (C# code). A short working set of demoes will have to be created.
+
* Indy demoes (specially Indy10's) are not very suitable for multiplatform usage. Their setup is awfully windows specific, with spaces in paths, deep nested dirs, and useless baggage (C# code). Debe crearse un pequeño conjunto de demos que funcionen.
  
=== Bugs ===
+
=== Errores ===
* Indy10 servers didn't work before due to an exception occuring during startup, which shut everything down. You need FPC 2.2(.0) or later to fix this (pthread_kill problem). This probably also affects Mac OS X.
+
* Los servidores Indy10 no funcionaban antes debido a una excepción que sucedía durante el arranque, que echaba todo abajo. Necesitas FPC 2.2(.0) o superior para solucionarlo (problema pthread_kill). esto probablemente también afecta a Mac OS X.
* During demo conversion, the bindings property is often wrongly converted. This can result in strange errors, specially because Indy seems to bind to the same port using both IPV4 and IPV6 from time to time. Not fully debugged yet.
+
* Durante la conversión Demo, la propiedad 'bindings' es a menudo convertida erroneamente. Esto puede resultar en errores extraños, especialmente porque Indy parece bind al mismo puerto utilizando ambos IPV4 e IPV6 de tiempo en tiempo. No totalmente depurado aún.
  
=== How to install ===
+
=== Como instalar ===
[[user:Matthijs|Matthijs]]: So it is not perfect yet, but you want to try it. Here is how you install it in Lazarus.
+
[[user:Matthijs|Matthijs]]: Por lo que no es perfecto todavía, pero puedes probarlo. Aquí tienes como instalarlo en Lazarus:
* Open and compile indysystemlaz.lpk
 
* Open and compile indycorelaz.lpk
 
* Open and compile indyprotocolslaz.lpk
 
* Open, compile and install dclindycorelaz.lpk
 
* Open, compile and install dclindyprotocolslaz.lpk
 
Then rebuild Lazarus and you will see a 15 tab's with Indy components.
 
  
=== How to install on debian/ubuntu ===
+
* Abre y compila indysystemlaz.lpk
 +
* Abre y compila indycorelaz.lpk
 +
* Abre y compila indyprotocolslaz.lpk
 +
* Abre, compila e instala dclindycorelaz.lpk
 +
* Abre, compila e instaladclindyprotocolslaz.lpk
 +
 
 +
A continuación reconstruye Lazarus y verás 15 solapas con componentes Indy.
 +
 
 +
=== Como instalar en debian/ubuntu ===
 
* # cd indy-10.2.0.1/fpc
 
* # cd indy-10.2.0.1/fpc
 
* # chmod +x debian/rules
 
* # chmod +x debian/rules
Line 80: Line 82:
 
* # cd ..
 
* # cd ..
 
* # sudo dpkg -i *.deb
 
* # sudo dpkg -i *.deb
* install package indylaz.lpk in lazarus
+
* Instala el paquete indylaz.lpk en lazarus.
 +
 
 +
* Con Lazarus 0.9.28 e indy-10.2.0.3 la instalación del paquete daba errores y ha requerido:
 +
* 1. Copiar los archivos de la carpeta lazarus de Indy-10.2.0.3 a otra carpeta "save"
 +
* 2. Copiar los archivos de la carpeta fpc de Indy-10.2.0.3 a la carpeta lazarus
 +
* 3. Copiar los archivos de la carpeta save a la carpeta lazarus de Indy-10.2.0.3 y sobreescribir todos
  
=== How to install [2] ===
+
=== Como instalar [2] ===
  
If you couldn't install Indy for Lazarus with tips above, you can try this...
+
Si no puedes instalar Indy para Lazarus tips above, entonces puedes probar esto...
  
 
From [http://br.groups.yahoo.com/group/lazarus-brasil/ Yahoo! Brazil, Lazarus Group] (User Everaldo)
 
From [http://br.groups.yahoo.com/group/lazarus-brasil/ Yahoo! Brazil, Lazarus Group] (User Everaldo)
  
Version installed on Lazarus 0.9.24 using component indy-10.2.0.1.
+
Versión instalada en Lazarus 0.9.24 utilizando el componente indy-10.2.0.1.
  
 
* Unzip the component from file tar.gz (must be this file, the "zip file" does not work) in directory $(LazarusDir)\components;
 
* Unzip the component from file tar.gz (must be this file, the "zip file" does not work) in directory $(LazarusDir)\components;
 
* Go to directory $(LazarusDir)\components\indy-10.2.0.1\ and to create inside them a directory named "saved";
 
* Go to directory $(LazarusDir)\components\indy-10.2.0.1\ and to create inside them a directory named "saved";
* Copy the content of the directory $(LazarusDir)\components\indy-10.2.0.1\lazarus\ to directory "saved" created above;
+
* Copia el contenido del directorio $(LazarusDir)\components\indy-10.2.0.1\lazarus\ al directorio "saved" created above;
* Copy the content of directory $(LazarusDir)\components\indy-10.2.0.1\fpc\ to directory $(LazarusDir)\components\indy-10.2.0.1\lazarus, and rewrite all files, ok;
+
* Copia el contenido del directorio $(LazarusDir)\components\indy-10.2.0.1\fpc\ al directorio $(LazarusDir)\components\indy-10.2.0.1\lazarus, y sobreescribe todos los ficheros, ok;
* Get the content of directory "saved" and copy inside of $(LazarusDir)\components\indy-10.2.0.1\lazarus and you can delete "saved" directory now;
+
* Coge el contenido del directorio "saved" y copialo dentro de $(LazarusDir)\components\indy-10.2.0.1\lazarus pudiendo ahora borrar el directorio "saved" ;
* Install the package laz.lpk (available in $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) of conventional way.
+
* Instala el paquete laz.lpk (disponible en $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) of conventional way.
 +
 
 +
En Linux el trayecto (path) es: /usr/lib/lazarus/components/indy-10.2.0.1/, right!!!
 +
 
 +
Espero que te sea de ayuda, buena suerte!!!
 +
 
 +
=== Como instalar [3] Windows, Indy 10.2.0.3 ===
 +
* Es necesario tener funcionando Lazarus (y FPC) para esto
 +
* Descargar desde http://www.indyproject.org/Sockets/fpc/index.en.aspx
 +
* desempaquetar en un directorio y posicionados en este realizar:
  
On LINUX the path is: /usr/lib/lazarus/components/indy-10.2.0.1/, right!!!
+
<code> 1. make clean
 +
  2. make all 
 +
  3. make install</code>
  
I hope this was helpful for you, good luck!!!
+
Esto pondrá los ficheros de Indy dentro de los directorios de unidades de FPC.
 +
* Desde Lazarus ir al menú Paquete -> Abrir archivo de paquete (.lpk) ...-> acceder al directorio indy/lazarus, y seleccionar el archivo del paquete indylaz.lpk
 +
* En "Opciones del compilador" poner la ubicación de las unidades compiladas de FPC trás la orden "make install".
 +
* En el campo "Otros archivos de unidad (-Fu)"
 +
* Compilar y a continuación instalar (esto reconstruirá Lazarus)
  
=== How to install [3] Windows, Indy 10.2.0.3 ===
+
==Lo mismo con Lazarus 0.9.28 y FPC 2.2.4 ha requerido las modificaciones que siguen:==
* Need working Lazarus (and FPC) for this
+
* Para que funcione make se debe especificar el camino completo "\lazarus\fpc\2.2.4\bin\i386-win32\make clean" 
* Download from http://www.indyproject.org/Sockets/fpc/index.en.aspx
+
* Make install no funciona. La solución es copiar manualmente los archivos de fpc\units\i386-win32 a la carpeta
* unpack into a directory
+
  \lazarus\fpc\2.2.4\units\i386-win32\indy
* in the indy /fpc dir
+
* Al compilar el paquete también daba errores y se han solucionado con:
1. make clean
+
1. Copiar los archivos de la carpeta lazarus de Indy-10.2.0.3 a otra carpeta "save"
2. make all 
+
2. Copiar los archivos de la carpeta fpc de Indy-10.2.0.3 a la carpeta lazarus
3. make install
+
3. Copiar los archivos de la carpeta save a la carpeta lazarus de Indy-10.2.0.3 y sobreescribir todos
This will put the indy files into the FPC units directories
+
* A continuación instalar el paquete reconstruyendo Lazarus ha funcionado correctamente.
* From within Lazarus do a Package -> Open package file -> from the indy /lazarus dir, open the indylaz.lpk
 
* In the "Compiler options" put
 
c:\pp\units\i386-win32\indy\
 
(or wherever the FPC indy units are installed after "make install")
 
into the "Other unit files" field
 
* compile then install (will rebuild Lazarus)
 

Latest revision as of 20:13, 25 October 2009

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko)

Indy for Lazarus

El equipo del núcleo de Indy está realizando un nuevo intento de conversión para su funcionamiento con FPC/Lazarus. El desarrollador de FPC Marco van de Voort está trabajando con el núcleo de Indy para que funcione completamente con FPC/Lazarus. Indy's JP Mugaas realizó un gran trabajo para tener Indy10 trabajando con FPC. También el backend nativo unixrtl backend es en su mayor parte trabajo suyo.

Actualmente Indy10 está casi trabajando con funcionalidad completa, y la funcionalidad para el usuario final se ha mejorado mucho. Solamente algunos temas como OPENSSL y la compresión necesitan conocimientos adicionales. El soporte para 64 bits tampoco se ha validado completamente todavía.

Sugerencia: No estoy demasiado interesado en el soporte de la versión para Kylix de Indy.. (cualquier cosa que utilice la unit libc). Unicamente la porté como un paso hacia una RTL nativa de Unix utilizando aplicaciones con Indy.

Requerimientos

Actualmente, FPC 2.0.4 está muy cerca de ser capaz de utilizar Indy en todas sus facetas, excepto por el error de servidor en FreeBSD/Mac OS X (el cual requiere 2.1.1)

Desde Indy10 ahora funciona para la mayor parte de los objetivos, nos centramos en esta versión. While conversion to Indy9 might be simpler for people, ten en cuenta que esto solo funciona en win32. (y teóricamente puede ser portado a Linux/x86).

De antemano recomendamos trabajar con la versión 10 tanto como sea posible.

(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???) to get telnet components working, but Indy9 hasn't been tested in a while)

The port is fairly stable, and JP Mugaas has done a great deal to improve the quality of the release, a set of makefiles inclusive

Downloads / Links

Current snapshots (for die hards only) are at

What works, what not

Indy9:

  • Windows should largely work. Montones de demos portadas.
  • Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.

Indy10: (Indy10ForFPC branch)

  • Windows y Unix: los clientes funcionan y los servidores deberían también en principio.
  • The main work for native Unix RTL done. Servers Clients seem to work with FreeBSD and OS X

All: secure versions not tested yet.

Short term plans

  • Convert demoes to demonstrate/test workings.
  • Fix bugs and enter them back into FPC or Indy RCS.

Problems

  • Indy9 e Indy10 son mutuamente exclusivos, lo cual causa problemas de desarrollo, incluso el por defecto es un problema:
    • Indy9 se utiliza más en la industria y está más testeado.
    • Indy10 es más portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
  • How to deploy? Parts belong to Lazarus, parts to FPC.
  • Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
  • Problemas Lazarus
    • Problemas de transparencia en iconos
    • las solapas de componentes no desplazan, si pones un montón de componentes en una solapa, no se pueden seleccionar. workaround implemented: JP Mugaas separated them into Indy clients A-M and N-Z etc. Also, meanwhile Lazarus changed to two rows of components per tab.
  • Indy demoes (specially Indy10's) are not very suitable for multiplatform usage. Their setup is awfully windows specific, with spaces in paths, deep nested dirs, and useless baggage (C# code). Debe crearse un pequeño conjunto de demos que funcionen.

Errores

  • Los servidores Indy10 no funcionaban antes debido a una excepción que sucedía durante el arranque, que echaba todo abajo. Necesitas FPC 2.2(.0) o superior para solucionarlo (problema pthread_kill). esto probablemente también afecta a Mac OS X.
  • Durante la conversión Demo, la propiedad 'bindings' es a menudo convertida erroneamente. Esto puede resultar en errores extraños, especialmente porque Indy parece bind al mismo puerto utilizando ambos IPV4 e IPV6 de tiempo en tiempo. No totalmente depurado aún.

Como instalar

Matthijs: Por lo que no es perfecto todavía, pero puedes probarlo. Aquí tienes como instalarlo en Lazarus:

  • Abre y compila indysystemlaz.lpk
  • Abre y compila indycorelaz.lpk
  • Abre y compila indyprotocolslaz.lpk
  • Abre, compila e instala dclindycorelaz.lpk
  • Abre, compila e instaladclindyprotocolslaz.lpk

A continuación reconstruye Lazarus y verás 15 solapas con componentes Indy.

Como instalar en debian/ubuntu

  • # cd indy-10.2.0.1/fpc
  • # chmod +x debian/rules
  • # touch README
  • # sudo apt-get install fakeroot
  • # dpkg-buildpackage -rfakeroot -uc
  • # cd ..
  • # sudo dpkg -i *.deb
  • Instala el paquete indylaz.lpk en lazarus.
  • Con Lazarus 0.9.28 e indy-10.2.0.3 la instalación del paquete daba errores y ha requerido:
  • 1. Copiar los archivos de la carpeta lazarus de Indy-10.2.0.3 a otra carpeta "save"
  • 2. Copiar los archivos de la carpeta fpc de Indy-10.2.0.3 a la carpeta lazarus
  • 3. Copiar los archivos de la carpeta save a la carpeta lazarus de Indy-10.2.0.3 y sobreescribir todos

Como instalar [2]

Si no puedes instalar Indy para Lazarus tips above, entonces puedes probar esto...

From Yahoo! Brazil, Lazarus Group (User Everaldo)

Versión instalada en Lazarus 0.9.24 utilizando el componente indy-10.2.0.1.

  • Unzip the component from file tar.gz (must be this file, the "zip file" does not work) in directory $(LazarusDir)\components;
  • Go to directory $(LazarusDir)\components\indy-10.2.0.1\ and to create inside them a directory named "saved";
  • Copia el contenido del directorio $(LazarusDir)\components\indy-10.2.0.1\lazarus\ al directorio "saved" created above;
  • Copia el contenido del directorio $(LazarusDir)\components\indy-10.2.0.1\fpc\ al directorio $(LazarusDir)\components\indy-10.2.0.1\lazarus, y sobreescribe todos los ficheros, ok;
  • Coge el contenido del directorio "saved" y copialo dentro de $(LazarusDir)\components\indy-10.2.0.1\lazarus pudiendo ahora borrar el directorio "saved" ;
  • Instala el paquete laz.lpk (disponible en $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) of conventional way.

En Linux el trayecto (path) es: /usr/lib/lazarus/components/indy-10.2.0.1/, right!!!

Espero que te sea de ayuda, buena suerte!!!

Como instalar [3] Windows, Indy 10.2.0.3

 1. make clean
 2. make all   
 3. make install

Esto pondrá los ficheros de Indy dentro de los directorios de unidades de FPC.

  • Desde Lazarus ir al menú Paquete -> Abrir archivo de paquete (.lpk) ...-> acceder al directorio indy/lazarus, y seleccionar el archivo del paquete indylaz.lpk
  • En "Opciones del compilador" poner la ubicación de las unidades compiladas de FPC trás la orden "make install".
  • En el campo "Otros archivos de unidad (-Fu)"
  • Compilar y a continuación instalar (esto reconstruirá Lazarus)

Lo mismo con Lazarus 0.9.28 y FPC 2.2.4 ha requerido las modificaciones que siguen:

  • Para que funcione make se debe especificar el camino completo "\lazarus\fpc\2.2.4\bin\i386-win32\make clean"
  • Make install no funciona. La solución es copiar manualmente los archivos de fpc\units\i386-win32 a la carpeta
  \lazarus\fpc\2.2.4\units\i386-win32\indy
  • Al compilar el paquete también daba errores y se han solucionado con:
1. Copiar los archivos de la carpeta lazarus de Indy-10.2.0.3 a otra carpeta "save"
2. Copiar los archivos de la carpeta fpc de Indy-10.2.0.3 a la carpeta lazarus
3. Copiar los archivos de la carpeta save a la carpeta lazarus de Indy-10.2.0.3 y sobreescribir todos
  • A continuación instalar el paquete reconstruyendo Lazarus ha funcionado correctamente.